CS 3: Introduction to Software Engineering
Instructor: Joe Vanderwaart
Text: Barabara Liskov with John Guttag. Program Development in Java: Abstraction, Specification and Object-Oriented Design. Addison-Wesley, 2001. ISBN 0-201-65768-6.
Announcements
-
Fri 9 May Monday's lecture is canceled, with apologies for the short notice.
- Thu 8 May Final project proposals are due Monday, May 12. See the slides from Lecture 12 for a description of what the proposal should contain.
- Thu 24 Apr Problem Set 3 is out, due in one week. Also, it is time to form groups of two to four persons for the Final Project. If your group includes both seniors and non-seniors, let me know ASAP so we can decide who will do your in-class presentation and when. I will not allow anyone to drop the course once project groups are formed.
- Mon 14 Apr A few clarifications on the rational number
exercise in Problem Set 2:
- It is okay if your Rational class uses int or
long for numerators and denominators of fractions, even
though this means not every rational number is representable. You are
free to decide for yourself what your methods should do and what your
specifications should say when the result of an operation is not
representable. However, if the result is representable, your
method should succeed in coming up with a representation for it.
- As a consequence of the above, you will sometimes have to "reduce"
fractions. It is up to you to decide when to do this,
but make sure that your documented representation invariant is
consistent with your decision and justifies your implementations of
all methods including equals.
- Wed 9 Apr
- Office hours are canceled for tomorrow, Thursday, April 10.
- Problem Set 2 is available, due in one week.
- Wed 2 Apr Welcome! Problem Set 1 is already available.
Scroll down for the late work policy.
Schedule, Lectures & Readings
| Week |
Monday | Wednesday |
| 31 Mar |
1. What is this about?
[pdf]
Chapters 1-2
|
2. Procedural Abstraction
[pdf]
Chapter 3
Sample code: [Procedures.tgz]
|
| 7 Apr |
3. Exceptions [pdf]
Chapter 4
Also see "Programming with Assertions", below.
|
4. Data Abstraction
[pdf]
Chapter 5
|
| 14 Apr |
5. Iteration Abstraction
[pdf]
Chapter 6
|
6.
[pdf]
|
| 21 Apr |
7.
[pdf]
|
8.
[pdf]
|
| 28 Apr |
9.
[pdf]
|
10.
[pdf]
|
| 5 May |
11.
[pdf]
|
12.
[pdf]
|
| 12 May |
13.
|
14.
|
| 19 May |
15.
|
16.
|
| 26 May | 17 | 18 |
| 2 Jun |
19 |
20. Group Project Presentations |
Links
Javadoc
Assignments
- Problem Set 1: assigned 2 April, due 10 April at 4:00 a.m.
[pdf]
- Problem Set 2: due 17 April at 4:00 a.m.
[pdf]
- Problem Set 3 (including Midterm Project Part 1): due 1 May at 4 a.m.
[pdf][Graphs.tgz]
Additional Readings
Late Work Policy
- No work will be accepted once it is more than one week late.
- Homework problems are normally graded on a scale of 0 to 3.
Anything turned in late (without an extension arranged in advance)
shall have one point subtracted from every problem that scored at
least 1.
- Only the last version of any work turned in shall be counted for
grading, even if late penalties applied to this version result in
its having a lower score than an earlier version submitted on time.