CSE 70, Spring 2010

Software Engineering


Important Dates and Deadlines

Monday, March 29:In class: introduction.
Wednesday, March 31:Finish reading What is Extreme Programming? by Ron Jeffries.
Friday, April 2:Finish reading Sections 1.1–1.3.3 of the Java Extreme Programming Cookbook.
Monday, April 5:Finish reading Sections 2.1–2.2 of the Java Extreme Programming Cookbook.
Wednesday, April 7:Finish reading Chapter 2 (Basic Usage) of the online book Version Control with Subversion.
Note: Don't worry about "Getting Data into your Repository" since we'll do that for you.
Friday, April 9:Finish reading Sections 2.3, 2.4, 2.6, and 3.13 of the Java Extreme Programming Cookbook.
Monday, April 12:Finish reading the section about testing on the first 6 pages of the course reader.
Wednesday, April 14:Finish reading the sections "Testing Patterns" and "Green Bar Patterns" on pages 7–14 of the course reader and Section 6.1 of the Java Extreme Programming Cookbook.
Friday, April 16:Finish reading pages 15–23 of the course reader (the sections "Testing Issues" and "Unit Testing" through the part about code reviews).
Monday, April 19:Finish reading pages 24–34 of the course reader (about proving code correct).
As you write unit tests, refer to the JUnit Documentation and the jMock 2 Cheat Sheet.
Monday, April 26:Finish reading the description and documentation comments sections of the javadoc reference guide.
Wednesday, April 28:Finish reading the section about the Object-Oriented Paradigm on pages 35–48 of the course reader.
Friday, April 30:Finish reading the section about the UML on pages 49–55 of the course reader.
See also access levels for Java class members. Note protected is less restrictive than the default!
Monday, May 3:Finish reading sections 1 through 2.2 of Introduction to Object-Orientation and the UML by Scott Ambler.
Wednesday, May 5:Finish reading the chapter "Principles in Refactoring" on pages 56–76 of the course reader.
Friday, May 7:Finish reading the chapter "Bad Smells in Code" on pages 77–90 of the course reader.
Monday, May 10:Review the refactoring example (which we began in class), including links to Martin Fowler's Refactoring site.
Wednesday, May 12:Finish reading the section "Patterns in Software Design" on pages 91–95 of the course reader.
Review the Strategy pattern referenced in the refactoring example, and the related State pattern.
Friday, May 14:Review the Command pattern and consider which aspects of it appeared in the project starter code.
Monday, May 17:Review the intent and purpose of the other design patterns discussed in class, without dwelling on implementation details.
Wednesday, May 19:Finish reading the section "Layered Architectures" on pages 99–101 of the course reader.
Friday, May 21:Finish reading the section "Other Architectural Styles" on pages 101–113 of the course reader.
Monday, May 24:Finish reading the section "Software Process Models" on pages 114–128 of the course reader.
Wednesday, May 26:Finish reading through section 5 (page 4) of The costs and benefits of pair programming by Alistair Cockburn and Laurie Williams.
Friday, May 28:Finish reading The costs and benefits of pair programming by Alistair Cockburn and Laurie Williams.
Monday, May 31:Holiday; no class.
Wednesday, June 2:Final version of project due in repository at 11:00.(See project checklist.)
Project demos from 14:00–17:00 in CSB 001. Plan and practice!
Friday, June 11:Take the final exam from 15:00–17:59 in CSB 001.

Course Material


Other Resources


Basics and Contact Information

Lecture: M/W/F, 14:00–14:50
Cognitive Science Building room 001
(mandatory) Lab: M/W 15:00–16:50 (after lecture)
EBU3B room B270 (and B260)
Instructor: Dana Dahlstrom (e-mail dana+70 at cs. ucsd. edu)
office hours: by appointment in EBU3B room 2106
Teaching Assistant: Holmes Futrell
Required Text: CSE 70 Course Reader
available after April 5 at A.S. Soft Reserves on campus
Grading: 32% in-class quizzes (lowest dropped); 40% class project; 28% final exam

La perfection est réalisée, pas quand il n'y a rien à davantage ajouter, mais quand il n'y a plus rien à emporter. —Antoine de Saint-Exupéry

Valid XHTML 1.0 Strict Valid CSS!