|Office||Parmly Hall 406|
M/W/F 12:15-1:15 Parmly 307
M/T/W/F 10:30-11:30, or by appointment
This course introduces the concepts, tools, and techniques used in software development. Topics include
Classroom work will consist of lecture and discussion. Written work will consist of several team-based programming projects, homework exercises that employ tools used in software development, and a comprehensive final exam.
After taking this course, you should be able to
The book listed below are required. All are available to W&L students via Safari Books. We will have additional readings from journal articles and books on reserve in the Science Library.
Horstmann Core Java for the Impatient, 1st Edition Safari Books Horstmann Core Java Volume I — Fundamentals,10th Edition Safari Books Bell and Beer Introducing GitHub: A Non-Technical Guide, 2nd edition Safari Books Beck JUnit Pocket Guide: Quick Look-up and Advice Safari Books Burnette Eclipse IDE Pocket Guide: Using the Full-Featured IDE Safari Books
The written work for the course will consist of
The hourly exams and the final exam should be written individually and pledged.
Although you may discuss programming problems among yourselves, your programs should be your own work, unless otherwise specified (as when you do pair or team programming). You MAY use code from the PowerPoint slides or from the textbook for the course. Otherwise, you may NOT use the work of your classmates, former students, friends, or anyone else in writing your programs. By "use" I mean turning in the work of others as your own, or even casting your eyes upon the work of others with a view to incorporating their solutions into your own. Deliberate concealment of sources constitutes plagiarism and will result in a failing grade for the course and a report to the EC. Deliberately providing solutions to other students, either verbally or in writing, via hardcopy or electronic transmission, will result in a failing grade for the course and a report to the EC. In particular, you may not share your work until the deadline to hand in material has passed. Please familiarize yourself with W&L’s policy on plagiarism.
The final exam for this course will be given during the final exam week. You can take this exam during any of the regularly scheduled exam periods that week. You must supply an exam envelope to the instructor or the department administrative assistant no later than noon on the last day of class. You must specify a provisional day and time on the envelope, which you are free to change on the clipboard provided outside the door of Parmly 407 any time that week. Email or phone requests to reschedule will not be accepted.
The exam will be given in Parmly 405, and you should arrive promptly before the appointed time. If you are more than 15 minutes late, you will have to reschedule your exam. If you are more than 15 minutes late to the last exam period on Friday afternoon, you will receive a grade of 0 on your exam.
Students who have approved academic accommodations must make arrangements to use those accommodations directly with the instructor no later than the last day of class. Students approved for extra time will receive that time at the tail end of the morning exam period or before the beginning of the afternoon exam period (for example, ending at 1:30 PM for a morning exam or beginning at 12:30 PM for an afternoon exam). Students approved for a low-distraction testing location should reserve that space during the last week of classes (following instructions distributed by Director of Disability Resources Lauren Kozak.
Washington and Lee University makes reasonable academic accommodations for qualified students with disabilities. All undergraduate accommodations must be approved through the Title IX Coordinator and Director of Disability Resources, Elrod Commons 212, (540) 458-4055. 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.
Basic Java syntax and semantics
|Sept 9||I/O and numbers||
Primitive and reference types
Equality and comparisons
Strings and arrays
Classes and methods
Preconditions, postconditions, exceptions, and javadoc
GUIs with BreezySwing
Collections and interfaces
|Sept 23||File processing||Inheritance and composition||Abstract classes |
GUIs with Swing and AWT
Numeric I/O and handing errors with dialogs
Loading images from files
On to Eclipse!
|No lecture: Reading Day|
|Oct 14||Design patterns: iterator, composite, and decorator||
The strategy pattern: comparisons and layouts
The strategy pattern: map, filter, and reduce
The adapter pattern
|Specializing by subclassing||
The proxy pattern
|The singleton pattern I||The singleton pattern II|
|Nov 4||The singleton pattern II||
Refactoring and extreme programming
|Refactoring and extreme programming||Paul Graham essays|
|Nov 18||Paul Graham essays||Working with jar files||
|Dec 2||Project presentations||
1-I/O and Numbers
2-Equality, Comparisons, Types, Strings, and Arrays
3-Java Classes and Methods
4-Error Handling, Exceptions, and Documentation
6-Easy GUIs with BreezySwing
7-Collections and Interfaces
9-Inheritance and Composition
12-GUIs, Model View Controller, and Layouts
13-Graphics and GUIs
14-Numeric Input, Error Handling, and Standard Popup Dialogs
Getting Started with Eclipse
Getting Started with GitHub
15-Displaying Images from Files
17-Design Patterns: Iterator, Composite, and Decorator
18-The Strategy Pattern: Comparisons and Layouts
19-The Strategy Pattern: Map, Filter, and Reduce
20-The Strategy Pattern: Streams, HOFs, and Lambdas
21-The Adapter Pattern
22-The Proxy Pattern
23-The Singleton Pattern: Introduction
24-The Singleton Pattern and Recursive Data
27-Working with Jar Files
Java for Python Programmers
Java at Oracle's Web Site
Paul Graham's Web Site
Working With jar Files
Further Readings in Software Development
Eclipse Web Site
ArgoUML - A Free UML Authoring Tool
JUnit Web Site
Hillside's Patterns Page
PageTutor's ColorPicker 3