CPSC 329 | Software Development | Fall 2020 |
Daily lessons are due by 8pm the night before the class/lab 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/24-8/28Topics: course introduction; review of OOP concepts; basic OOAD; approaches to implementation; choosing data structures |
|||
Mon | |||
Tue | lab 1 Preliminaries should be completed by 8/31 |
||
Wed | Daily lesson: on Canvas - "OOP and OOAD basics" in the "OOP review" module
Materials from class:
|
||
Fri |
Daily lesson: on Canvas - "data structures and implementation approaches" in the "OOP review" module
Materials from class: |
||
Week 2: 8/31-9/4Topics: debugging strategies and tactics; version control; JavaFX |
|||
Mon |
Daily lesson: on Canvas - "debugging and version control" in the "OOP review" module
Materials from class:
|
project 1: Darwin's World (OOP review) |
|
Tue | lab 2 SVN due 9/8 at the start of lab |
||
Wed |
Daily lesson: on Canvas - "JavaFX" in the "GUI programming" module
Materials from class:
|
||
Fri |
Daily lesson: on Canvas - complete "JavaFX muddiest points I" in the "GUI programming" module
Materials from class:
|
||
Week 3: 9/7-9/11Topics: JavaFX; GUI design principles and process |
|||
Mon |
Daily lesson: on Canvas - complete "JavaFX muddiest points II" in the "GUI programming" module
Materials from class:
|
||
Tue | lab 3 JavaFX due 9/15 at the start of lab |
||
Wed |
Daily lesson: on Canvas - complete "screen design principles" in the "GUI programming" module
Materials from class: |
||
Fri |
Daily lesson: on Canvas - complete "UI design principles" in the "GUI programming" module
Materials from class: |
||
Week 4: 9/14-9/18Topics: uncovering UI requirements; working in teams; networking in Java |
|||
Mon |
Daily lesson: on Canvas - complete "uncovering UI requirements" in the "GUI programming" module
Materials from class: |
||
Tue | lab 4 SVN II due 9/22 at the start of lab |
||
Wed |
Daily lesson: on Canvas - complete the "teamwork" module
Materials from class:
|
project 2: Fire! (GUI programming) |
|
Fri |
Daily lesson: on Canvas - complete "client-server networking" in the "client-server networking" module
Materials from class:
|
||
Week 5: 9/21-9/25Topics: protocols; threads |
|||
Mon |
Daily lesson: on Canvas - complete "protocols" in the "client-server networking" module
Materials from class:
|
||
Tue | lab 5 Client-Server Networking due 9/29 at the start of lab |
||
Wed |
Daily lesson: on Canvas - complete "threads" in the "threads" module
Materials from class:
|
||
Fri |
Daily lesson: on Canvas - complete "mutual exclusion" in the "threads" module
Materials from class:
|
||
Week 6: 9/28-10/2Topics: applications of threads in client-server programs and GUI programs |
|||
Mon | |||
Tue | lab 6 Client-Server II due 10/6 at the start of lab |
||
Wed |
Daily lesson: on Canvas - complete "GUI programs and threads" in the "threads" module
Materials from class:
|
skills check GUI programming review information (in the Assignments section on Canvas) |
|
Fri |
Materials from class:
|
||
Week 7: 10/5-10/9Topics: OOAD - basic principles, designing for flexibility and reuse |
|||
Mon |
Daily lesson: on Canvas - complete "basic principles" in the "OOAD" module
Materials from class:
|
project 3: Mastermind (client-server networking and threads) |
|
Tue | lab 7 OOAD Tools due 10/13 at the start of lab |
||
Wed |
Daily lesson: on Canvas - complete "designing for reuse" in the "OOAD" module
Materials from class:
|
||
Fri |
Daily lesson: on Canvas - complete "designing for flexibility" in the "OOAD" module
Materials from class:
|
||
Week 8: 10/12-10/16Topics: designing for flexibility, alternatives to inheritance |
|||
Mon |
Daily lesson: on Canvas - complete "inheritance" in the "OOAD" module
Materials from class:
|
||
Tue | lab 8 Encapsulate What Varies due 10/20 at the start of lab |
||
Wed |
Materials from class:
|
||
Fri |
Daily lesson: on Canvas - complete "Strategy" in the "OOAD" module
Materials from class:
|
||
Week 9: 10/19-10/23Topics: separation of concerns, MVC, Observer |
|||
Mon |
Daily lesson: on Canvas - complete "separation of concerns" in the "OOAD" module
Materials from class:
|
skills check client-server networking and threads review information (in the Assignments section on Canvas) |
|
Tue | lab 9 Separation of Concerns due 10/27 at the start of lab |
||
Wed |
Materials from class:
|
project 4: Cellular Automata (OOAD) |
|
Fri |
Materials from class:
|
||
Week 10: 10/26-10/30Topics: patterns for GUI and client-server programs; coding practices, clean code |
|||
Mon |
Daily lesson: on Canvas - complete "patterns for non-tangible classes" in the "OOAD" module
Materials from class:
|
||
Tue | lab 10 Scene Builder due 11/3 at the start of lab |
||
Wed |
Daily lesson: on Canvas - complete "coding practices" in the "implementation" module
Materials from class:
|
||
Fri |
Materials from class:
|
||
Week 11: 11/2-11/6Topics: code smells; testing |
|||
Mon |
Daily lesson: on Canvas - complete "code smells" in the "implementation" module
Materials from class:
|
||
Tue | lab 11 Clean Code due 11/10 at the start of lab |
||
Wed |
Daily lesson: on Canvas - complete "testing I" in the "implementation" module
Materials from class:
|
skills check object-oriented analysis and design review information (in the Assignments section on Canvas) |
|
Fri |
Daily lesson: on Canvas - complete "development process" in the "implementation" module
Materials from class:
|
final project: Hedgehogs in a Hurry | |
Week 12: 11/9-11/13Topics: testing; patterns - Decorator, Visitor |
|||
Mon |
Daily lesson: on Canvas - complete "testing II" in the "implementation" module
Materials from class: |
||
Tue | lab 12 JUnit due 11/17 at the start of lab |
||
Wed |
Daily lesson: on Canvas - complete "Decorator" in the "advanced topics" module
Materials from class: |
||
Fri |
Daily lesson: on Canvas - complete "Visitor" in the "advanced topics" module
Materials from class: |
||
Week 13: 11/16-11/20Topics: patterns - Factory; thread coordination |
|||
Mon |
Daily lesson: on Canvas - complete "Factory" in the "advanced topics" module
Materials from class: |
||
Tue | lab 13 More Patterns due 11/24 at the start of lab |
||
Wed |
Daily lesson: on Canvas - complete "thread coordination" in the "advanced topics" module
Materials from class: |
||
Fri | |||
Week 14: 11/23-12/2Topics: wrapup; work on project |
|||
Mon | In class: work on final project | ||
Tue | work on final project in lab | ||
Wed | Thanskgiving break | ||
Fri | |||
Mon |
Materials from class:
|
||
Tue | no lab (Thu schedule) |
||
Wed |
Materials from class:
|
||
Reading Period: 12/3-12/6 |
|||
Thu | |||
Fri | |||
Sat | skills check coding practices final reflection review information: skills check, reflection (in the Assignments section on Canvas) |
||
Sun | |||
Exams: 12/7-12/11 |
|||
Mon | |||
Tue | |||
Wed | scheduled final exam time
12/9 1:30-4:30pm |
end-of-semester deadline no work accepted after 12/9 4:30pm |
|
Thu | |||
Fri |