On this page:
Office Hours
General Policies
Computing Environment
Pair Programming
Academic Integrity




Ben Lerner

Nada Naji

Leena Razzaq

Clark Freifeld

Becca MacKenzie

Instructors design and implement this class, lead lectures, create the labs, assignments, and exams. The instructors are here to teach from life.

TAs and Tutors:

Tyler Kindy

Samuel Siegmeister

Dorothy (DJ) Richardson

Yuval Shatil

Jimmy Ly

Tushar Gupta

Chev Eldrid

Christopher Juchem

Cara McCormack

Sam Pinheiro

Anh Tran

Nathaniel Shepard

Jack Friedson

Philip Lin

Christian Munoz-Robayo

Mohib Azam

Arvin Sharma

Kashish Jagga

Yifan Xing

Michael Yessaillian

Max Rona

Brian Yeung

Kathryn Stavish

Manas Purohit

Christopher Brown

Logan Wells

Dan Hennessy

Your TAs and tutors help run the labs, grade of homework sets, help grade the exams, and hold office hours. In general, they are apprentice teachers and are here to learn how to run a course. At the same time, though, they are your peers who have taken the course, and can see your problems from your perspective.


If you need help, you may talk to any of the instructors, the TAs or tutors during their office hours.

Use NEU email (@husky.neu.edu) to reach any of the course staff; usernames are given above. Use @ccs.neu.edu to reach instructors.

Office Hours

General Policies


Section 1: Monday, Wednesday and Thursday at 9:15–10:20am
        Knowles Center 010

Section 2: Monday, Wednesday and Thursday at 10:30–11:35am
        Robinson Hall 019

Accelerated: Monday and Thursday at 11:45am–1:25pm
        Behrakis 310

Section 4: Monday, Wednesday and Thursday at 1:35–2:40pm
        Knowles Center 010

Section 5: Monday, Wednesday and Thursday at 4:35–5:40pm
        Knowles Center 010

Section 6: Monday, Wednesday and Thursday at 4:35–5:40pm
        Shillman Hall 305

Lectures policy:

You are required to read the lecture material for the given lecture before coming to class. During the lectures we will discuss the material covered in the required reading, answer questions, provide additional examples and applications.

It is OK if you do not understand everything when you first read it, but reading about the new concept ahead of the time will give you a chance to anticipate the questions you may have and allow you to follow better the details of explanation during the lectures.


Labs are held in 210 WVH on

  • Mondays at 6–7:40pm (Accelerated)
         TAs: Tyler Kindy

  • Tuesdays at 9:50–11:30am
         TAs: Michael Yessaillian, Samuel Siegmeister

  • Tuesdays at 11:45am–1:25pm
         TAs: Logan Wells

  • Tuesdays at 1:35–3:15pm
         TAs: Yuvi Shatil, Christian Munoz-Robayo

  • Tuesdays at 3:25–5:05pm
         TAs: Christian Munoz-Robayo, Yuvi Shatil

Labs policy

The goal of the labs is to see in practice problems that illustrate the concepts covered in the lectures, and to prepare you for the next programming assignment.

There is a lot of technical detail related to running Java programs that will be covered in the early labs. Later labs will focus more on design questions and on good Java programming practice.

We will ask you to submit some of the lab problems at the end of each lab.

In-lab Quizzes

We will be running quizzes during most of the labs, possibly without prior warning. The goal of the quizzes is to see that you are familiar with the most basic concepts covered during the recent lectures, labs, and assignments.

Quizzes will be graded, and are counted as part of your exam scores (see Exams below). The intent is to assess your progress in the course in smaller chunks rather than just through lengthy midterm exams.

If you do not pass the quiz, you need to meet with the instructor within the next week, to identify the problems you may have and to help you get back on track.

Computing Environment

You will complete your assignments (other than the first one) using the Eclipse IDE. Though, if you feel more comfortable, you may choose to use another IDE (e.g. NetBeans) or work directly from the command line, but you and your partner must both be comfortable with the chosen programming environment, and the staff may not be able to assist you with issues encountered in other environments.

You will use Bottlenose to work on your homework sets, to keep track of revisions, and to submit your homework.


There will be one problem set each week, comprised of two parts: practice problems and pair-programming problems.

The practice problems will be a series of practice problems that every student must be able to solve. You should work out these problems on your own, and keep your solutions as an electronic portfolio. You may ask the instructor to give an informal review your portfolio at any time during the semester.

In the pair-programming problems you and your partner will apply the concepts from lectures and labs. The problems will consist of structured programming assignments that may be based on the work done in previous weeks, and may also include more creative projects where you can practice your design skills.

Due Date: Thursdays at 9:00pm, unless otherwise specified. There is a penalty for late homework.

Pair Programming

You must work on your problem sets in pairs. We will assign you a partner. Every few weeks, you will get a new partner.

Important Pair programming means that you and your partner work on the problem sets jointly. You read them together and you work on the solutions together. One of the lab’s purposes is to teach you how to work in pairs effectively; indeed, pairs are provably more effective than individuals in programming. The rough idea is this: One of you plays pilot, the other co-pilot. The pilot works on the keyboard and explains aloud what is going on; it is the co-pilot’s responsibility to question everything. After a problem is solved to the satisfaction of both, you must switch roles.

Every partner must be able to solve every homework problem in the end. In other words, you must be able to solve every homework problem on your own.

If you are having difficulties working with your partner, please inform your lab TA or your instructor.

Academic Integrity

All programs must be completed strictly by you and your partner. You are free to discuss the problem sets with others, so long as you acknowledge whoever you discussed the problem with. However, you may not share code in any way. Submitting code that is not your own will be considered a violation of the University’s Academic Integrity Policy (page 40 of the 2016-2017 Underaduate Student Handbook). Violations of academic integrity will be reported to OSCCR and will have a negative impact on your grade.

Be aware that while submitting someone else’s code is clearly a violation, so is sharing your code with others, even if you truly just mean to help. Outside an academic environment, sharing code with unauthorized parties can be a criminal offense and have severe and unanticipated consequences.

If you are ever unsure of whether sharing is unacceptable or not, ask one of the course staff.


You may bring one sheet of notes to exams (may be typed or hand-written, one-sided or double-sided).


There will be two substantial class projects implemented over the last several weeks of the course. You will present your project to the class during the last two weeks of the course. You will also be required to comment on the projects presented by your peers.


You will get a GPA for your homework (including the project) and for your exams and quizzes. You must have both a passing homework GPA and a passing overall GPA to pass the course. For the final grade, we will assign a weight of 40% to the homeworks and the project grade and a weight of 55% to the exams and quizzes. The remaining 5% are assigned to lab work and class participation. The last two assignments include suggestions for extra credit, which we will count towards offsetting a poor exam grade.