Fall 2021

Course Description

Introduces the fundamental ideas of computing and the principles of programming. Discusses a systematic approach to word problems, including analytic reading, synthesis, goal setting, planning, plan execution, and testing. Presents several models of computing, starting from nothing more than expression evaluation in the spirit of high school algebra. No prior programming experience is assumed; therefore, suitable for freshman students, majors and nonmajors alike who wish to explore the intellectual ideas in the discipline.

Course Objectives

By the end of this course, given a computational problem, you will be able to:

  1. design appropriate data representation(s) for relevant information;
  2. indicate an appropriately general input(s)/output relationship given data representation(s);
  3. develop a sufficient set of automated tests to verify a coded solution; and
  4. produce a set of well-designed functions to solve the problem, making appropriate use of abstraction.

Required Textbook

How to Design Programs (2nd edition). Felleisen, Findler, Flatt, and Krishnamruthi; MIT Press 2014.

You can...


The final grade for this course will be weighted as follows...

Final grades will be assigned based on the following scale...

93 -
90 - 92
87 - 89
83 - 86
80 - 82
77 - 79
73 - 76
70 - 72
67 - 69
63 - 66
60 - 62
   - 59

At the time of final-grade determination, numeric grades are rounded naturally (e.g. 94.4 is a 94, but 94.5 is a 95).


Most weeks there will be a lab assignment, due Tuesday, for you to practice the concepts learned in lecture. The lab assignment is graded on demonstrated effort for each part of the assignment; submit whatever you have completed by the deadline.


The purpose of homework is to give you hands-on experience with the course material you learned in lecture and lab, as well as to prepare you for the exam. Most weeks there will be one homework, due Friday (1 week after the related lecture content).


There will be two exams during the semester:

More details will come closer to each exam, but they will be delivered asynchronously: on the listed date, you will be able to choose a 2-hour window during which to take and submit the exam. They are designed to be completed in a much shorter time, though, as we don’t want you to feel rushed to complete it. Instruction staff will be available through the exam to answer questions and help troubleshoot any problems that arise.


Due Dates

This is a truly global class, and so we are utilizing Anywhere on Earth (AoE) as the method of indicating due dates. Thus, work due on Thursday is considered on-time if it is submitted while it is Thursday anywhere on the planet, which corresponds to UTC-12.

Late Work

Falling behind on work is never a good idea: the course presents new material every day, making catching up harder and harder. However, we know that your time is not always easily scheduled, and some weeks, "stuff happens." We will therefore allow you to turn in homework up to 20 hours after the deadline at a penalty of 5% per hour late.


Sometimes mistakes can happen and so if you are confused or concerned about feedback, please don’t be afraid to reach out to a member of the instruction team for further explanation. You must submit any requests for regrading at most 7 days after the feedback was released.

When you have a regrade request you should first reach out to the individual who graded your work. Their name will be attached to their comments on the handin server. If the individual is unable to address your concerns you can approach the course instructor for further assistance.

Academic Integrity

While students are encouraged to discuss course materials, no plagiarism/copying is allowed. In particular:

If you have a question about what is considered a violation of this policy, please ask! The university's academic integrity policy discusses actions regarded as violations and consequences for students.

Classroom Environment

To create and preserve a classroom atmosphere that optimizes teaching and learning, all participants share a responsibility in creating a civil and non-disruptive forum for the discussion of ideas. Students are expected to conduct themselves at all times in a manner that does not disrupt teaching or learning. Your comments to others should be constructive and free from harassing statements. You are encouraged to disagree with other students and the instructor, but such disagreements need to respectful and be based upon facts and documentation (rather than prejudices and personalities). The instructor reserves the right to interrupt conversations that deviate from these expectations. Repeated unprofessional or disrespectful conduct may result in a lower grade or more severe consequences. Part of the learning process in this course is respectful engagement of ideas with others.

Title IX

Title IX of the Education Amendments of 1972 protects individuals from sex or gender-based discrimination, including discrimination based on gender-identity, in educational programs and activities that receive federal financial assistance.

Northeastern’s Title IX Policy prohibits Prohibited Offenses, which are defined as sexual harassment, sexual assault, relationship or domestic violence, and stalking. The Title IX Policy applies to the entire community, including male, female, transgender students, faculty and staff.

If you or someone you know has been a survivor of a Prohibited Offense, confidential support and guidance can be found through University Health and Counseling Services staff (https://www.northeastern.edu/uhcs/) and the Center for Spiritual Dialogue and Service clergy members (https://www.northeastern.edu/spirituallife/). By law, those employees are not required to report allegations of sex or gender-based discrimination to the University.

Alleged violations can be reported non-confidentially to the Title IX Coordinator within The Office for Gender Equity and Compliance at: titleix@northeastern.edu and/or through NUPD (Emergency 617.373.3333; Non-Emergency 617.373.2121). Reporting Prohibited Offenses to NUPD does NOT commit the victim/affected party to future legal action.

Faculty members are considered "responsible employees" at Northeastern University, meaning they are required to report all allegations of sex or gender-based discrimination to the Title IX Coordinator.

In case of an emergency, please call 911.

Please visit https://www.northeastern.edu/titleix for a complete list of reporting options and resources both on- and off-campus.

Students with Disabilities

Students who have disabilities who wish to receive academic services and/or accommodations should visit the Disability Resource Center at 20 Dodge Hall or call (617) 373-2675. If you have already done so, please provide your letter from the DRC to me early in the semester so that I can arrange those accommodations.

Tools & Resources

We will use DrRacket (version 8.2), a programming environment for a family of programming languages. For Fundamentals 1, we will stick to the HtDP teaching languages plus a small number of teachpacks. You should download and install DrRacket on your own computer: https://download.racket-lang.org

In order to submit work in this class, you will need to have a Khoury account. You are eligible for such an account if you are a Khoury major or if you are in a Khoury class (such as this one). You can apply for a Khoury account at this link, and you should do so ASAP, so that you have the account activated by the first lab.


If you are in one of the regular sections of CS 2500 and you feel, during the the first 3 weeks of the semester, that you would benefit from learning at a more accelerated pace, you may be able to transfer into the Accelerated section. To request a switch, you should talk to your professor; if they agree, they will ask you to talk to Prof. Ahmed or Prof. Lerner for permission to register for Accelerated.

Note that you will need to move to lecture section 1 (CRN 11036 10:30-11:35am, Mon/Wed/Thu). You will also have to choose from either lab 1, 2, 20, or 25 (CRNs 18533, 18538, 10251, or 10542, Friday ranging from 8am until 3:15pm). Both the lecture and the lab must fit in your schedule and have space available in the room.

Until September 18th this change can be made effective immediately after Prof. Ahmed or Prof. Lerner approve.

After September 18th but before September 24th this change will be made effective September 27th. Thus, you should continue to attend your regular lecture and lab, and turn in all regular assignments, until the one due on September 23rd.

After September 24th you can no longer change sections.