cs2110 software development methods n.
Skip this Video
Download Presentation
CS2110: Software Development Methods

Loading in 2 Seconds...

play fullscreen
1 / 21

CS2110: Software Development Methods - PowerPoint PPT Presentation

  • Uploaded on

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'CS2110: Software Development Methods' - sinjin

Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
cs2110 software development methods
CS2110: Software Development Methods
  • Course Mechanics
  • Course content
    • Topics from earlier classes
    • CS2110 course learning objectives
  • What’s the course all about? A quick tour

Prof. Tom Horton

and TAs

what s cs2110 about
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.
better replacement course description
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:

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 Topics
course objectives
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.
course objectives1
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.
course objectives2
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.
learning sources
Learning Sources
  • Lectures and class activities
    • 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
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 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
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
  • 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
  • Starts after Spring break
  • Lasts 4 or 5 weeks
    • 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
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
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!
  • I expect you:
    • 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-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
Results from Discussion
  • Worries
    • Add items
  • Useful/Interesting or Not
    • Add items
who are you
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
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…