UW CSE331, Winter 2014 (original) (raw)
CSE331: Software Design and Implementation, Winter 2014
Course Info
Course Information and Policies
Lecture: Monday, Wednesday, Friday 10:30-11:20 CMU120
Section AA: Thursday 8:30-9:20 EEB003
Section AB: Thursday 9:30-10:20 EEB003
Section AC: Thursday 10:30-11:20 EEB105
All office hours will be held in the undergraduate labs in the basement of the Allen Center, room 006, except Dan's hours, which will be held in his office, room 574 of the Allen Center.
Office Hours:
Dan Grossman, Allen Center 574, Wednesdays 9:00-10:00AM
Brandon Dalesandro, Fridays 11:30AM-12:30PM
Brian Griffith, Mondays 2:30-3:30PM
Riley Klingler, Thursdays 3:00-4:00PM
Alex Mariakakis, Tuesdays 1:00-2:00PM
Uldarico Muico, Wednesdays 2:00-3:00PM
Karthik Palaniappan, Thursdays 11:00AM-Noon
Lecture
Lecture Materials
- 1. Jan 6: Course Introduction pptx pdf1up pdf6up
- 2. Jan 8,10: Reasoning About Code With Logic pptx pdf1up pdf6up related reading-notes
- 3. Jan 10,13: Reasoning About Loops pptx pdf1up pdf6up related reading-notes
- 4. Jan 15,17: Specifications pptx pdf1up pdf6up
- X. Jan 20: University Holiday
- 5. Jan 22: ADTs pptx pdf1up pdf6up related handout
- 6. Jan 24: Representation Invariants pptx pdf1up pdf6up related handout
- 7. Jan 27: Abstraction Functions pptx pdf1up pdf6up related handout (same as previous lecture)
- 8. Jan 27,29,31: Testing pptx pdf1up pdf6up related handout
- 9. Jan 31: Module Design and General Style Guidelines pptx pdf1up pdf6up
- 10. Feb 3,5: Identity, Equals, and HashCode pptx pdf1up pdf6up
- 11. Feb 5,7: Exceptions and Assertions pptx pdf1up pdf6up
- 12. Feb 10,14: Subtypes and Subclasses pptx pdf1up pdf6up
- X. Feb 12: Midterm Exam
- 13. Feb 14,19,21: Generics pptx pdf1up pdf6up
- X. Feb 17: University Holiday
- 14. Feb 24: Events, Listeners, and Callbacks pptx pdf1up pdf6up
- 15. Feb 24,26: Debugging pptx pdf1up pdf6up related handout
- 16. Feb 26,28,Mar 3: Design Patterns, Part 1 pptx pdf1up pdf6up
- 17. Mar 3,5: Java Graphics and GUIs pptx pdf1up pdf6up
SimpleFrameMain.java SimpleLayoutMain.java SimplePaintMain.java Face.java FaceMain.java - 18. Mar 5,7: GUI Event-Driven Programming pptx pdf1up pdf6up
ButtonDemo1.java ButtonDemo2.java ballsim (7 files) - 19. Mar 7,10: Design Patterns, Part 2 pptx pdf1up pdf6up
- 20. Mar 10,12: System Integration and Software Process pptx pdf1up pdf6up
- 21. Mar 14: Course Wrap-Up pptx pdf1up pdf6up
Section
Section Materials
- 1. Jan 9: Debugging and Code Reasoning pptx pdf1up pdf6up
- 2. Jan 16: Developer Tools and You pptx pdf1up pdf6up
- 3. Jan 23: HW4, ADTs, and more pptx pdf1up pdf6up
- 4. Jan 30: Graphs and Testing pptx pdf1up pdf6up
- 5. Feb 6: Midterm Review pptx pdf1up pdf6up
- 6. Feb 13: Homework 6 and Interfaces pptx pdf1up pdf6up
- 7. Feb 20: Dijkstra's Algorithm pptx pdf1up pdf6up
- 8. Feb 27: Model-View-Controller pptx pdf1up pdf6up
- 9. Mar 6: Design Patterns pptx pdf1up pdf6up
- 10. Mar 13: Final Review pptx pdf1up pdf6up
Homework
Homework Assignments
We will use a Catalyst dropbox only for early assignments in the course. After that, turn in will be via version-control.
Late-Day Request Form (required to use late days starting with Homework 2)
Beginning-of-course questionnaire: on-line survey worth 0 points, "due" Thursday Janunary 9
- Homework 0, due Wednesday January 8, 10AM
- Homework 1, due Tuesday January 14, 11PM
- Homework 2, due Tuesday January 21, 11PM
- Homework 3, due Thursday January 23, 11PM
- Homework 4, due Thursday January 30, 11PM
- Homework 5, due Monday February 10, 11PM
- Homework 6, due Wednesday February 19, 11PM
- Homework 7, due Wednesday February 26, 11PM
- Homework 8, due Wednesday March 5, 11PM
- Homework 9, due Thursday March 13, 11PM
Readings
Reading Assignments and Quizzes
For each reading, there is a short quiz due as indicated below. Quizzes are on Catalyst and are available only to students registered in the course. Abbreviations:
PP = The Pragmatic Programmer
EJ = Effective Java, 2nd Edition
- Batch 1, Available January 22, Due Tuesday Janary 28, 11PM
- Batch 2, Available January 22, Due Friday, January 31, 11PM
- Batch 3, Available January 30, Due Friday, February 7, 11PM
- PP2.7 The Evils of Duplication quiz
- PP2.8 Orthogonalityquiz
- PP6.34 Code That's Easy to Testquiz
- PP8.43 Ruthless Testingquiz
- EJ8.56 Adhere to generaly accepted naming conventionsquiz
- EJ3.8 Obey the general contract when overriding equalsquiz
- EJ3.9 Always override hashCode when you override equalsquiz
- Batch 4, Available February 18, Due Friday, February 28, 11PM
Exams
Midterm Exam: Wednesday February 12, in classunsolved solved
Covers material through Lecture 10, Reading Quizzes Batch 3, and Section 4. Old exams may cover different materials and are no guarantee of style/format/difficulty etc. of our exam. See email sent to the class for more information.
Old midterms:
Fall 2013 unsolved solved
Spring 2013 unsolved solved
Winter 2013 unsolved solved
Fall 2012 unsolved solved
Spring 2012 unsolved solved
Winter 2012 unsolved solved
Final Exam: Monday March 17, 8:30-10:20AMunsolved solved
While material in all lectures (1 through 20), sections, readings, and homeworks is “fair game,” the questions will very heavily emphasize the material that was not covered on the midterm. There will not be time on the exam to test all topics. Old exams may cover different materials and are no guarantee of style/format/difficulty etc. of our exam. In particular, we did not cover usability, UI prototyping, or static nullness checking, so exam questions about them are not relevant.
Old finals:
Fall 2013 unsolved solved
Spring 2013 unsolved solved
Winter 2013 unsolved solved
Fall 2012 unsolved solved
Spring 2012 unsolved solved
Winter 2012 unsolved solved
Acknowledgments: This course offering relies heavily on previous versions of the course, particularly the infrastructure and content developed by Michael D. Ernst and adapted by other instructors, particularly Hal Perkins and David Notkin, as well as many excellent previous course-staff members.