CS 5001 Syllabus
CS 5001 Syllabus
Schedule
● Lecture: M 6:00-9:00pm. Shillman 335
● Recitation: R 6:00-9:00pm. WVH 212.
You MUST sign up for the recitation section, CS5003. We will meet every Thursday to get some
hands-on practice with recent lecture material. Some recitation times will also be used for Align seminars.
Also by appointment. Don’t hesitate to email me if you’d like to meet at another time.
Office hours are scheduled throughout the week. Below is the current schedule, but we’ll be adding more
when we get closer to the start of the semester. We’ll update the course website with specific hours and
locations as soon as we have them finalized.
Mon Tue Wed Thu Fri Sat Sun
1
Required Textbook
● Think Python: How to Think Like a Computer Scientist. Allen B. Downey. O’Reilly Media,
2015. ISBN: 1491939362. Available for download or purchase.
Course Description
Introduces the fundamental ideas of computing and programming principles. Discusses a systematic
approach to word problems, including analytic reading, synthesis, goal setting, planning, plan execution,
and testing. Presents several models of computing, beginning with functional program design. The latter
part of the course consists of two parts: a task organization (ranging from the description of data to the
creation of a test suite) and a data-oriented approach to the organization of programs (ranging from
atomic data to self-referential data definitions and functions as data). Offers students an opportunity to
practice pair programming and public code review techniques, as found in industry today. No prior
programming experience is assumed; therefore, suitable for students with little or no computer science
background.
The major topics within the course, and their corresponding textbook chapters, are the following (note
that the order in which topics are covered might change):
Text Section(s) Topics
Ch 5.8-5.12 Recursion
Evaluation
Factor Number Weight
Quizzes 4 15%
2
Final Exam 1 20%
Your lowest-scoring homework assignment will be discarded and not counted toward your final grade.
You can check your homework grades online through the CCIS HandIn server. Allow at least one week
after you submit a homework or exam before the grades are posted. If you have a question about a grade
or would like a score to be reviewed, please come by office hours so we can discuss in person.
Recitation (CS5003)
Every student in CS5001 must sign up for the lab, CS5003. Labs are intended to be completed in less than
the scheduled time. If you finish early, stay and help others, or get a head start on the current homework.
Many labs will require you to work with a partner, usually assigned by me. We call this setup “pair
programming.” Each pair will work at one computer, and each partner will contribute to the program.
Jumping ahead while your partner watches quietly is NOT acceptable. Here’s how we split up the work:
● Navigator: Dictates the code to be written. Explains the why as we go. Checks for syntax errors.
● Driver: Writes the code. Listens closely to the navigator. Asks questions when lack of clarity.
Lab assignments will be posted on the course website. You should complete the lab assignment, but you
will not submit it for a grade.
Quizzes / Exams
Four quizzes will be given this semester. They will be administered during the first 15 minutes of class.
You must be present to receive a grade for each quiz.
There are 5-6 questions per quiz. Your quiz grade will be scaled, though (for example, getting one
question wrong on a 6-question quiz doesn't mean your quiz score is 5/6 = 83%). Quiz scaling will be
applied as follows:
● Zero incorrect: Perfect
● One incorrect: Good
● Two incorrect: Satisfactory
● Three or four incorrect: Unsatisfactory
● More than four incorrect: Poor
There is one midterm exam, given about halfway through the semester and one final exam. They will be
administered during the lecture period. Exam scores will be out of 100 points.
Homework Sets
Homeworks are assigned (almost) every week. They are usually due 6 days after they are assigned, unless
otherwise noted. Homeworks will be evaluated according to the CS5001 Grading Rubric.
You may redeem one (only one!) homework late during the semester. This is your "late token." If you
3
wish to cash in it, email Dr. Strange no later than one hour before the original deadline. You will then
have an additional 5 days to complete and submit the assignment.
Apart from your late token (and your one dropped homework), no late homeworks will be accepted. You
will receive zero credit for assignments submitted after the deadline.
Homework Sets will be posted on the course website. You will submit your homework solution via the
CCIS HandIn server, which we will review in our first lab.
Technical Requirements
We'll be using Python 3 in this class.
The rooms for our scheduled recitation have desktops with Python 3 installed on them. You should also
download Python 3 onto your own computer before the semester begins. We'll use IDLE, Python's own
Integrated Development Environment (IDE). An IDE combines the Python interpreter with an editor for
your code, which makes it easy to work on your code and test/run your software.
You also must sign up for a CCIS account. Follow these instructions to register for one: bit.ly/ccisaccount
Communication
Computer Science is equal parts art and science. There is rarely a problem to solve for which only one
solution exists. Computer scientists develop good software by applying knowledge, educated guesses,
trial-and-error, and collaboration. We have office hours for CS5001, but it is often just as helpful to talk
over your approach with your classmates as it is to talk it over with a Teaching Assistant or Professor.
The quickest way to get feedback and help from your classmates is via Piazza. Piazza is an extension of
our classroom discussion, and we expect everyone to behave accordingly. No disrespect, rudeness, or
abuse will be tolerated -- towards fellow students or towards the course staff. Piazza will be disabled if we
feel it is being misused.
You may not post your code on Piazza, but you can ask, answer, and discuss different things you've
tried, what worked and didn't work, and resources you've found.
We'll also use Piazza to post course announcements, so make sure your email settings are turned on!
Email (laneys@northeastern.edu) is the best tool for specific questions or concerns about your experience
in class, cashing in your late token, or anything sensitive in nature. During the week, I'll respond within
24 hours, but don't expect a response after 9pm. On the weekends I'll be slower to respond, but if you
reach out over a weekend you can expect to hear back by Sunday evening.
4
Office hours are the best place for talking through your approach to a homework problem. We're not here
to give you answers, of course, but to be your fellow computer scientists thinking through a tough
problem with you. Expect us to ask more questions than we answer.
Late/Makeup Policy
All assignments are expected to be completed and turned in on schedule. Due dates will be clearly
indicated for each assignment. Apart from your “late token,” homeworks submitted after the deadline will
not be accepted.
There is no late token for quizzes or exams. You must be present to receive a grade. If you must miss a
quiz/exam due to extreme, unanticipated circumstances such as an illness or a family emergency, notify
me via email before the event.
Attendance Policy
Lecture attendance is not required for lectures, but it is for labs, quizzes, and exams.
It is your responsibility to familiarize yourself with the course schedule to ensure that you do not have any
conflicts with important dates. If you must miss a lab or exam, and if you feel that extraordinary
circumstances warrant a makeup, get in touch with me before the scheduled date.
When you come to class, I ask that you be fully present. No phones are permitted in the classroom. If you
use a laptop, use it only to take notes. Please be respectful of your fellow students and me by
participating attentively and non-disruptively.
Academic Integrity
While students are encouraged to discuss course materials, no plagiarism/copying is allowed on
homework. In particular,
● You may not copy anyone else's code under any circumstances.
● You may not permit any other student to see any part of your program, except when requesting
assistance in debugging.
● You may not permit yourself to see any part of another student's program, except when rendering
assistance in debugging.
● You may not post a public question to Piazza that contains any part of your code.
Student Accessibility
If you require support during the course due to a disability please ensure that you are already registered
with the University’s Disability Center, and contact your course instructors to coordinate any support
needed during the course.
Title IX makes it clear that violence and harassment based on sex and gender are Civil Rights offenses
subject to the same kinds of accountability and the same kinds of support applied to offenses against other
5
protected categories such as race, national origin, etc. If you or someone you know has been harassed or
assaulted, you can find the appropriate resources here: Title IX.