CSS305 - Programming Practicum

Syllabus

Fall, 2003

Syllabus Index

General Information

Professor: George Mobus Phone: 692-5894
email: gmobus@u.washington.edu
Office: Pinkerton 217
Hours: MW - 10:00 to 12:00, or by appoint.
Class: Time: TTh - 10:30 - 12:45 pm 
Location: BB 107
Textbook: There is no required textbook. Several reference guides will be given in class.  

What to expect from the course

This is a practicum in computer programming. You will be doing a large software project in order to increase your facility with designing programs using the Java language. You will be expected to design, code, debug and test a sequence of incremental developments of this large program. By doing the development in manageable increments you will be able to build a substantial project on your own. The purpose of this approach is to provide you with a perspective of " programming-in-the-large". Once you have such a perspective you will be in a much better position to participate in a team-based development project, understanding the "big picture".

Learning Objectives

The objectives in this course are to strengthen your prior learning of Java and to explore new areas of Java, particularly the Swing components. The overall objective is to become sufficiently proficient in programming that this skill (or lack thereof) will not be a hurdle for you in more advanced coursework. Profifciency in programming skill will help ensure that you will be able to focus your learning on the more mathematical aspects of programming in courses like 342 and 343. And you will be prepared to tackle large projects such as are required in 372.

Ground Rules

The following course policies will be observed.

Grades

Grades will be based on performance in designing and building a fairly large software project. Grading components will include design documentation, code and workability of the program. Some portion of the grade (up to 15%) will be based on participation during class time to discuss coding methods.

The project will be done individually (no groups) so as to maximize your individual experience in all aspects of design, construction and testing. Each assignment will be graded. Late submissions will not be an option since we will be releasing source code for each assignment within one week of the due date for the assignment. Therefore, late submissions will not be accepted and result in a zero for that assignment.

Cheating

Unless otherwise indicated, assignments are to be completed on an individual basis. Cheating is any act of turning in work that is not your own, but representing it as your own. This includes documentation and program code. I also consider any act of providing others with your work so that they can copy it as an act of cheating. Any act of cheating will result in an automatic failing grade on the assignment. Any subsequent acts of cheating may result in a failing grade for the course.

You should feel comfortable discussing topics, including general approaches to assignments, in a collaborative atmosphere. Discussing concepts and methods to be applied to problems is often a tremendous aid to studying. But when it is time to sit down and write down answers or program code you should work on your own.

Course Mechanics

Program

The program will be built incrementally and each stage of development (assignment) will be subject to evaluation with feedback. This will allow you to make mid-course corrections as needed to assure a successful completion of the program.

Each assignment will be submitted on a labelled floppy disk (no email submissions will be accepted). You should include source code (.java) and executable files (.class). Please do not expect me to compile your programs. Feedback and grades will be put into the source code file and the disk returned. Since several assignments will be due in a short time frame, it will be necessary to maintain at least two disks for submissions. Each submission should be in a subdirectory with the name "assign-x", where x = the assignment number.

Lectures

There will not be a lecture as such. This course is a practicum, so emphasis is placed on program design and coding/debugging methods. Lecture time will be used to critique code submissions (code walkthroughs) and review "idealized" source code. This is a time for discussion of techniques and methods, to get feedback and basically evaluate progress. Participation in this discussion time will be monitored and used as part of the grade for this course.

Support for students with disabilities

If you would like to request academic accommodations due to a permanent or temporary physical, sensory, psychological/emotional or learning disability, please contact Lisa Tice, Coordinator for Disability Support Services (DSS). An appointment can be made through the front desk of Student Affairs (692-4400), by phoning Lisa directly at 692-4493 (voice), 692-4413 (TTY), or by e-mail (ltice@u.washington.edu). Appropriate accommodations are arranged after you've presented the required documentation of your disability to DSS, and you've conferred with the DSS Coordinator.

CSS Mentors

The CSS mentors staff the labs throughout the week. They can provide help with specific questions about specific classes. Please note, however, that they will not do your homework for you. Instead, they will help you when you get stuck (either in programming or in homework) and help you develop the reasoning skills you need to solve future problems. See the Mentors Web Site.