CS 5010: Program Design Paradigms Seattle Section

Fall 2017

CS 5010 is the introductory course for students in the MS program. The course has two distinct objectives. First, it ensures all MS students have developed basic skills in program design, from problem analysis to developing test suites, using several program design paradigms. Second, the course introduces students to programming as a people discipline. Students will work in pairs, present code to review panels, and learn to cope with an evolving code base.

Programming takes time, and it usually takes more time than you think. Most students who have taken the course report spending an average of about 20 hours per week on the programming assignments. Please take that into account when organizing your time.

Syllabus:

Module Wednesday Topic Assignments/Code Walk Schedule Recommended Reading
00 6 Sep Introduction to PDP Maven Setup
docx / pdf
Design by Contract
Java Practices - Design by Contract
Journal of Object Technology
01 13 Sep A Whirlwind Tour of Java
02 20 Sep Object Oriented Design Principles Assignment 01 Additional Material - Exceptions
Additional Material - Packages
ShapeInterfaceExample
03 27 Sep Advanced Object Oriented Design Assignment 02 Guidelines for Successful Assignments 2 & 3
Code from Lecture: Type Safety, Generics and Polymorphism
04 4 Oct Design Patterns Coming Soon
05 11 Oct Advanced Design Patterns Assignment 3 - Due 10/09 @ 6:00p.m.
E-mail Template
CSV file for debugging
CSV file for submission
SOLID OOD, Liskov Substitution Principle and Static Binding
Assignment 3 - Designing Top to Bottom
06 18 Oct Data Structures and Algorithms 1 Time for Refactoring Assignments 2&3 - Due 10/16 @ 6:00p.m.
No code walk
Coming Soon
07 25 Oct Data Structures and Algorithms 2 Assignment04
DreamCandy1
DreamCandy2
Additional Example Related to Maps
08 1 Nov Data Structures and Algorithms 3 Assignment 05 Coming Soon
09 8 Nov Introduction to Concurrency No code walk Java Concurrency In Practice Chapters 1-8
10 15 Nov Concurrency Part 2 Assignment 6 - Due 11/13 @ 6:00p.m.
nodes_small.csv
edges_small.csv
nodes_10000.csv
edges_10000.csv
Java Concurrency In Practice Chapters 10-12
11 22 Nov Networking and Distribution Assignment 07 Coming Soon
12 29 Nov Functional Programming in Java Assignment 08 Coming Soon
13 6 Dec Miscellaneous Topics of Interest Assignment 09
Yahtzee.jar (server)
Coming Soon
14 13 Dec End of Class - Potluck

Most of the online materials at this web site were developed by the NU faculty, including the instructor and other course staff, and are used here with some changes as permitted by a Creative Commons License.

For debugging: Click here to validate.