Presentation on theme: "CS2110: Software Development Methods"— Presentation transcript:
1CS2110: Software Development Methods Prof. Tom Hortonand TAsCourse MechanicsCourse contentTopics from earlier classesCS2110 course learning objectivesWhat’s the course all about? A quick tour
2What’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.
3Better/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.
4Course Topics Object-Oriented programming: Modern PL features: Abstraction, information hiding, recursive definitionsDesign decisions, design for change and reuseOO design: inheritance, polymorphism, etc.Modern PL features:Exceptions; streamsGUIs; Event-based programmingNetworked programsConcurrency, threadsIntroduction to Software Development Practices:Professional practicesReading/writing specificationsPlanning and designing programsDebug and testBasic documentation, standards, some maintenanceUse of toolsSW security
5Course 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).
6Course 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.
7Course ObjectivesComprehend 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.
8Learning Sources Lectures and class activities Laboratories Plan to attend!LaboratoriesYou must enroll in one of Lab Sections ASAPA textbook to readModern Software Development Using Java. (“MSD”)2nd edition vs. 1st editionShould have some Java reference textSee BOCM. One is on-line, free.On-line resources: especially the Java API docsEarly in term: Javabat (http://codingbat.com)
9Necessary Background Pre-requisite (enforced!): CS1110 at UVa (with a C- or better) or the equivalentAP or IB exam countsNo university credit? Must take placement examFirst programming course in JavaDefining and using classes and objectsLoops and conditionalsNo more than an overview of inheritanceAbility to use a Java development tool like JCreator, BlueJ, EclipseIf you’re concerned, talk to me ASAP
10Course Organization, Communication, etc. Course web page:Course TAsOne TA will be the Head TA for each lab-sectionLike the instructor for the labResponsible for grade management (entering, reporting, updating)More TAs will grade assignments and examsInstructor’s roleLectures, planning, course-design, student issues, etc.Questions:Send general questions to Collab Message board!Send HW and grade questions to the staff:Send your instructor on other things when appropriatePLEASE include CS2110 in the subject line
12Instructor Information Prof. Tom HortonOffice: Olsson 228B. Phone:Office hours: MWF 11am-noon; TTh 1:30-2:30pm
13LaboratoriesLab activities are the central learning activity for CS2110Sometimes a pre-lab activity. (Must do it!)In lab: a lab exerciseCoding, group exercise, quiz, etc.Graded on participation mostlyProgramming Assignments AKA HomeworksThe “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
14Project Starts after Spring break Lasts 4 or 5 weeks Choice of project Final week: demo in lab to TAChoice of projectInstant Messenger ClientAndroid phone appWe have 25 Android phones for groups to use!Project goals:Put into practice SW Engineering knowledgeCreate a significant application that’s fun and motivativing
15Other 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 policiesSee each assignment for rules about collaborationDo not copy other people’s code! Do not give your code to others outside the rules!Some assignments allow you to talk to classmatesThis really shouldn’t lead to identical code, should it?Violations: zero on the assignment, submission to the Honor Committee
16Need Accommodation? Learning Needs (LNEC) students Get in touch at least one week before an examIf you need other things, contact me.Any student who thinks s/he may qualify, contact the Learning Needs centerIf you have an illness, trip, etc. that requires you to miss an exam or labContact me in advance or as soon as possibleIf you have any kind of issues that affect your attendance or performance, do not hesitate to contact me!
17Expectations I expect you: You can expect me and the CS2110 team to: To make your best effortTo prepare when required or do other activitiesTo come to class and do the readingsTo let me know if there are problems or issuesYou can expect me and the CS2110 team to:Be objective and fair and understandingTo keep your informed about assignments and gradesTo listen and respond when you make comments or suggestionsTo make do my best to make this a good course
18In-Class Activity In groups of 2-4, talk about the following things Then, I’ll ask some groups to report to the classFirst, share your name and majorSecond, talk about what worries you about this classThird, come up with at least 2 questions about the syllabus.Go!
19Results from Discussion WorriesAdd itemsUseful/Interesting or NotAnswers from the pastWorriesNot remembering anything / programming from CS101. ditto.Mixed level of experience among classmatesFixing programs quicklyCourse will be tedious due to programmingGroup work , group problemsBig Oh (time complexity), recursionProblem solvingMechanics: formatting, comment/style,Too much time demanded from last assignmentInteresting /usefulThreads, Mp3 file sharing, problem solving , GUIs, networking, event-basedBuilding on programming from CS101Games, interesting projectsGUIs, good GUI design, event driven programmingLess interesting, less usefulprogramming lifecycle, SW engin., debugging,
20Who Are You? You’re not all engineers Less than 10% are declared as computing majors60% of you are undeclared
21What’s Next: Java Review Before lab next week:Finalize your lab situation!!!Old version of MSD book: Appendix A, pp. 820—854We’ll see about putting this or other review topics on the webFriday’s lecture is Java review…