Course Description
Introduces computer science and data science to students with no prior programming experience. Starts by building programs with numbers, text, and images. Explores real, complex datasets both interactively and through coding by doing data analysis, constructing graphs, and computing interesting results. Offers students an opportunity to build a solid foundation and practice coding with a popular industrial coding language with a professional programmer’s interface to the code. Covers skills needed to identify and respond to ethical challenges that arise in the program design process.
Course Structure
There will be three in-person classes (in Boston & Oakland) or two in-person classes (in NYC & London), one lab, and one optional recitation per week. All content is directed around teaching a set of 12 skills, assessment of which will form the primary assessment of the class, and which are described in detail at Skills.
Each class period (of CS2000) has reading you are expected to do before class. During the class we will briefly review the new material that was covered in the reading (but, in much less depth -- it is not a substitute for doing the reading), and then the majority of class will be dedicated to working with classmates, assisted by your instructor, on exercises related to the new material.
The lab period (CS2001) will include a set of exercises to be done with a partner in your lab section, guided by those running the lab (TAs or instructors). Labs will be graded primarily by effort & attendance. The recitation is an optional additional practice session with TAs, to allow students who want more practice on the topic of the week to work through exercises with guidance.
Students can register for any CS 2001 lab section on their campus.
There will also be weekly homework assignments. The purpose of homework is to give you hands-on experience with the course material you learned in lecture, and to teach you the skills used for the skill assessments.
There are also 12 skills, which have repeatable assessments (taken on paper without notes), and form the primary grading for the class.
There are no quizzes or exams in this class.
Communication
There are three primary sources of communication for this course:
- This website. This is where you will find policies, homework assignments, lab assignments, recitation contents, notes from each day of class.
- Pawtograder. This is the course grading platform. This is where you will submit homework assignments, and get feedback on them. This is also where you will see your grades for the on-paper skill assessments. It will have your gradebook. It is also the place where you will ask questions online about homework, and where you will do online office hours.
- Discord. Please join at https://discord.gg/HsKXgZXXKH. Note you must set your Display Name for the server to your full name before you will be given access to private course channels. This will be a place for any discussion that are not direct questions about homework (which should take place on Pawtograder). Discord will also be used for lab communication (each lab will have a private channel), for announcements about the course. For any questions that are not specifically about homework.
Note that we will not use Canvas for anything.
Course Tools
For the first two thirds of the course, the only software you will need is a web browser. All programming will be done via the online programming environment provided by Github, which we will refer to as github.dev (as this is the website for it). This provides an online version of the programming editor VSCode, and allows you to program using the programming language Pyret. For the last section of the course, you will install VSCode on your computer, and install Python.
If you'd like to install VSCode on your computer earlier, you can use Pyret via the same extension, with the same environment. However, this will involve some setup to push your work to Github, where assignment submissions are drawn from, so if you are interested in doing this earlier than Week 10 (when all will do it), come to office hours and ask a TA to help.
People
Instructor | Campus | Office | Office Hours |
---|---|---|---|
Prof. Ellen Spertus | Oakland | CPM 201 | Thursday 2-4 PM in CPM 200 and by appointment |
Prof. Alvaro Monge | Oakland | CARN 201 | MTW 3-4pm |
Prof. Rush Sanghrajka | Boston | Meserve 309 | Wednesdays 4-6pm in Meserve 309 Make an Appointment, Walk-ins Welcome |
Prof. Daniel Patterson | Boston | Meserve 317 | Thursday 9:15-10:15am and Friday 1pm-3pm in Meserve 314 |
Prof. John Park | Boston | Meserve 318 | Mondays 4:30pm - 5:30pm drop-in w/signup |
Prof. Jeongkyu Lee | NYC | Found Faculty Lounge | TBD |
Coordinator | Campus | Office | Office Hours |
---|---|---|---|
Kayla McLaughlin | Boston | WVH 316 | Mondays, 11-12pm & 2-3pm in WVH314 |
Due Dates, Late Tokens, Regrades
All homework assignments will be due on Thursdays, at 6PM Pacific time / 9PM Eastern time (this is the same moment in time).
Any assignment can have a "Late Token" applied (see https://docs.pawtograder.com/students/assignments/late-tokens), which gives you a 24hr extension on it. You have enough late tokens to use one on any assignment, but you must apply it before the assignment is due. No assignments will be accepted after the due date, or, if a late token has been applied, after the late due date. If there is an exceptional situation that makes you unable to do this, please reach out to your instructor.
If you have an assignment on Pawtograder that you believe was graded in error, you can submit a request request within Pawtograder, explaining what you think the mistake was. If you have a skill assessment that you think was not graded correctly, reach out to a TA or your instructor so they can go over it with you. Note that you will not be able to see the assessment or your response within Pawtograder, but any TA can view it for you.
Office Hours
We hold extensive office hours -- both online, via Pawtograder and, depending on campus, in person. These can be used for any questions you have about course content, not limited to: review about reading, questions about exercises from class, any questions about homework assignments, etc. The schedule for these are available here:
Recitation Times
In addition to general purpose Office Hours held by TAs, there will be dedicated Recitation Hours held by TAs. These optional sessions, scheduled throughout the day, held both in person and online, will have particular exercises and material that they go over, and will not assist with homework problems. Attendance will be limited for each session, but enough should be scheduled to allow students to attend if they want.
The calendar that has office hours also shows the recitation times, identified as RECITATION. Note that homework questions will not be answered during recitations.
Attendance
Attendance is not required in CS2000. Please do not come to class when you're sick. We'd much rather you stay home and take care of yourself. If you need to stay home and miss class, no need to notify us in advance. You are still responsible for completing assigned work and keeping up with content that you may have missed due to an absence. The course website describes the classwork for each day, available for review. Feel free to stop by office hours with the instructors or TAs with any questions or help with the missed classwork.
Skills
The course will teach the following skills, grading of which will be performed by repeatable (with highest grade taken), on-paper, no-note, assessment that can be scored as "Doesn't meet expectations", "Approaching expectations", or "Meets expectations". See the Skills page for much more detail.
- Design basic functions (Pyret)
- Construct / Transform Tables (Pyret)
- Iteration: Lists (Pyret)
- Structured & Conditional Data (Pyret)
- Recursion: Lists (Pyret)
- Recursion: Trees (Pyret)
- Variable Scope (Python)
- Design basic functions (Python)
- Iteration: Lists (Python)
- Aliasing & Mutation (Python)
- Identifying Privacy Issues in Problem Formulation
- Identifying Stakeholders in Problem Formulation
Grading
Grades will be primarily assigned by achievement levels of the course Skills, along with required grade thresholds on HW for each letter grade, and + (other than A) given for participation in 8 or more out of 10 labs, - given for participating in fewer than 6 out of ten labs.
This is captured by the following table -- the highest row that a student satisfies all columns of will be their grade, and if no rows are completely satisfied, the student will not pass the course.
Skills Needed (out of 12 total) | |||||
---|---|---|---|---|---|
Grade | Meets Expectations | Approaching Expectations | Not Approaching | HW Average | Lab Participation |
A | 11+ | 1 or fewer | 0 | 80% or better | 6 or more |
A- | 11+ | 1 or fewer | 0 | 80% or better | any |
B+ | 9+ | 3 or fewer | 0 | 70% or better | 8 or more |
B | 9+ | 3 or fewer | 0 | 70% or better | 6 or more |
B- | 9+ | 3 or fewer | 0 | 70% or better | any |
C+ | 7+ | 5 or fewer | 0 | 60% or better | 8 or more |
C | 7+ | 5 or fewer | 0 | 60% or better | 6 or more |
C- | 7+ | 5 or fewer | 0 | 60% or better | any |
D+ | 3 or fewer | 50% or better | 8 or more | ||
D | 3 or fewer | 50% or better | 6 or more | ||
D- | 3 or fewer | 50% or better | any |
Textbook
We will follow the textbook "A Data-Centric Introduction to Computing", by Fisler, Krishnamurthi, Lerner, and Politz. However, we have made a few MINOR changes, so you should use our version of it, available freely online at https://dcic.pdi.run (you should see a banner at the top that says it is our version, and the menus should always be yellow) and all readings will be linked to from appropriate parts of this site.
Collaboration and Academic Honesty
Computer science, both academically and professionally, is a collaborative discipline. In any collaboration, however, all parties are expected to make their own contributions and to generously credit the contributions of others. In our class, therefore, collaboration on assignments is encouraged, but you as an individual are responsible for understanding all the material in the assignment and doing your own work. Always strive to do your best, give generous credit to others, start early, and seek help early from both your professors and classmates.
Specifically:
- You are responsible for any material you turn in.The professor reserves the right to ask you to verbally explain the reasoning behind any answer or code that you turn in and to modify your grade based on your answers. It is vitally important that you turn in work that you understand.
- Copying material from another person without their knowledge is not allowed.
- Additionally, sharing solutions in forums (e.g., posting to public questions, posting code online, etc) constitutes an academic integrity violation, as it may make it harder for other students to do work on their own, harming their own learning.
- Any sharing or receiving information about the content of skill assessments is an academic integrity violation, and may result in failing the class.
We strongly recommend that you write all code yourself. Even if you discuss solutions, or approaches, with others, do the actual typing on your own! And avoid playing games or trying to find loopholes -- i.e., do not merely type what someone says, or type what you see on anothers screen. While we do not consider collaboration a violation, we still encourage following these recommendations-- relying on others for your solutions may result in you not learning the material, and in this class, not learning the material will result in not being able to pass the skill assessments. Even with perfect homework scores, failing to pass sufficient skill assessments will result in a failing grade in the course (consult the grading table), so take homework for what it is intended: extensive opportunity to practice the skills we are teaching, paired with high quality feedback about the solution you came up with.
The minimum penalty for an academic integrity violation is a zero on the assignment and a report to the Office of Student Conduct and Conflict Resolution (OSCCR). Penalties are increased if there are aggravating factors, such as stealing another student's work or lying about cheating. Also, see the Official University Academic Integrity Policy.
The AI Policy
AI coding assistants like Cursor, Windsurf, and Copilot should not be used in this course. We believe that using an AI assistant is an important skill that should be covered after the basics (which is why there is a different policy in CS 3100). Until you have the ability to design, understand, and review code, using an AI assistant amounts to wandering around in the dark, with no ability to determine if you are getting closer to what you want. (Using these tools to get decent grades while learning nothing is pretty clearly shooting yourself in the foot: you are in college to learn; if you end up unable to do anything but prompt engineer, you will have essentially no skills, given these models are intentionally rendering whatever "skill" underlying prompt engineering obselete in every generation).
The same is true of asking questions of chat models like ChatGPT, Claude, or Gemini. Putting in assignment instructions into such a model and getting out code or test cases amounts to getting the model to do the thinking for you -- and as a result, you will not learn. "Only look"ing at AI-generated solutions "before writing your own" undermines the learning just the same, as you will not be learning to actually solve problems, you will just be copying (and, importantly, never developing the ability to recognize when the AI generated solution isn't what you want).
Emerging research is beginning to show that substituting practice on fundamental skills by delegating that practice to LLMs significantly decreases learning. Whilst using an LLM might reduce the immediate strain of learning something new, it can also diminish the development of critical thinking skills by decreasing engagement and impeding independent problem-solving. Moreover, even the benefits of using LLMs for experienced developers have been questioned. LLMs can be useful useful once you have gained competence in program design and are able to break down a problem and specify it precisely—which are the skills we are trying to develop in CS 2000 and CS 2100.
Part of the reason for these being guidelines, rather than academic integrity policies, is that some interaction with LLMs is now unavoidable -- using a search engine now will give you an AI generated overview, and similar interactions with models (trying to understand concepts) is not necessarily discouraged, though we would always encourage you to bring larger questions to our course staff, who will likely be able to give you better answers, more suited to your background, to our curriculum, etc. Finally, if you do use LLMs for search, you are responsible for validating any information you find.
Make sure to refer to sources of ground truth for reliable information such as the official language documentation, our course textbook, course staff, and the course website. Reading documentation can be challenging at first, but it is an important skill to develop in any technical field. Learning to navigate technical documents helps you develop a precise understanding of how something works—which is a valuable transferable skill that you can use to gain competence with new tools and help you solve problems independently.
Inclusive 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. We believe that diversity and inclusiveness are essential to excellence in academic discourse and innovation. In this class, the perspective of people of all races, ethnicities, gender expressions and gender identities, religions, sexual orientations, disabilities, socioeconomic backgrounds, and nationalities will be respected and viewed as a resource and benefit throughout the semester. Suggestions to further diversify class materials and assignments are encouraged. If any course meetings conflict with your religious events, please do not hesitate to reach out to Rush to make alternative arrangements.
Name and Pronoun Usage
As this course includes some discussion, it is vitally important for us to create an educational environment of inclusion and mutual respect. This includes the ability for all students to have their chosen gender pronoun(s) and chosen name affirmed. If the class roster does not align with your name and/or pronouns, please inform us of the necessary changes.
Accommodations
If you have a documented disability, please register with Disability Access Services to get the accommodations that will help you succeed. Please do this even if you are unsure whether you will need accommodations, since there may be a delay if you decide you need them later. Please do not wait until it has seriously impacted your work, as accommodations are not retroactive. See additional information for Oakland students.
Policy on Recording
Massachusetts and California laws prohibit students from recording classes without the consent of all participants, unless a disability accommodation is in place. We encourage you to seek accommodations to which you are legally entitled.
University Resources
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 and the Center for Spiritual Dialogue and Service clergy members. 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. 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.
International Tutoring Center
The International Tutoring Center (ITC) provides current Northeastern University international and non-native English-speaking students with free, comprehensive English language and academic support. The ITC includes student-centered one-on-one tutoring sessions and workshops on reading, writing, and language and culture. For more on tutoring and workshops, see https://cps.northeastern.edu/academic-resources/global-student-success/international-tutoring.
WeCare
WeCare is a program operated through the Office for Student Affairs. The mission is to assist students experiencing unexpected challenges to maintaining their academic progress. WeCare works with students to coordinate among university offices and to offer appropriate on and off campus referrals to support successfully resolving the issue. WeCare also provides information to faculty and staff to identify Northeastern resources and policies to help students succeed.
For more information see https://studentlife.northeastern.edu/we-care/. Call 617.373.4384 or email wecare@northeastern.edu.
Libraries
Students can access research resources at the F.W. Olin library (Oakland) and through the Snell Library (Boston and online). The Snell Library collaborates with both the First-Year Writing and Advanced Writing in the Disciplines programs to support students’ information literacy. Online research tutorials can be found here: https://subjectguides.lib.neu.edu/researchtutorials/getstarted
Global Learner Support
Northeastern University's Global Learner Support (GLS) offers "language, cultural, and academic support while promoting the development of intercultural competence and global understanding." They offer tutoring, workshops, and much more. Visit https://gls.northeastern.edu/ to learn more.