CPSC 329 Software Development Fall 2017

CPSC 329 Schedule

Reading and class prep exercises are to be done for the class period where they are listed.

Dates for things in light gray are for planning purposes and may be adjusted slightly.

 Assignments

Week 1: 8/28-9/1

Topics: introduction; good software; the software development process; working in teams

   

Mon Slides:    

Tue   lab 1
Preliminaries
 

Wed Class Prep: available on Canvas

Slides:

 

Fri Class Prep and Reading: available on Canvas

Slides:

 

Week 2: 9/4-9/8

Topics: version control; understanding what the software is to do

 

Mon Reading:
  • Version Control with Subversion (version 1.8), chapters 1, 2, and 4
    This is a lot of technical material, and it covers the commandline SVN client (we'll primarily be using a plugin for Eclipse instead). What this means: read for the concepts - what is the key terminology, what is Subversion's approach to version control, what are the operations, what is the typical workflow, what are the best practices - rather than the details of commands and syntax.
  • Subversive User Guide This is also rather a lot of technical material, this time about Subversive, one of the Eclipse plugin SVN clients. It will also be less meaningful until you are sitting in front of Eclipse actually using Subversive (which will happen in lab), but it is still worth reading through it for the concepts - how the SVN operations import, update, commit, etc and the typical workflow translate into the Subversive interface.

Slides:

  project 1
Wa-Tor
(software)

Tue   lab 2
Introduction to Subversive

Wed Slides:

Fri Slides:

Week 3: 9/11-9/15

Topics: understanding what the software is to do; basic program design


Mon Slides:

Tue   lab 3
More Subversive

Wed Slides:

Fri Slides and Handouts:

Week 4: 9/18-9/22

Topics: program design


Mon Slides and Examples:

Tue   lab 4
PlantUML

Wed Slides and Examples:
  • program design (responsibilities and collaborators - use cases example, refining the organization of classes and responsibilities, sequence diagrams)
  • Klondike example: CRC cards, version 2 (many responsibilities and collaborators included - is this complete?)

Fri Slides and Examples: project 1
Wa-Tor
(reflection)

Week 5: 9/25-9/29

Topics: program design; basic design principles


Mon Slides and Examples: project 2
Game!
(understanding and code design)

comments

Tue   lab 5
Papyrus

Wed Slides and Examples:

Fri Slides:

Week 6: 10/2-10/6

Topics: UI design


Mon Reading:

Class Prep: available on Canvas

Slides:


Tue   lab 6
Swing

Wed Slides:

Fri Slides: project 2
Game!
(UI design)

comments

Week 7: 10/9-10/13

Topics: implementation strategies and coding practices; verification and validation


Mon fall break
(no class)

Tue

Wed Slides:

Fri Slides:
  • implementation (coding practices - defensive programming; assertions)
project 2
Game!
(software)

Week 8: 10/16-10/20

Topics: testing; threads


Mon Slides:

Tue lab 7
JUnit

Wed Slides:

Fri Reading: Slides and Examples:

Week 9: 10/23-10/27

Topics: threads; networking and streams


Mon Slides and Examples:

Tue    

Wed    

Fri Reading:
  • section 11.4 of Introduction to Programming Using Java, D. Eck
 

Week 10: 10/30-11/3

Topics:

 

Mon  

Tue    

Wed    

Fri     project 2
Game!
(reflection)

Week 11: 11/6-11/10

Topics:

 

Mon     project 3

Tue    

Wed    

Fri    

Week 12: 11/13-11/17

Topics:

 

Mon    

Tue    

Wed    

Fri    

Week 13: 11/20-11/24

Topics:

 

Mon    

Tue    

Wed Thanksgiving break
(no class)

Fri

Week 14: 11/27-12/1

Topics:

 

Mon    

Tue    

Wed    

Fri    

Week 15: 12/4-12/8

Topics:

 

Mon    

Tue    

Wed    

Fri     final exam (take home)
due Thu 12/14 at 10pm

Reading Period: 12/9-12/11

 

Sat    

Sun    

Mon    

Exams: 12/12-12/15

 

Tue    

Wed    

Thu   end-of-semester deadline
no work accepted after 12/14 10pm

Fri      

Valid HTML 4.01!