UW CSE331, Fall 2014 (original) (raw)
CSE331: Software Design and Implementation, Fall 2014
Course Info
Course Information and Policies
Lecture: Monday, Wednesday, Friday 2:30-3:20 MGH241
Section AA: Thursday 9:30-10:20 LOW206
Section AB: Thursday 10:30-11:20 LOW206
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 [beginning Monday September 29]:
Aaron Nech, Mondays 12:30-1:20
Whitney Schmidt, Mondays, 3:30-4:20
Meg Campbell, Tuesdays, 12:30-1:20
Christopher Chen, Tuesdays, 2:30-3:20
Dan Grossman, Allen Center 574, Wednesdays 10:00-11:00AM
Xin Yi, Thursdays, 12:30-1:20
Ben Tebbs, Fridays, 10:30-11:20
Lecture
Lecture Materials
Material in the future naturally subject to change in terms of coverage or schedule
- 1. Sep 24: Course Introduction pptx pdf1up pdf6up
- 2. Sep 26,29: Reasoning About Code With Logic pptx pdf1up pdf6up related reading-notes
- 3. Sep 29,Oct 1: Reasoning About Loops pptx pdf1up pdf6up related reading-notes
- 4. Oct 3,6,8: Specifications pptx pdf1up pdf6up
- 5. Oct 8,10: ADTs pptx pdf1up pdf6up related handout
- 6. Oct 10,13: Representation Invariants pptx pdf1up pdf6up related handout
- 7. Oct 13,15: Abstraction Functions pptx pdf1up pdf6up related handout (same as previous lecture)
- 8. Oct 15,17: Testing pptx pdf1up pdf6up related handout
- 9. Oct 20,22: Identity, Equals, and HashCode pptx pdf1up pdf6up
- 10. Oct 24,27: Exceptions and Assertions pptx pdf1up pdf6up
- 11. Oct 27,29: Module Design and General Style Guidelines pptx pdf1up pdf6up
- X. Oct 31: Midterm
- 12. Oct 29, Nov 3: Subtypes and Subclasses pptx pdf1up pdf6up
- 13. Nov 5,6,10: Generics pptx pdf1up pdf6up
- 14. Nov 10,12: Events, Listeners, and Callbacks pptx pdf1up pdf6up
- 15. Nov 12,14: Debugging pptx pdf1up pdf6up
- 16. Nov 14,17,19: Design Patterns, Part 1 pptx pdf1up pdf6up
- 17. Nov 19,24: Java Graphics and GUIs pptx pdf1up pdf6up
SimpleFrameMain.java SimpleLayoutMain.java SimplePaintMain.java Face.java FaceMain.java - X. Nov 21: Class cancelled (instructor illness)
- 18. Nov 26: GUI Event-Driven Programming pptx pdf1up pdf6up
ButtonDemo1.java ButtonDemo2.java ballsim (7 files) - 19. Dec 1,3: Design Patterns, Part 2 pptx pdf1up pdf6up
- 20. Dec 3,5: System Integration and Software Process pptx pdf1up pdf6up
- 21. Dec 5: Course Victory Lap pptx pdf1up pdf6up
Section
Section Materials
- 1. Sep 25: Version Control and Eclipse pptx pdf1up pdf6up
- 2. Oct 2: Code Reasoning and Programming Tools pptx pdf1up pdf6up
- 3. Oct 9: HW4, ADTs, and more pptx pdf1up pdf6up
- 4. Oct 16: Graphs and Testing pptx pdf1up pdf6up
- 5. Oct 23: HW6 and Interfaces pptx pdf1up pdf6up
- 6. Oct 30: Midterm Review pptx pdf1up pdf6up
- 7. Nov 7: Dijkstra's Algorithm pptx pdf1up pdf6up
- 8. Nov 13: Model-View-Controller pptx pdf1up pdf6up
- 9. Nov 20: Design Patterns pptx pdf1up pdf6up
- X. Nov 27: Holiday
- 10. Dec 4: Final-Exam 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.
Beginning-of-course questionnaire: on-line survey worth 0 points, “due” Saturday September 27
Late-Day Request Form (required to use late days)
- Homework 0, due Friday September 27, 2PM
- Homework 1, due Thursday October 2, 11PM
- Homework 2, due Wednesday October 8, 11PM
- Homework 3, due Friday October 10, 11PM
- Homework 4, due Thursday October 16, 11PM
- Homework 5, due Monday October 27, 11PM
- Homework 6, due Thursday November 6, 11PM
- Homework 7, due Monday November 17, 11PM
- Homework 8, due Tuesday November 25, 11PM
- Homework 9, due Thursday December 4, 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 October 6, Due Tuesday October 14, 11PM
- Batch 2, Available October 14, Due Tuesday October 21, 11PM
- Batch 3, Available October 21, Due October 28, 11PM
- Batch 4, Available November 6, Due November 14, 11PM
Exams
Midterm Exam: Friday October 31 in class unsolved solved
Covers material through Lecture 11, Reading Quizzes Batch 3, and Section 4. Old exams often cover slightly different-but-overlapping material and are no guarantee of style/format/difficulty etc. of our exam. See email sent to the class for more information.
Old midterms:
Spring 2014 unsolved solved
Winter 2014 unsolved solved
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: Tuesday December 9, 2:30-4:20PMunsolved 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:
Spring 2014 unsolved solved
Winter 2014 unsolved solved
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.