CSSE 514 Programming Methods
Instructor: Rob Jasper
Office: ENGR
413A,
Office Hours: Tuesday and Thursday, before class, and by appointment
Phone: W:
425-455-7601 x234 SU FAX: 296-2179
Web: http://fac-staff.seattleu.edu/jasperr
Email: jasperr@seattleu.edu
Class Hours:
Objectives:
To
provide students with new skills for designing, programming, testing, and
reasoning about programs, with a focus on creating programs correct, robust,
efficient, and maintainable. I’ve made several significant changes to the
format of this course from prior years. My basic objectives are to:
Grading Criteria: 20% Homework
20% Midterm Exam (currently in class)
40% Term Project
20% Final Exam (take home)
Steve McConnell, Code
Complete, Microsoft Press, 1993 (BookPool, Amazon)
Lectures, homework, and tests are in both PowerPoint (ppt), Microsoft Word, or Adobe Acrobat (pdf) format. Appropriate views for most platforms are available at the Microsoft and Adobe sites. Lectures will be posted no later than the Monday morning before each week’s lectures. Future lectures may be posted, but are subject to change without notice prior to Monday of the week of the lecture.
I’ll post additional slides that didn’t make it into the
lectures here.
From time to time, I’ll post updates to assignments or
answers to general questions in this location. You should make a habit of
checking occasionally, especially if you have a question.
Wednesday, May 21, 2003 – Updated project.jar
to include PerformanceTest. This runs pretty much like TokenizationTest except
that you don’t need to pass in a text
file containing tests. As an example:
java -cp project.jar;yourfile.jar
edu.seattleu.se514.testHarnesses.PeformanceTest
edu.seattleu.se514.yourImplementation.YourTokenizerName
|
Session
|
Date |
Due |
To
Be Discussed |
Assignment |
|
4/1 |
|
Introduction, Object-oriented
Design |
Text
7 |
|
|
4/3 |
|
Intro
to Detailed Design, Program
Design Languages (PDL) |
HW1,
Text 4 |
|
|
4/8 |
|
Design
from State-Transition Models |
||
|
4/10 |
Project
Discussion (Java, Interfaces, Issues, Approaches) |
|||
|
4/15 |
|
Proofs
of Correctness* |
||
|
4/17 |
|
More
Proofs of Correctness* |
||
|
4/22 |
Project teams |
Data
Structured Programming |
Mills86,
Ben84c |
|
|
|
4/24 |
|
Data
Structured Programming, extended |
|
|
4/29 |
Semantics
Preserving Transforms (SPT)—Data Structures |
HW3,
Text 28-29 |
||
|
5/1 |
|
SPT—Loops
/ Logic |
||
|
5/6 |
|
SPT—Procedures |
||
|
5/8 |
System
Dependent Efficiencies |
|||
|
5/13 |
|
High
Quality Routines, Modularity |
Text
5,6 |
|
|
5/15 |
|
Programming
Style |
Text–9,18-19 |
|
|
5/20 |
Unit
Testing |
Text
25 |
||
|
5/22 |
Proj-1 |
Unit
Testing (part 2) |
||
|
5/27 |
|
Walkthroughs
and Inspections** |
Text
24, Final Exam |
|
|
5/29 |
Proj-2 |
Debugging |
Text
26 |
|
|
6/3 |
|
Programming
Paradigms: Prolog |
|
|
|
19 |
6/5 |
Final Exam |
|
Homework & Grading:
Homework
is very important to this class, and students are expected to do their own work
with only very general help or advice from other students. Homework assignments
are due at the start of class on the day specified. You will normally have at least
one weekend to work on an assignment. Unless arrangements have been made before
the scheduled due date, late homework will not be accepted. If you are on a
business trip, homework may be sent by fax or mail.
Seattle
University has a grading scale of A, A-, B+, B, B-, C+, C, C-, D+, D, D-, E and
does not allow the awarding of A+ grades. As a department we are very reluctant
to give a grade of incomplete unless there is a major personal problem. Graduate students must maintain an average
of B (not B-) or better. Courses graded lower than C- must be repeated. Check
the Graduate School Bulletin for details.
Additional References:
Links
Java
Java Development Environments
http://www.intellij.com/idea/
http://jdee.sunsite.dk/
Design by Contract
http://www.eiffel.com/doc/manuals/technology/contract/page.html
Program Optimization (Java)
http://java.oreilly.com/news/jptsummary_1100.html
Unit Testing (Java JUnit)
http://www.junit.org/
http://www.clarkware.com/articles/JUnitPrimer.html