CPSC 329 Software Development Fall 2014

CPSC 329 Syllabus

Reading, when assigned, is to be done for the class period where it is listed.

Dates for things in light gray are tentative and may shift slightly.

 Assignments

Week 1: 9/1-9/5

Topics: introduction; understanding what the software needs to do (functionality)

     

Mon Slides:   homework #0
homework #1
due Wed Sep 3
 

Tue   lab #1
Introduction to Eclipse
due Tue Sep 9
 

Wed Slides: homework #2
due Fri Sep 5
 

Fri Slides:
  • understanding phase (Klondike and Wa-Tor examples, requirements discovery, requirements document)

Examples:

homework #3
due Mon Sep 8
(revise for Wed Sep 10)
 

Week 2: 9/8-9/12

Topics: version control and SVN; understanding what the software needs to do (usage)

 

Mon Slides:    

Tue   lab #2
Subversion
due Tue Sep 16
   

Wed Slides: homework #4
due Fri Sep 12
 

Fri Slides: homework #5
due Mon Sep 15
 

Week 3: 9/15-9/19

Topics: design (determining classes and responsibilities)

 

Mon Slides: homework #6
due Wed Sep 17
 

Tue   lab #3
Subversion II
due Tue Sep 23
 

Wed Slides:

Examples:

homework #6b
due Fri Sep 19
 

Fri Slides:

Examples:

homework #7
due Mon Sep 22
project #1
understanding phase
due Fri Sep 26

Week 4: 9/22-9/26

Topics: technologies (threads); human-computer interaction and UI design


Mon Slides:

Examples:

homework #8
due Wed Sep 24

Tue Reading: lab #4
Threads
due Tue Sep 30

Wed Slides:

References/Reading:

 

Fri Slides: homework #9
due Mon Sep 29
 

Week 5: 9/29-10/3

Topics: UI design; implementation

 

Mon Slides:   project #1
design phase
due Mon Oct 6

Tue   lab #5
Swing
due Tue Oct 7
 

Wed Slides:  

Fri Slides:

Examples:

 

Week 6: 10/6-10/10

Topics: implementation and testing

 

Mon Slides:    

Tue   lab #6
JUnit
due Tue Oct 21
  programming assignment
WATOR
due Mon Oct 20

Wed Slides:  

Fri Slides:
  • testing (developing test cases, automated testing, JUnit, designing for testing)
 

Week 7: 10/13-10/17

Topics: advanced threads, client-server networking

 

Mon fall break
(no class)
Tue

Wed Slides:

Examples:

Reading:

 

Fri Slides:

Examples:

 

Week 8: 10/20-10/24

Topics: client-server networking, developing networked programs

 

Mon Examples:   project #1
implementation
due Mon Nov 3

Tue   lab #7
Networking
due Tue Oct 28
 

Wed Slides:

Examples:

 

Fri Slides:

Examples:

  • protocol examples: reversi, joke server (note slightly different notation - here the solid arrow is used to indicate an interaction being initiated, and a dashed arrow is used to indicate a response - this helps distinguish between cases whether the other side has to read some information to know what use case is occurring vs just knowing what step this is)
 

Week 9: 10/27-10/31

Topics: object oriented design principles

 

Mon Slides: homework #10
due Wed Oct 27

Tue   lab #8
Networking II
due Tue Nov 4

Wed Slides:

Examples:

 

Fri Slides:

Examples:

homework #11
due Wed Nov 5

Week 10: 11/3-11/7

Topics: object oriented design principles


Mon Slides:  

Tue

 project #1 UI presentations (in lab)

project #1
writeup
due Fri Nov 7
 

Wed Slides:   project #2
understanding
part A
due Mon Nov 10

Fri Slides:    

Week 11: 11/10-11/14

Topics: more advanced object-oriented design

   

Mon Slides:     project #2
understanding
part B
due Wed Nov 12

Tue   lab #9
Encapsulate What Varies
due Tue Nov 18
homework #12
due Fri Nov 14

Wed Slides: project #2
design
due Wed Nov 19

Fri Slides:  

Week 12: 11/17-11/21

Topics: design patterns

 

Mon Slides:

Examples:

  • maze solver (hw12): subclass version, composition version (the split of "same" and "varies" code is the same in both versions; the difference is where the "varies" code is - in subclasses of MazeSolver, or in separate objects that are plugged into MazeSolver)
 

Tue   lab #10
Strategy and Observer
due Tue Nov 25
 

Wed Slides:

Examples:

  project #2
implementation
due Thu Dec 18

Fri Slides:  

Week 13: 11/24-11/28

Topics: design patterns

 

Mon Slides:  

Tue Slides: in-class exercises  

Wed Thanksgiving break
(no class)
Fri

Week 14: 12/1-12/5

Topics: code review

   

Mon code review: meet in Gulick 208 lab #11
Code Review and Redesign
due Tue Dec 9
 

Tue    

Wed code review: meet in Gulick 208  

Fri Slides:  

Week 15: 12/8-12/12

Topics: wrapup and project

 

Mon Slides:  

Tue      

Wed work on project: meet in Gulick 208    

Fri work on project: meet in Gulick 208

Notes:

   

Reading Period and Exams: 12/13-12/19

   

Sat      

Sun    

Mon      

Tue      

Wed    

Thu
final exam
Thu 12/18 1:30-4:30pm

available on Canvas
end-of-semester deadline
no work accepted after 12/18 4:30pm

Fri        

Valid HTML 4.01!