CPSC 329 Software Development Fall 2010

CPSC 329 Syllabus

Readings are to be done for the class period where they are listed. Reading questions are due at the start of class on the day for which the reading is assigned.

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

 Assignments

Week 1: 8/30-9/3

Topics: introduction; great software; stage 1: understanding

     

Mon       homework #0
due Wed 9/1

Wed Reading: OOAD ch 1

Notes:

Examples:

  • Rick's Guitars (early version), with fancier enums, generics, for-each loops, etc
reading questions
due Wed 9/1
   

Thu     lab #1
Introduction to Eclipse

due Thu 9/9
at the start of lab

Fri Reading: OOAD ch 2

Notes:

reading questions
due Fri 9/3
homework #1
due Mon 9/6

Week 2: 9/6-9/10

Topics: understanding: requirements gathering, use cases, scenarios, thinking through

 

Mon Notes:   homework #2
due Fri 9/10

Wed Reading: OOAD ch 3

Notes:

reading questions
due Wed 9/8

Thu     lab #2
Introduction to Subversion

due Thu 9/16
at the start of lab

Fri Notes:
  • class notes (fixing SVN problems, requirements and use cases)
   

Week 3: 9/13-9/17

Topics: analysis and design

   

Mon Reading: OOAD ch 4

Notes:

  • class notes (level of detail in requirements and use cases, analysis, textual analysis)
reading questions
due Mon 9/13
homework #3
due Wed 9/15

Wed Reading: Horstmann sections 2.3-2.4, 2.6-2.7

Notes:

  • class notes (requirements and use cases, identifying classes and responsibilities, CRC cards)
reading questions
due Wed 9/15
homework #4
due Fri 9/17

Thu     lab #3
More Subversion

due Thu 9/23
at the start of lab

Fri Reading: Horstmann section 2.12

Notes:

  • class notes (CRC cards, sequence diagrams, class diagrams)
reading questions
due Fri 9/17
homework #5
due Mon 9/20

Week 4: 9/20-9/24

Topics: analysis and design; basic design principles

 

Mon Notes:
  • class notes (CRC cards, sequence diagrams, class diagrams)
  homework #6
due Mon 9/27

Wed Reading: OOAD chapter 5 (part 1)

Notes:

  • class notes (duck simulator notes, OOAD ch 5 part 1, little annoyances)
reading questions
due Wed 9/22

Thu      

Fri Reading: OOAD "OO Catastrophe", Horstmann sections 3.4-3.5

Notes:

  • class notes (little annoyances, design principles, class design)
reading questions
due Fri 9/24
 

Week 5: 9/27-10/1

Topics: basic design principles; understanding revisited

   

Mon Reading: OOAD chapter 5 (part 2)

Notes:

reading questions
due Mon 9/27
  homework #7
due Wed 9/29

Wed Notes:
  • class notes (class design, duck simulator design discussion)
     

Thu     lab #4
Encapsulating What Varies

due Thu 10/7
at the start of lab
 

Fri Reading: OOAD chapter 6

Notes:

  • class notes (big problems, big picture - features, requirements, use case diagrams)
reading questions
due Fri 10/1
project #1
Risk

understanding
due Fri 10/8

Week 6: 10/4-10/8

Topics: understanding revisited; getting started on big projects

 

Mon Notes:  

Wed Reading: OOAD chapter 7 (to page 349)

Notes:

  • class notes (architecturally significant features, reducing risk)
reading questions
due Wed 10/6

Thu      

Fri Reading: OOAD chapter 7 (page 350 to the end)

Notes:

  • class notes (shuffling, architecturally significant odds-and-ends, klondike design)
reading questions
due Fri 10/8
  project #1
Risk

design
due Wed 10/20

Week 7: 10/11-10/15

Topics: more design principles

   

Mon fall break
(no class)

Wed Notes:
  • class notes (looking for commonality, encapsulating what varies)
   

Thu      

Fri Reading: OOAD chapter 8 (to page 399)

Notes:

reading questions
due Fri 10/15
 

Week 8: 10/18-10/22

Topics: more design principles

   

Mon Notes:
  • class notes (instance variables vs. parameters, design decisions)
   

Wed Reading: OOAD chapter 8 (page 400 to the end)

Notes:

reading questions
due Wed 10/20
  project #1
Risk

implementation
due Mon 11/1

Thu     lab #5
More Encapsulating What Varies

due Thu 10/28
at the start of lab

Fri Notes:
  • class notes (alternatives to inheritance, design principle recap)
 

Week 9: 10/25-10/29

Topics: implementation and testing

 

Mon Reading: OOAD chapter 9 (to page 459)

Notes:

  • class notes (points from OOAD chapter 9, implementation approaches)
reading questions
due Mon 10/25

Wed Reading: OOAD chapter 9 (page 460 to the end)

Notes:

reading questions
due Wed 10/27

Thu     lab #6
Unit Testing and JUnit

due Thu 11/4
at the start of lab

Fri Notes:
  • class notes (testing, programming by contract vs defensive programming)
 

Week 10: 11/1-11/5

Topics: networking; threads; design patterns

 

Mon Reading: Eck Introduction to Programming Using Java sections 11.4.2-11.4.5

Notes:

Examples:

reading questions
due Mon 11/1
project #1
Risk

discussion
due Wed 11/3

Wed Reading: Eck Introduction to Programming Using Java sections 8.5.1-8.5.2, 11.5.1-11.5.2

Notes:

Examples:

reading questions
due Wed 11/3
project #2
Reversi+

individual understanding due Mon 11/8

Thu     lab #7
Networked Flip

due Thu 11/11
at the start of lab

Fri Notes:

Supplementary Reading: Horstmann section 5.2 (patterns in general), section 5.4 (strategy pattern)


Week 11: 11/8-11/12

Topics: design patterns

 

Mon Notes:

Supplementary Reading: Horstmann section 5.3 (observer pattern)

  project #2
Reversi+

team understanding due Wed 11/10

Wed Notes:   project #2
Reversi+

individual design due Mon 11/15

Thu     lab #8
Swing and MVC

due Thu 11/18
at the start of lab

Fri Notes:

Examples:

Supplementary Reading: Horstmann section 5.1 (iterator pattern)

 

Week 12: 11/15-11/19

Topics: code review

 

Mon Notes:   project #2
Reversi+

team design due Fri 11/19

Wed Notes:  

Thu     lab #9
Team Subversion

due Thu 12/2
at the start of lab

Fri Notes:   project #2
Reversi+

team implementation due Fri 12/10

Week 13: 11/22-11/26

Topics: more with threads

 

Mon Reading: Eck Introduction to Programming Using Java sections 8.5.3-8.5.4

Notes:

reading questions
due Mon 11/22

Wed Thanksgiving break
(no class)

Thu

Fri

Week 14: 11/29-12/3

Topics: more with threads; more design patterns

 

Mon Notes:
  • class notes (advanced threads - mutual exclusion and synchronization)

Examples:

 

Wed Notes:
  • class notes (design patterns - adapter, facade, proxy, composite)
 

Thu    

Fri Reading: OOAD chapter 10 (through page 502)

Notes:

  • class notes (design patterns - end of composite, decorator, factory)
reading questions
due Fri 12/3

Week 15: 12/6-12/10

Topics: putting it all together

 

Mon Reading: OOAD chapter 10 (pages 503-530)

Notes:

reading questions
due Mon 12/6

Wed Reading: OOAD chapter 10 (page 531 to the end)

Notes:

reading questions
due Wed 12/8

Thu    

Fri Notes:
  • class notes (iterating, GPXCleaner, grand recap with tips)
    project #2
Reversi+

individual discussion due Thu 12/16 4:30pm

Reading Period: 12/11-12/13

   

Sat    

Sun    

Mon    

Exams: 12/14-12/17

   

Tue    

Wed    

Thu
final exam
Thu 12/16 1:30-4:30pm
end-of-semester deadline
no work accepted after 12/16 4:30pm

Fri      

Valid HTML 4.01!