General

People

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:

Philip Blair

Jacob Brandt

Viviano Cantu

Ty Coghlan

Ceridwen (Ceri) Driskill

David Heyman

Scott Kapelewski

Tyler Kindy

Neil Locketz

William Meehan

Christian Munoz-Robayo

Eric Parker

Dorothy (DJ) Richardson

Brendan Ronan

Yuval Shatil

Charlie Unfricht

Logan Wells

Chenxi Yuan

Daniel 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.

Communications

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

You can also post questions and look for answers to similar questions
on Piazza. Here is a link
to the Piazza site for this course. Do not post answers to assignments
to Piazza.

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

General Policies

Late assignment policy: Late assignments will be accepted but will lose 20%
per day. Speak to the
professors in advance of a deadline if you cannot complete an assignment on time.

Laptop policy: No laptops in class.

Academic honesty: We will strictly enforce Northeastern’s
academic
integrity policy. You may discuss problems with other students,
but you should not share or show code to anyone other than your
assigned partner. Violations of academic integrity will be reported
to OSCCR and will have a negative impact on your grade.

Lectures

Honors: Monday and Wednesday at 2:50–4:25pmInternational Village 019

Section 1: Monday, Wednesday and Thursday at 10:30–11:35amInternational Village 019

Section 2: Monday, Wednesday and Thursday at 1:35–2:40pmInternational Village 019

Section 3: Monday, Wednesday and Thursday at 4:35–5:40pmInternational Village 019

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.

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.

In-lab Quizzes

We will be running quizzes during some 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. Failure to follow up
on a failed quiz may lead to grade zero on the related programming
homework.

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 Web-CAT to work on your homework sets, to
keep track of revisions, and to submit your homework.

Assignments

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, but there will be a formal review at least once 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: Wednesdays at 10:00pm, unless otherwise specified. We will
not accept 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.

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 discussants. 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 (pages 38—40
of the 2011-2012
Underaduate Student Handbook). Violations of academic integrity will
be reported to OSCCR and will have a negative
impact on your grade.

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

Midterm 2: Thursday, April 7, 6–9pm. Dodge Hall 050, Snell 168 and Behrakis 010. Lerner’s section will be in Dodge. Naji’s section and Razzaq’s morning section will be in Snell. Seif El-Nasr’s section and Razzaq’s afternoon section will be in Behrakis.

Projects

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.

Grades

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
exams. The remaining 5% are up to the instructors’ whim. The last two assignments include
suggestions for extra credit, which we will count towards offsetting a poor exam grade.