Skip to main content.

Course Overview

Welcome to CSCI 209: Software Development!

"If you don't think carefully, you might think that programming is just typing statements in a programming language."
- Ward Cunningham

Catalog Description: An examination of the theories and design techniques used in software development. Topics include the software life cycle, design patterns, the Unified Modeling Language, unit testing, refactoring, rapid prototyping, and program documentation.

In this course, you will learn and use tools and techniques that are commonly used for the development of large software systems. Topics covered include

Classroom work will consist of lecture, discussion, and lab experimentation. You will be evaluated primarily on programming assignments, programming projects, written assignments, and exams.

After taking this course, you should be able to

Instructional Staff

Sara Sprenkle
Office: Parmly Hall 410
Office Hours: WF (and most Mondays) 3:30-5 p.m. and by appointment (first Monday of month, I have a faculty meeting at 4 p.m.)
E-mail Address:
Phone Number: (540) 458-8309 (it is better to email me than to call)

Course Information

Section 01: MWF 11:15a.m.-12:10p.m.
Section 02: MWF 2:30 p.m.-3:25 p.m.


There is no required book for this course. We will use many online resources.

If you want a Java reference book, you can try one of these:

Other good books, on Safari:

Course Policies

Student Responsibilities

Instructor Responsibilities
I will try to make this course and its material as exciting for you as it is for me. I will be respectful of student questions and misunderstandings. I will give prompt, constructive feedback on assignments. I will be available during office hours and by appointment. I will do my best to respond to questions via email within 24 hours.

Honor System
Unless otherwise specified, you may discuss individual programming assignments informally with other students. However, sharing a solution, in the form of the design or implementation of a program or in experimental results, is an honor violation. Students should know where to draw the line between getting legitimate outside assistance with course material and outright cheating. Students who obtain too much assistance without learning the material ultimately cheat themselves the most. If you have any uncertainty about what this means, consult with me before you collaborate.
All written assignments, unless otherwise specified, should be done individually.
You should not look at solutions from students who took this class previously, nor should you share your solutions with any future students of this course.

Participation and attendance
To receive full credit for class participation and attendance, you must have less than three unexcused absences from class and you must be actively engaged in the classroom by answering and asking questions each class when appropriate and by being respectful of other students. The average grade for participation is a B-.

The schedule, including important dates, is posted at the beginning of the semester. You should plan accordingly. If there are acceptable conflicts, tell me at the beginning of the semester and then remind me about a week in advance. This is especially important for exams. If you miss the exam period, you will receive a 0 for the exam.

General grading policies
Programs turned in with syntax (i.e., compiler) errors will receive no credit. "Roll back" your program (later in the semester, using version control management software) into a state where it does not have compiler errors.

In general, correctness is no longer sufficient for a good grade. Your program must be efficient, elegant, well-commented, and easy to read. You must also demonstrate that it is well-tested.

Late policy
All assigned work is due on the date specified. Any assignment turned in after the due date/time but on the same day will be penalized 10%. Any assignment turned in after the day on which it is due will be penalized an additional 10% for each late day. No assignment will be accepted that is more than three school days late. If you turn an assignment in late, you must indicate this somehow (in comments, on paper, etc.).

Academic Accommodations
Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Office of the Dean of the College. Students requesting accommodations for this course should present an official accommodation letter within the first two weeks of the term and schedule a meeting outside of class time to discuss accommodations. It is the student's responsibility to present this paperwork in a timely fashion and to follow up about accommodation arrangements. Accommodations for test-taking must be arranged with the professor at least a week before the date of the test or exam, including finals.


Grades for the course will be computed as follows:

Portions of this class have been drawn from/inspired by courses by Robert Duvall, Jeffrey Six, Aaron Cass, and Laurie Williams.