This course is an introduction to the art and science of
computer programming and related computer science
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
This course requires no previous background in programming, only
dedication and hard work.
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.
Monday, Wednesday, and Thursday
11:00am - 11:50am
Location: Abelson 131 (Physics).
Building Java Programs - A Back to Basics Approach (2nd
Edition) by Stuart Reges and Marty Stepp, Addison
Lecture notes and sample programs will be posted on the
There will be no midterms or finals. The final grades for the course will be determined using the
- Homework: 40%
- Four (4) Quizzes: 50%
- Participation: 10%
Participation means taking part in the class discussions and
doing the 3 pop quizzes.
For each programming assignment, you must make an
appointment with your TA for an interactive 15 minute grading
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.
Each student begins the semester with 5 free "late days":
- 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.
- 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.
- Regardless of how many late days you have, you may not submit a program more than 3 days after it is due.
- Students will not be given extensions on homework assignments unless they suffer extenuating circumstances
or emergency as decided by the instructor.
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
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:
- You may not work as a partner with another student on an assignment.
- You may not get code from online sources.
- You may not show another student your solution to an assignment, nor look at his/her solution,
for any reason.
- You may not have another person "walk you through" an assignment, describe in detail how to solve it,
or sit with you as you write it. You also may not provide such help to another student. This includes
current or former students, tutors, friends, TAs, web site forums, or anyone else.
- You may not post your homework solution code online or ask others for online help. This includes
public message boards,forums, file sharing sites and services, or any other online system.
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.