| CPSC 329 | Software Development | Fall 2022 | 
Daily lessons are due by 8pm the night before the class period where they are listed.
Things in light gray have not been assigned yet; they are listed for planning purposes and dates may shift slightly.
| Assignments | |||
|---|---|---|---|
| Week 1: 8/22-8/26Topics: 
 | |||
| Mon | Materials from class: 
 | ||
| Tue | before lab, make sure you can log in to your Linux account - contact Prof Eck (eck@hws.edu) if you need an account or password reset | lab 1 Preliminaries should be completed by 8/29 | |
| Wed | Modules: on Canvas - "preliminaries" (syllabus quiz and introductory survey) and "OOP review" Daily lesson: on Canvas - "OOAD" (in the "core process" module) Materials from class: 
 | ||
| Fri | Daily lesson: on Canvas - "implementation" (in the "core process" module) Materials from class: 
 | ||
| Week 2: 8/29-9/2Topics: 
 | |||
| Mon | Daily lesson: on Canvas - "debugging and version control" (in the "core process" module) Materials from class: 
 | project 1: Darwin's World (OOP review) due 9/14 at the start of class | |
| Tue | Lab preparation: on Canvas - review the videos in the "subclipse" module | lab 2 SVN due 9/6 at the start of lab | |
| Wed | Daily lesson: on Canvas - "JavaFX" (in the "GUI programming" module) Materials from class: | ||
| Fri | Daily lesson: on Canvas - "JavaFX muddiest points I" (in the "GUI programming" module) In-class exercises: 
 Materials from class: 
 | ||
| Week 3: 9/5-9/9Topics: GUI programming - JavaFX, GUI design principles | |||
| Mon | Daily lesson: on Canvas - "JavaFX muddiest points II" (in the "GUI programming" module) In-class exercises: 
 Materials from class: 
 | ||
| Tue | lab 3 JavaFX due 9/13 at the start of lab | ||
| Wed | Daily lesson: on Canvas - "screen design principles" (in the "GUI programming" module) Materials from class: 
 | ||
| Fri | Daily lesson: on Canvas - "UI design principles" (in the "GUI programming" module) Materials from class: 
 | ||
| Week 4: 9/12-9/16Topics: GUI programming - GUI design process; working in teams; client-server programs - networking in Java | |||
| Mon | Daily lesson: on Canvas - "uncovering requirements" (in the "GUI programming" module) Materials from class: | ||
| Tue | lab 4 SVN II due 9/20 at the start of lab | ||
| Wed | Daily lesson: on Canvas - complete the "teamwork" module Materials from class: 
 | project 2: Fire! (GUI design and implementation) due 9/28 at the start of class | |
| Fri | Daily lesson: on Canvas - "client-server networking" (in the "client-server networking" module) Materials from class: 
 | ||
| Week 5: 9/19-9/23Topics: client-server programs: protocols; thread basics | |||
| Mon | Daily lesson: on Canvas - "protocols" (in the "client-server networking" module) Materials from class: 
 | ||
| Tue | lab 5 Client-Server Networking due 9/27 at the start of lab | ||
| Wed | Daily lesson: on Canvas - "threads" (in the "threads" module) Materials from class: 
 | ||
| Fri | Daily lesson: on Canvas - "mutual exclusion" (in the "threads" module) Materials from class: 
 | ||
| Week 6: 9/26-9/30Topics: applications of threads | |||
| Mon | Materials from class: 
 | ||
| Tue | lab 6 Client-Server Networking II due 10/4 at the start of lab | ||
| Wed | Daily lesson: on Canvas - "GUI programs and threads" (in the "threads" module) Materials from class: 
 | skills check GUI programming (in the Assignments section on Canvas) due 9/30 review information | |
| Fri | project 3: Mastermind (client-server networking and threads) due 10/19 at the start of class | ||
| Week 7: 10/3-10/7Topics: OOAD - basic principles, designing for reuse, designing for flexibility | |||
| Mon | [posted late - review if you have a chance before class] Daily lesson: on Canvas - "basic principles" (in the "OOAD" module) Materials from class: 
 | ||
| Tue | lab 7 OOAD Tools due 10/18 at the start of lab | ||
| Wed | Daily lesson: on Canvas - "designing for reuse" (in the "OOAD" module) Materials from class: 
 | ||
| Fri | Daily lesson: on Canvas - "designing for flexibility" (in the "OOAD" module) Materials from class: 
 | ||
| Week 8: 10/10-10/14Topics: OOAD - designing for flexibility | |||
| Mon | fall break | ||
| Tue | |||
| Wed | Materials from class: 
 | ||
| Fri | Daily lesson: on Canvas - "Strategy" (in the "OOAD" module) Materials from class: 
 | ||
| Week 9: 10/17-10/21Topics: OOAD principles and patterns - LSP, favoring composition over inheritance; separation of concerns, MVC, Observer | |||
| Mon | Daily lesson:
    on Canvas - "inheritance"
    (in the "OOAD" module) Materials from class: | ||
| Tue | lab 8 Encapsulate What Varies due 10/25 at the start of lab | ||
| Wed | Daily lesson:
    on Canvas - "separation of concerns"
    (in the "OOAD" module) Materials from class: 
 | skills check networking and threads (in the Assignments section on Canvas) due 10/21 review information | |
| Fri | Materials from class: 
 | project 4: Cellular Automata (OOAD) due 11/4 at the start of class | |
| Week 10: 10/24-10/28Topics: separation of concerns, MVC; patterns for non-tangible classes; coding practices | |||
| Mon | Materials from class: 
 | ||
| Tue | lab 9 Separation of Concerns and MVC due 11/1 at the start of lab | ||
| Wed | Daily lesson:
    on Canvas - "patterns for
    non-tangible classes" (in the "OOAD" module) Materials from class: | ||
| Fri | Daily lesson:
    on Canvas - "coding
    practices" (in the "implementation" module) Materials from class: | ||
| Week 11: 10/31-11/4Topics: coding practices; code smells; testing | |||
| Mon | Materials from class: 
 | ||
| Tue | lab 10 Scene Builder due 11/8 at the start of lab | ||
| Wed | Daily lesson:
    on Canvas - "code
    smells" (in the "implementation" module) Materials from class: 
 | ||
| Fri | Daily lesson:
    on Canvas - "testing I" (in
    the "implementation" module) Materials from class: 
 | skills check (in the Assignments section on Canvas) due 11/7 review information | |
| Week 12: 11/7-11/11Topics: testing; development process; patterns - Decorator | |||
| Mon | Daily lesson:
    on Canvas - "development process" (in
    the "implementation" module) Materials from class: | final project: Hedgehogs in a Hurry due 12/2 11:59pm | |
| Tue | lab 11 Clean Code due 11/15 at the start of lab | ||
| Wed | Daily lesson:
    on Canvas - "testing II" (in
    the "implementation" module) Materials from class: 
 | ||
| Fri | Daily lesson:
    on Canvas - "Decorator" (in
    the "advanced topics" module) Materials from class: 
 | ||
| Week 13: 11/14-11/18Topics: patterns - Visitor, Factory; thread coordination | |||
| Mon | Daily lesson:
    on Canvas - "Visitor" (in
    the "advanced topics" module) Materials from class: 
 | ||
| Tue | lab 12 JUnit due 11/22 at the start of lab | ||
| Wed | Daily lesson:
    on Canvas - "Factory" (in
    the "advanced topics" module) Materials from class: 
 | ||
| Fri | Daily lesson:
    on Canvas - "thread coordination" (in
    the "advanced topics" module) Materials from class: 
 | ||
| Week 14: 11/21-11/25Topics: thread coordination | |||
| Mon | Materials from class: 
 | ||
| Tue | lab 13 More Patterns due 12/2 at the start of class | ||
| Wed | Thanksgiving break | ||
| Fri | |||
| Week 15: 11/28-12/2Topics: work on project | |||
| Mon | meet in Lansing 310 | ||
| Tue | work on lab 13 or project | ||
| Wed | meet in Lansing 310 | ||
| Thu | 
 | ||
| Fri | meet in Lansing 310 | ||
| Reading Period: 12/3-12/5 | |||
| Sat | skills check and final reflection (in the Assignments section on Canvas) due 12/6 11:30am review information: skills check and reflection | ||
| Sun | |||
| Mon | 
 | ||
| Final Exams: 12/6-12/9 | |||
| Tue | end-of-semester deadline no work accepted after 12/6 11:30am | ||
| Wed | |||
| Thu | |||
| Fri | |||