Instructor: Sara Sprenkle
Office: 102 Smith Hall
Office Hours: TR 3:30-4:30 p.m. and by appointment
Email: sprenkle at

TA: Ke Li
Office: Smith 211
Office Hours: TR 11:30 a.m. - 12:30 p.m.
Email: kli at

Meeting Times: TR 5:00 - 7:00 p.m. (Smith 221)

Course Web Page:

Course Manager:
   to view your grades and schedule project demos

Project Number: 2182


By the end of this course, students should be able to implement data structures and algorithms discussed in previous courses using Java, develop Graphical User Interfaces, and leverage the rich Application Programming Interface (API) of Java to simplify software development. Roughly half of the course is devoted to the first two objectives above and fundamentals of Java. The second half of the course introduces students to the more advanced built-in features of the Java API, such as XML, networking, and web application functionality.

Optional Textbooks


Your grade will be computed as follows:

  Percent of grade
Final 25
Programming Assignments 35
Weekly Quizzes 10
2 Projects 25
Participation 5
Total 100


Submitted work must be handed in to the instructor at the beginning of class and emailed to the TA no later than 11:59:59 on the due date. Assignments that are late are assessed a 10% per day late penalty; after seven days they will not be accepted. No special provisions for the weekend. This policy is necessary because late assignments are burdensome for the TA in terms of separate handling and grading time. Lateness is based on the written copy of the homework. Grading will be based primarily on the written copy.

See the web site for more information about submission standards for assignments and coding style.

If you have a disability that requires special accommodation, please contact me by email (sprenkle at during the first week of class.


Students must attend ALL lectures. I may make announcements in class that I do not post on the website. I will put lecture slides on the web, but these are not a substitute for class notes. Many classes will have limited lecture slides because we will be coding. It is your responsibility to get the notes from any lecture you miss from another student (not your instructor and not your TA). Lecture material is critical for projects and exams and useful everywhere else.

I base your participation grade on your participation in lecture. If you show up to every lecture and sit quietly and attentively, you can expect to get ONE out of five possible points. To get five points, politely ask and answer at least one question in every class. If you are unable to do this because of extreme shyness, see me during office hours in the first two weeks of the semester.

Weekly quizzes: At the beginning of every Tuesday lecture, we will have a 10-minute quiz on the last week's material. Review your notes and understand the assignments, and you should have no trouble with the quizzes.


You will have two substantial coding projects in this class. We will evaluate your project based on the scripted copy of your project as well as a demo. You must do one of your demos with the TA and one with the instructor. During the demo, we will ask questions about why you designed your code as you did and provide suggestions for improving your code organization, style, and efficiency.

A Note About Programming Conventions

Every organization that writes code (and does it well) subscribes to a set of conventions for naming variables, commenting, formatting, etc.

Our class has a style guide posted on the class website. You must adhere to the specifications of the style sheet to receive full credit for an assignment.

"What happens if we don't do this?"
Horrible things happen. A program that works perfectly but does not have the features described in the style sheet cannot receive a grade higher than 60%, even assuming it is flawless in every other way.

Your Right to See and Question Your Grades

Students have a right to receive their graded assignments in a timely fashion. That said, remember that your TAs are students too and have other deadlines. The instructor and TA will endeavor to get all assignments back to students within ten days of the submission date. If this date is not met, please bring it to the attention of the instructor.

All students have the right to know how their grades are calculated, and if any student believes a mistake has been made, it is up to the student to contact the grader to discuss it within ONE WEEK of the return of the assignment. Contact the TA first for homework and projects. If you are not satisfied after discussing the grade with the TA, then you may bring it to the instructor. Bring exams directly to the instructor.

The grade percentages are on this syllabus. Please use them to calculate estimates of your semester grade. This class typically has little or no curve.

Academic Honesty

I expect you to observe the highest ethical standards, avoiding even the perception of ethical compromise.  You are expected to do your own work unless explicitly instructed otherwise.  This includes homework assignments, programming projects, quizzes, and examinations. All violations of academic honesty will be handled according to University policy.

In addition, copying another person's work without proper acknowledgment is plagiarism, a serious offense, and the one most common to computer science courses. (This includes snippets of code that you get from the Web.) Anyone that aids another student with work that is expected to be done without collaboration is as guilty as the person who seeks help. Both will be prosecuted. It is strongly recommended that you familiarize yourself with the University's Policy of Academic Dishonesty found in The Official Student Handbook.

Any student who in any way facilitates another student's access to classwork is cheating, whether the classwork is written, electronic, verbal, or any other form.

Furthermore, there have been rare instances of people claiming that their work was stolen. In these cases it is very hard to determine if the person gave their work to someone else, or if it was taken without their permission. If there is any doubt, I will always assume that the work was deliberately shared. It is thus your responsibility to safeguard your papers, your passwords, your computers, and any other means by which your work can be copied.

Sections of this syllabus and site were borrowed from Terry Harvey and Jeffrey Six.