CS201: Software Development Methods - PowerPoint PPT Presentation

1 / 19
About This Presentation
Title:

CS201: Software Development Methods

Description:

A continuation of CS 101, emphasizing modern software ... GUIs; Threads (maybe) Introduction to Software Development Practices: Professional practices ... – PowerPoint PPT presentation

Number of Views:27
Avg rating:3.0/5.0
Slides: 20
Provided by: tomho8
Category:

less

Transcript and Presenter's Notes

Title: CS201: Software Development Methods


1
CS201 Software Development Methods
Prof. Mark Sherriff and TAs
  • Course Mechanics
  • Course content
  • Topics from earlier classes
  • CS201 course learning objectives
  • Whats the course all about? A quick tour

2
Whats CS201 About?
  • What do you think?
  • From the Undergraduate Record
  • A continuation of CS 101, 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.

3
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.

4
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
  • Event-based programming networking
  • GUIs Threads (maybe)
  • 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

5
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.

6
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.

7
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.

8
Learning Sources
  • Lectures and class activities
  • Plan to attend!
  • Laboratories
  • You must enroll in one of Lab Sections ASAP
  • More in a minute
  • 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

9
Necessary Background
  • Pre-requisite
  • CS101 at UVa (with a C- or better) or the
    equivalent
  • This is strictly enforced
  • 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 youre concerned, talk to me ASAP

10
Course Organization, Communication, etc.
  • 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
  • Instructors role
  • Lectures, planning, course-design, student
    issues, etc.
  • Questions
  • Send general questions to Collab Message board!
  • Send grade questions to your Head TA via private
    message
  • Send your instructor email on other things when
    appropriate
  • PLEASE include CS201 in the subject line
  • Course web page http//www.cs.virginia.edu/cs201

11
Instructor Information
  • Prof. Mark Sherriff
  • Office Olsson 228A. Phone 982-2688
  • Email sherriff_at_cs.virginia.edu
  • Office hours MTWRF, 200-300 pm

12
Clickers and In-Class Exercises
  • Having a clicker is required
  • Why?
  • Success in other classes here at Uva
  • Trial experiment last spring in CS201 showed
    measurable improvements in learning from class
    meetings
  • Students tells us that CS classes should be more
    interactive and engaging

13
Laboratories
  • Lab activities are the central learning activity
    for CS201
  • 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 3 or 4
  • Anticipate 5 homeworks plus 1 project

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

15
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!

16
Expectations
  • 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 CS201 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

17
In-Class Activity
  • In groups of 2-4, talk about the following things
  • Then, Ill 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!

18
Results from Discussion
  • Worries
  • Add items
  • Useful/Interesting or Not
  • Add items

19
Whats Next Java Review
  • Before lab next week
  • Finalize your lab situation!!!
  • Old version of MSD book Appendix A, pp. 820854
  • Well see about putting this or other review
    topics on the web
  • Fridays lecture is Java review
  • And an intro to clickers
  • Dont have to have your clicker but bring it if
    you have it.
Write a Comment
User Comments (0)
About PowerShow.com