CIS 350 - Spring 2012

blackboard | google | wikipedia

CIS 350 Schedule (updated 3/31/12)



Date Lecture Topics Readings & Other Info
Part 1: How to make software
Jan 12
  • Course overview
  • Process models
Jan 17
  • Agile software development
  • Pressman ch. 3
  • Presented by Moh Rezaei from Goldman Sachs (lecture slides)
Jan 19
  • Software configuration management
Jan 24
  • Continuous integration
  • Testing intro
Jan 26
  • Software testing
  • Test-driven development and JUnit
  • Lecture notes
  • Pressman sec. 18.2 - 18.6
Jan 31
  • Intro to Android
  • Overview of course project
Feb 2
  • Android application development (lab)
Feb 7
  • Android application development (lab)
Feb 9
  • Special Topic: Java Generics
  • This lecture is not part of the course per se, but you should attend if you're interested in learning more about Java
Feb 14
  • Android Activities
  • Testing your Android app
Part 2: How to make software "good"
Feb 16
  • Software design concepts
Feb 21
  • Object-oriented design
  • Lecture slides and notes
  • Pressman 6.5 and 10.1 - 10.2
Feb 23
  • Designing for testability
  • Midterm review
Feb 28
  • Midterm exam
Mar 1
  • No class today!
Mar 6
  • No class! Spring break!
Mar 8
  • No class! Spring break!
Part 3: How to make software "better"
Mar 13
  • Review of midterm exam solutions
  • Code readability metrics
Mar 15
  • Design complexity metrics
  • Lecture slides and notes
  • F. Tsui & O. Karam, Essentials of Software Engineering, chapter 8 (available in the Course Documents section of Blackboard)
Mar 20
  • Refactoring & code smells
  • Lecture slides and notes
  • M. Fowler, Refactoring: Improving the Design of Existing Code, chapter 2 and chapter 3 (PDFs are available in Blackboard)
Mar 22
  • Refactoring patterns
Mar 27
  • Debugging and regression testing
Mar 29
  • Measuring and improving code performance
Apr 3
  • Usability
  • Conducting a code inspection
Part 4: Does any of this really matter?
Apr 5
  • Societal computing: privacy, climate change, green computing, sustainability, etc.
Apr 10
  • Legal aspects of software engineering
  • Presented by Alex Sluzas of Paul & Paul law firm, Philadelphia
Apr 12
  • Special Topic: "How Software is Engineered at Google"
  • Presented by Phil Gross of Google NYC
Apr 17
  • Software engineering ethics
Apr 19
  • Special Topic: "A Career in Software Engineering"
  • Presented by Tobin Titus of Microsoft
Apr 24
  • Final review (and some demos!)
May 7
  • Final Exam!
  • Scheduled by University registrar for 9-11am in Towne 100 (Heilmeier Hall)
  • Study guide