Course description

This course is an introduction to the art and science of computer programming and related computer science principles. Through programming students will develop fundamental skills such as abstract reasoning and problem solving. Students will master programming techniques using the Java programming language, and will develop good program design methodology resulting in correct, robust, and maintainable programs.


This course requires no previous background in programming, only dedication and hard work.

Course instructor

Antonella Di Lillo (dilant [at] cs dot brandeis dot edu)
Office: 124 Volen Center for Complex Systems
Office hours: Monday and Thursday 2:30pm-5:00pm, or by appointment.

Class meetings

Monday, Wednesday, and Thursday
Session 2 11:00am - 11:50am
Session 1 1:00pm-1:50pm
Location: Abelson 131 (Physics).


Building Java Programs - A Back to Basics Approach (2nd Edition) by Stuart Reges and Marty Stepp, Addison Wesley.

Lecture notes and sample programs will be posted on the class website.


There will be no midterms or finals. The final grades for the course will be determined using the following weights: Participation means taking part in the class discussions and doing the 3 pop quizzes.

NOTE: For each programming assignment, you must make an appointment with your TA for an interactive 15 minute grading session.
Each meeting will constitute 5% of the programming assignment.


Homework consists of weekly programming assignments done individually.
Programs will be graded on "external correctness" (behavior), "internal correctness" (style and design), and one-on-one interactive grading sessions. Disputes about homework grading must be made within 2 weeks of receiving the grade.

Late Policy

Each student begins the semester with 5 free "late days":
  1. A late day allows you to submit a program up to 24 hours late without penalty. For example, you could use 2 late days and submit a program due Monday 9pm on Wednesday by 9pm with no penalty.
  2. Once a student has used up all the late days, each successive day that an assignment is late will result in a loss of 5% points on that assignment if submission is 1 day after the deadline and 10% points for every additional day.
  3. Regardless of how many late days you have, you may not submit a program more than 3 days after it is due.
  4. Students will not be given extensions on homework assignments unless they suffer extenuating circumstances or emergency as decided by the instructor.

Academic Honesty

As stated in the Rights and Responsibilities handbook, "Every member of the University community is expected to maintain the highest standards of academic honesty. A student shall not receive credit for work that is not the product of the student's own effort."

Programming assignments must be completed individually (unless specified otherwise by the instructor); all code you submit must be your own work. You may discuss general ideas of how to approach an assignment, but never specific details about the code to write. Any help you receive from or provide to classmates should be limited and should never involve details of how to code a solution.
As a student of this course you are agreeing to the following rules: Under our policy, a student who gives inappropriate help is equally guilty with one who receives it. Instead of providing such help to someone who does not understand an assignment, point them to other class resources such as lecture examples, the textbook, or emailing a TA or instructor. You must not share your solution and ideas with others. You must also ensure that your work is not copied by others, such as making sure to log out of shared computers, not leaving printouts of your code in public places, and not emailing your code to other students or posting it on the web. We enforce this policy by running similarity detection software over all submitted student programs.