CS2110: Software Development Methods

Slides:



Advertisements
Similar presentations
General information CSE 230 : Introduction to Software Engineering
Advertisements

CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
1 CS 425 / CS 625 Software Engineering Fall 2007 Course Syllabus August 27, 2007.
MIS 470: Information Systems Project Yong Choi School of Business Administration CSU, Bakersfield.
COMP 110 Introduction to Programming Mr. Joshua Stough August 22, 2007 Monday/Wednesday/Friday 3:00-4:15 Gardner Hall 307.
CSCD 330 Network Programming Winter 2012 Lecture 1 - Course Details.
COP4020/CGS5426 Programming languages Syllabus. Instructor Xin Yuan Office: 168 LOV Office hours: T, H 10:00am – 11:30am Class website:
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
Computer Network Fundamentals CNT4007C
Course Introduction CS 2302 SPRING Course Introduction In this part we'll discuss course mechanics. Most of this will apply to all sections of the.
Welcome to CS 3331, Advanced Object-Oriented Programming Fall 2009 Dept. of Computer Science University of Texas at El Paso.
CSE 501N Fall ‘09 00: Introduction 27 August 2009 Nick Leidenfrost.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
Welcome to CS 3331, Advanced Object-Oriented Programming Fall 2015 Dept. of Computer Science University of Texas at El Paso.
1 Introduction to Operating Systems 9/16/2008 Lecture #1.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Course Introduction Software Engineering
CST 229 Introduction to Grammars Dr. Sherry Yang Room 213 (503)
ECEN 301Discussion #1 – Syllabus1 All Sections MWF 1:00 – 1:50 PM 256 CB Lecture: MW Recitation: F Labs: M or Th Instructor: Prof. David Long Office: CB.
MIS 300: Introduction to Management Information Systems Yong Choi School of Business Administration CSU, Bakersfield.
Welcome to Physics 1403!!. Class Web Page! There, you can find: 1. Posted (MS Word format): Syllabus,
1 Software Systems Development CEN Spring 2011 TR 12:30 PM – 1:45 PM ENB 116 Instructor:Dr. Rollins Turner Dept. of Computer Science and Engineering.
CSCD 330 Network Programming Fall/Winter/Spring 2014 Lecture 1 - Course Details.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Programming-1: Java for non-majors
CS 140 Computer Programming (I) Second semester (3 credits) Imam Mohammad bin Saud Islamic University College of Computer Science and Information.
Welcome to CS 115! Introduction to Programming. Class URL Write this down!
Online Orientation Professor: María L. Villagómez Contact Information: Office: BLDG (1031U) Telephone#:
Introduction to Data Structures
Course Information Sarah Diesburg Operating Systems COP 4610.
Course Information Andy Wang Operating Systems COP 4610 / CGS 5765.
1 [Oh dear! We need to update our graphic!] Introduction to Computer Science Fall 2009 Tom Horton.
Course Introduction Andy Wang COP 4530 / CGS 5425 Fall 2003, Section 4.
Overview Introductions Administrative Material – Syllabus & Outline What we’re going to cover in this class.
Principles of Computer Science I Honors Section Note Set 1 CSE 1341 – H 1.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Associate Professor School of Computer Science and Engineering Chung-Ang.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang.
INF 117 Project in Software Engineering Lecture Notes -Winter Quarter, 2008 Michele Rousseau Set 1.
1 CS 101 Today’s class will begin about 5 minutes late We will discuss the lab scheduling problems once class starts.
CSCD 330 Network Programming Winter 2015 Lecture 1 - Course Details.
CST 223 Concepts of Programming Languages Dr. Sherry Yang PV 171
Data Structures and Algorithms in Java AlaaEddin 2012.
Computer Networks CNT5106C
MIS 610: Seminar in Information Systems Management Yong Choi School of Business Administration CSU, Bakersfield.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
Spring 2008 Mark Fontenot CSE 1341 – Honors Principles of Computer Science I Note Set 1 1.
Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016.
CS140 – Computer Programming 1 Course Overview First Semester – Fall /1438 – 2016/2017 CS140 - Computer Programming 11.
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview
CS 450/550 Operating Systems Loc & Time: MW 1:40pm-4:20pm, 101 ENG
CSc 020: Programming Concepts and Methodology II
Course Information Mark Stanovich Principles of Operating Systems
CSC 111 Course orientation
Object Oriented Programming (OOP) Design Lecture 1 : Course Overview
Introduction to Programming 2
Andy Wang Operating Systems COP 4610 / CGS 5765
EECE 310 Software Engineering
CSCD 330 Network Programming Spring
Andy Wang Operating Systems COP 4610 / CGS 5765
Andy Wang Operating Systems COP 4610 / CGS 5765
CSCD 330 Network Programming Spring
Andy Wang Operating Systems COP 4610 / CGS 5765
Computer Programming 1 introduction to JAVA Lecture 1 Instructor: Ruba A. Salamah Islamic University of Gaza.
Andy Wang Operating Systems COP 4610 / CGS 5765
CSCD 330 Network Programming Spring
Andy Wang Operating Systems COP 4610 / CGS 5765
CS Problem Solving and Object Oriented Programming Spring 2019
Computer Engineering Department Islamic University of Gaza
Presentation transcript:

CS2110: Software Development Methods Prof. Tom Horton and TAs Course Mechanics Course content Topics from earlier classes CS2110 course learning objectives What’s the course all about? A quick tour

What’s CS2110 About? What do you think? From the Undergraduate Record: A continuation of CS 1110, emphasizing modern software development methods. An introduction to the software development life cycle and processes. Topics include requirements analysis, specification, design, implementation, and verification. Emphasizes the role of the individual programmer in large software development projects. I really ask them here! I expect to hear them talk about programming, Java. Sometimes they talk about SW Engin like topics. That’s good. In the first day I want to emphasize that it’s about more than programming and/or Java.

Better/replacement course description A second course in computing and software development, with an emphasis both on modern software development and on principles central to computer science. Topics related to software engineering include the development lifecycle, requirements analysis, specification, design, implementation, and verification. Also addresses core computing principles such as abstraction, encapsulation, information hiding and recursion. More object-oriented programming techniques including inheritance, polymorphism, event-based programming.

Course Topics Object-Oriented programming: Modern PL features: Abstraction, information hiding, recursive definitions Design decisions, design for change and reuse OO design: inheritance, polymorphism, etc. Modern PL features: Exceptions; streams GUIs; Event-based programming Networked programs Concurrency, threads Introduction to Software Development Practices: Professional practices Reading/writing specifications Planning and designing programs Debug and test Basic documentation, standards, some maintenance Use of tools SW security

Course Objectives: Upon successful completion of this course, students will: Comprehend more advanced principles of object-oriented programming and how a programming language supports these, and apply these by developing larger and more complex programs than in their first programming course. (Topics include polymorphism, inheritance, collection classes, generics, etc.) Comprehend and apply principles of design at the class and object level. These principles include abstraction, encapsulation, and information hiding. This also includes the ability to define and evaluate class interfaces to solve specified design problems, as well as the ability to understand, apply, and evaluate the use of reusable components to solve such problems. I move through these pretty quickly. I note that they’re on the syllabus they have. On this slide, I point out that: #1 is about programming and OO. #2 is about SW design principles (higher level than how to code Java).

Course Objectives: Comprehend and analyze problems and programming issues such as dynamic memory management, indirect object references, and recursion. Also, be able to apply this knowledge by implementing software that includes these features. Apply knowledge of software development practice to effectively use strategies, tools and environments such as interactive development environments, debuggers, testing frameworks, etc. On this slide, I point out that: #3 is about programming skills that apply to other languages besides Java. #4 is about SW Engineering, programming in the large.

Course Objectives Comprehend important basic concepts of software engineering and the development of large software systems, including the software lifecycle, requirements, design, and software quality. In their development activities, students will be able to apply basic unit testing and carry out a software inspection. Comprehend the basic principles of the architecture of larger software systems, in particular object-oriented frameworks. Students will be able to apply this knowledge by developing a GUI using a framework. On this slide, I point out that: #5 is also about SW Engineering #6 is too. This is a minor goal of the course.

Learning Sources Lectures and class activities Laboratories Plan to attend! Laboratories You must enroll in one of Lab Sections ASAP A textbook to read Modern Software Development Using Java. (“MSD”) 2nd edition vs. 1st edition Should have some Java reference text See BOCM. One is on-line, free. On-line resources: especially the Java API docs Early in term: Javabat (http://codingbat.com)

Necessary Background Pre-requisite (enforced!): CS1110 at UVa (with a C- or better) or the equivalent AP or IB exam counts No university credit? Must take placement exam First programming course in Java Defining and using classes and objects Loops and conditionals No more than an overview of inheritance Ability to use a Java development tool like JCreator, BlueJ, Eclipse If you’re concerned, talk to me ASAP

Course Organization, Communication, etc. Course web page: http://www.cs.virginia.edu/~cs201 Course TAs One TA will be the Head TA for each lab-section Like the instructor for the lab Responsible for grade management (entering, reporting, updating) More TAs will grade assignments and exams Instructor’s role Lectures, planning, course-design, student issues, etc. Questions: Send general questions to Collab Message board! Send HW and grade questions to the staff: uvacs2110@gmail.com Send your instructor email on other things when appropriate PLEASE include CS2110 in the subject line

Instructor Information Prof. Tom Horton Office: Olsson 228B. Phone: 982-2217 Email: horton.uva@gmail.edu Office hours: MWF 11am-noon; TTh 1:30-2:30pm

Laboratories Lab activities are the central learning activity for CS2110 Sometimes a pre-lab activity. (Must do it!) In lab: a lab exercise Coding, group exercise, quiz, etc. Graded on participation mostly Programming Assignments AKA Homeworks The “real” homework. Graded on quality. Often done in pairs (according to certain rules). Do outside of lab. Submit electronically. Project(s): slightly larger assignments, done by groups of 4

Project Starts after Spring break Lasts 4 or 5 weeks Choice of project Final week: demo in lab to TA Choice of project Instant Messenger Client Android phone app We have 25 Android phones for groups to use! Project goals: Put into practice SW Engineering knowledge Create a significant application that’s fun and motivativing

Other Policies Etc. Honor Policy (read the course memo carefully) It applies in CS2110! Students and faculty at UVa should (re)commit to its principles and policies See each assignment for rules about collaboration Do not copy other people’s code! Do not give your code to others outside the rules! Some assignments allow you to talk to classmates This really shouldn’t lead to identical code, should it? Violations: zero on the assignment, submission to the Honor Committee

Need Accommodation? Learning Needs (LNEC) students Get in touch at least one week before an exam If you need other things, contact me. Any student who thinks s/he may qualify, contact the Learning Needs center If you have an illness, trip, etc. that requires you to miss an exam or lab Contact me in advance or as soon as possible If you have any kind of issues that affect your attendance or performance, do not hesitate to contact me!

Expectations I expect you: You can expect me and the CS2110 team to: To make your best effort To prepare when required or do other activities To come to class and do the readings To let me know if there are problems or issues You can expect me and the CS2110 team to: Be objective and fair and understanding To keep your informed about assignments and grades To listen and respond when you make comments or suggestions To make do my best to make this a good course

In-Class Activity In groups of 2-4, talk about the following things Then, I’ll ask some groups to report to the class First, share your name and major Second, talk about what worries you about this class Third, come up with at least 2 questions about the syllabus. Go!

Results from Discussion Worries Add items Useful/Interesting or Not Answers from the past Worries Not remembering anything / programming from CS101. ditto. Mixed level of experience among classmates Fixing programs quickly Course will be tedious due to programming Group work , group problems Big Oh (time complexity), recursion Problem solving Mechanics: formatting, comment/style, Too much time demanded from last assignment Interesting /useful Threads, Mp3 file sharing, problem solving , GUIs, networking, event-based Building on programming from CS101 Games, interesting projects GUIs, good GUI design, event driven programming Less interesting, less useful programming lifecycle, SW engin., debugging,

Who Are You? You’re not all engineers Less than 10% are declared as computing majors 60% of you are undeclared

What’s Next: Java Review Before lab next week: Finalize your lab situation!!! Old version of MSD book: Appendix A, pp. 820—854 We’ll see about putting this or other review topics on the web Friday’s lecture is Java review…