UW CSE331, Spring 2015 (original) (raw)
CSE331: Software Design and Implementation, Spring 2015
Course Info
Course Information and Policies
Lecture: Monday, Wednesday, Friday 10:30-11:20 MUE153
Section AA: Thursday 8:30-9:30 LOW206
Section AB: Thursday 9:30-10:20 LOW206
Section AC: Thursday 10:30-11:20 LOW202
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 Thursday April 2]:
Vinod Rathnam, Mondays 11:30-12:30
Uldarico Muico, Mondays 3:30-4:30
Kevin Quinn, Tuesdays 12:30-1:30
Christopher Chen, Wednesdays 2:30-3:30
Naruto Iwasaki, Thursdays 4:00-5:00
Dan Grossman, Allen Center 574, Fridays 12:30-1:30
Lecture
Lecture Materials
Material in the future naturally subject to change in terms of coverage or schedule
- 1. Mar 30: Course Introduction pptx pdf1up pdf6up
- 2. Apr 1,3: Reasoning About Code With Logic pptx pdf1up pdf6up related reading-notes
- 3. Apr 3,6: Reasoning About Loops pptx pdf1up pdf6up related reading-notes
- 4. Apr 8,10,13: Specifications pptx pdf1up pdf6up
- 5. Apr 13,15: ADTs pptx pdf1up pdf6up related handout
- 6. Apr 15,17: Representation Invariants pptx pdf1up pdf6up related handout
- 7. Apr 17,20: Abstraction Functions pptx pdf1up pdf6up related handout (same as previous lecture)
- 8. Apr 20,22: Testing pptx pdf1up pdf6up related handout
- 9. Apr 24,27: Identity, Equals, and HashCode pptx pdf1up pdf6up
- 10. Apr 29,May 1: Exceptions and Assertions pptx pdf1up pdf6up
- 11. May 1,7: Module Design and General Style Guidelines pptx pdf1up pdf6up
- X. May 4: TAs lead Midterm Review in Class as “Section 6” (slides in Section section below)
- X. May 6: Midterm
- 12. May 7,8,11: Subtypes and Subclasses pptx pdf1up pdf6up
- 13. May 11,13,15: Generics
slides used in course:pptx pdf1up pdf6up
slides correcting an error about lower-bounded generics: pptx pdf1up pdf6up - 14. May 15,18: Debugging pptx pdf1up pdf6up
- 15. May 18,20: Events, Listeners, and Callbacks pptx pdf1up pdf6up
- 16. May 20,22: Java Graphics and GUIs pptx pdf1up pdf6up
SimpleFrameMain.java SimpleLayoutMain.java SimplePaintMain.java Face.java FaceMain.java - 17. May 22,27: GUI Event-Driven Programming pptx pdf1up pdf6up
ButtonDemo1.java ButtonDemo2.java ballsim (7 files) - 18. May 27,29: Design Patterns, Part 1 pptx pdf1up pdf6up
- 19. Jun 1: Design Patterns, Part 2 pptx pdf1up pdf6up
- 20. Jun 3,5: Systems Integration pptx pdf1up pdf6up
- 21. Jun 5: Course Victory Lap pptx pdf1up pdf6up
Section
Section Materials
- 1. Apr 2: Code Reasoning + Version Control + Eclipse pptx pdf1up pdf6up
- 2. Apr 9: Homework 3 Setup pptx pdf1up pdf6up
- 3. Apr 16: Homework 4, ADTs, and more pptx pdf1up pdf6up
- 4. Apr 23: Homework 5, Graphs, and Testing pptx pdf1up pdf6up
- 5. Apr 30: Homework 6 and Interfaces pptx pdf1up pdf6up
- 6. Midterm Review (held in lecture slot/room on May 4) pptx pdf1up
- X. May 7: Section slots/rooms used to continue lecture material
- 7. May 14: Homework 7 and Dijkstra's Algorithm pptx pdf1up pdf6up
- 8. May 21: Model-View-Controller pptx pdf1up pdf6up
- 9. May 28: Design Patterns pptx pdf1up pdf6up
- 10. June 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” Thursday April 2
Late-Day Request Form (required to use late days)
- Homework 0, due Wednesday April 1, 10AM
- Homework 1, due Tuesday April 7, 11PM
- Homework 2, due Monday April 13, 11PM
- Homework 3, due Wednesday April 15, 11PM
- Homework 4, due Wednesday April 22, 11PM
- Homework 5, due Monday May 4, 11PM
- Homework 6, due Tuesday May 12, 11PM
- Homework 7, due Wednesday May 20, 11PM
- Homework 8, due Wednesday May 27, 11PM
- Homework 9, due Thursday June 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 April 10 8AM, Due April 17, 11PM
- Batch 2, Available April 17 8AM, Due April 24, 11PM
- Batch 3, Available April 24, Due May 1, 11PM
- Batch 4, Available May 13, Due May 21, 11PM
Exams
Midterm Exam: Wednesday May 6, 2015, in classunsolved solved
Covers material through Lecture 10, 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:
Winter 2015 unsolved solved
Fall 2014 unsolved solved
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: Monday June 8, 2015, 8:30AM-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:
Winter 2015 unsolved solved
Fall 2014 unsolved solved
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.