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 and one lab per week. All content is directed around teaching a set of 13 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.
There will also be weekly homework assignments. The purpose of these assignments, which are half programming practice and half open ended projects, is to give you hands-on experience with the course material. They will both teach you the skills used for the skill assessments, and are the subject of Assignment Chats during lab, which are the only assessment that is done on them.
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). In addition to working through the lab exercises, you will also do Assignment Chats each week, where you individually will present work done at home to TAs. Grading of Assignment Chats forms part of your final grade, and lab attendance is required to do them.
Students can register for any CS 2001 lab section that is on their campus!
There are 13 skills, which have repeatable assessments (taken on paper without notes over the course of the semester), and form the primary grading for the class.
There are no formal quizzes or exams in this class, though the skill assessments are similar in form to quizzes; unlike traditional quizzes, skill assessments allow you to be assessed at your own pace, and repeat as you need.
Communication
There are three primary sources of communication for this course:
- This website. This is where you will find policies, homework assignments, lab assignments, practice material, notes from each day of class.
- Pawtograder. This is where you will find links to start your homework assignments / projects, and where you will see all grades (including for the on-paper skill assessments).
- Discord. Please join at https://discord.gg/YxuCh5P5kn. 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. Discord will also be used for lab communication, for announcements about the course. For any questions that are not specifically about homework. It is also the place where you will ask questions online about homework, and where you will do online office hours.
Course Tools
The only software you will need is a web browser (and a computer or tablet that can run a relatively up-to-date one). All programming will be done via the online programming environment VSCode (note that VSCode exists also as a program installed on your computer, but we won't use that), which we will refer to as vscode.dev (as this is the website for it).
People
| Instructor | Campus | Office | Office Hours |
|---|---|---|---|
| Prof. Ellen Spertus | Oakland | CPM 201 | tbd |
| Prof. Alvaro Monge | Oakland | CARN 201 | tbd |
| Prof. Rush Sanghrajka | Boston | Meserve 309 | tbd |
| Prof. Daniel Patterson | Boston | Meserve 317 | tbd |
| Coordinator | Campus | Office | Office Hours |
|---|---|---|---|
| Kayla McLaughlin | Boston | WVH 316 | tbd |
Due Dates
All homework assignments / project checkpoints will be due Anywhere-on-earth on Sunday (i.e., if it's still Sunday in some timezone, you are good).
Each homework assignment forms the material used for the Assignment Chat that occurs during the lab following the deadline of that assignment; the only grading of homework assignments is via that conversation. While you will see grades in the Pawtograder gradebook, you will not get any written feedback on assignments there, and the results of any autograders that occur are just to help you improve your programs; they do not count towards any part of your grade.
If you turn in work late, it can contribute to a later assignment chat in the case of the project. While this late work on a homework assignment may have improved your understanding, the actual material used for the Assignment Chat will be whatever was turned in by the deadline. If you did not turn anything in by the deadline, you wil receive no credit for the Assignment Chat.
Regrade Requests
If you believe a mistake was made in the grading of a Skill Assessment, an Assignment Chat, or a Pairing Session, you have 7 days from when the grade was released to bring this to the attention of a TA or your instructor. You can also ask, in person, for explanations of why something was graded a certain way without requesting a formal regrade. Abuse of of the regrade request mechanism may result in less of an ability to request regrades.
Office Hours
This course has extensive availability for questions and discussion via Discord, and more limited dedicated online office hours via one-on-one video chat via the same platform.
Rules and Procedures Do NOT send any screenshots or snippets of your homework programming exercises in any channels (you are welcome to discuss your projects!). Screenshots of your environment setup are ok as long as there isn't any homework programming exercises visible, and of course lecture or practice code is okay.
To join online office hours: Make a post in the office hours text channel before joining the waiting room, so the TAs can better assist you. Once they move you into a private voice channel, you are free to screen share your hw code. Alternatively, you can send code privately to a TA over DMs (the TA will initiate the DM).
The schedule for office hours are available here:
Attendance
Attendance is strongly encouraged, but 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 instructor office hours with any questions or help with the missed classwork, or post questions on Discord.
Skills
The course will teach the following 13 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". Each student will have at least 4 opportunities to master each skill. Beyond the regular 4 opportunities which occur during the semester, as the topics are covered, student may re-attempt 2 skills; such re-attempts can be scheduled in the last two weeks of classes or on the day of the final exam. See the Skills page for much more detail.
- Design function types, docs, tests (Pyret)
- Implement basic functions (Pyret)
- Construct / Transform Tables (Pyret)
- Iteration: Lists (Pyret)
- Structured & Conditional Data (Pyret)
- Recursion: Lists (Pyret)
- Recursion: Trees (Pyret)
- Variable Scope (Python)
- Basic functions (Python)
- Iteration: Lists (Python)
- Aliasing & Mutation (Python)
- Identifying Privacy Issues in Problem Formulation
- Identifying Stakeholders in Problem Formulation
Assignment Chats
Each week, Lab sessions will have two purposes. One of them will be working with a student partner (different each week) to complete the exercises described in the lab, assisted by TAs. The second purpose will be to present work that you have submitted the previous Sunday to a TA. The latter is called an Assignment Chat, and is described below
A pair of TAs will walk around the room, stopping a pair of students from working on the lab exercises, and pulling up the work they submitted for the previous week's Homework assignment. Each TA will talk to one of the students, separately -- students will each be talking about their own assignment, one-on-one, with a TA. The TA will move to particular parts of the work, asking questions, asking the student to describe what they did, why they did it, other alternate approaches they could have taken, etc. This conversation will not be long -- approximately 5 minutes long -- but will be in enough detail to cover parts (but not all, of course) of the assignment in depth. Afterwards, both the TA and the student will fill out an assessment of the conversation -- the student's will be a self-assessment, the TA's will be an assessment recorded on Pawtograder. The TA's assessment covers both the student's demonstrated familiarity with their own material, with the course material, their ability to engage with the questions posed to them, etc.
The first two assignment chats will be practice, so will be graded on completion only (i.e., you will get full credit if you are there and participate) -- the rest will be graded based on the TA assessment. Two total will be dropped (to account for missing labs due to being sick, using wellness days, etc), and the rest weighted evenly.
Pair Programming Sessions
Working with others is a fundamentally important skill, and one of the best ways to learn is to work with someone who is more experienced than you. As a result, over the course of the semester you will have three 1hr pair programming sessions with a TA. These will be scheduled in the first, middle, and last third of the class, beginning a few weeks into the semester. You will have the opportunity to pick a time that is convenient to you, and will work with whomever of the TAs is available at the selected time.
The sessions will take place in rooms with multiple TA / student pairs, and each will be given a problem that is new to them from a pool of problems appropriate at that point in the semester (beginning, middle, end). The two will work together, with the student's computer the only one that is open -- they are the driver/pilot, whereas the TA serves as the copilot, helping to brainstorm, point out typos, etc. While the problems are intended to take roughly an hour to complete, grading of these sessions is not based on functional completeness of the solution, but rather, based on the quality of interaction -- working together, coming up with ideas, demonstrating familiarity with the course material, etc. Like with the Assignment Chats, after the session is over, both the TA and the student will fill out an assessment. The TA's assessment will be used for the grade, with the assessment on the first session being worth 10% of the overall Pairing Session grade, and the second and third each being worth 45% of the grade.
If your schedule changes, you must notify the course coordinator (Kayla McLaughlin, k.mclaughlin@northeastern.edu) at least a week before your scheduled session, and we'll cancel it and you can pick a different time. If it is less than a week, you can still contact Kayla, but you need to tell us why you need to reschedule, and we may not be able to accommodate it. If you do not show up to a scheduled session, you will receive a 35% for the session; there are no make-ups.
Grading
Your final grade will be calculated by your results in the Skill Assessments, Assignment Chats, and Pair Programming sessions, as described above. The exact grade associated with performance in each of those categories 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.
| Grade | Skills Needed (out of 13 total) | Assignment Chat Average | Pairing Session Average | ||
|---|---|---|---|---|---|
| Meets Expectations | Approaching Expectations | Not Approaching | |||
| A | 12+ | 1 or fewer | 0 | 80% or better | 80% or better |
| A- | 12+ | 1 or fewer | 0 | 70% or better | 70% or better |
| B+ | 9+ | 4 or fewer | 0 | 70% or better | 70% or better |
| B | 9+ | 4 or fewer | 0 | 60% or better | 60% or better |
| B- | 9+ | 4 or fewer | 0 | 50% or better | 50% or better |
| C+ | 7+ | 5 or fewer | 1 or fewer | 60% or better | 60% or better |
| C | 7+ | 5 or fewer | 1 or fewer | 50% or better | 50% or better |
| C- | 7+ | 5 or fewer | 1 or fewer | 40% or better | 40% or better |
| D+ | 5 or fewer | 50% or better | any | ||
| D | 5 or fewer | 40% or better | any | ||
| D- | 5 or fewer | any | 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 with or 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.
- Trying to access any electronics during skill assessments is an academic integrity violation and will result in a 0 on the assessments. This includes having a phone in your lap, no matter what is accessed on the phone. You will also be prohibited from re-attempting said skill assessments.
You must write all code for assignments 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 another's screen. While we do not consider collaboration a violation, 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.
Remember, what you turn in as homework is not graded directly, rather, it is the basis of a conversation with a TA -- if you do not understand what you submitted, you will fail that assessment, nevermind that without the practice of homework, you will find it difficult to pass the skill assessments that form the core of you grade in the course (consult the grading table), so take homework for what it is intended: extensive opportunity to practice what we are teaching, plus the opportunity to practice talking about your work.
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, Gemini, etc. 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 need). It will also backfire, as if you do this, you will find yourself unable to have to conversations that form the grade for these assignments.
Emerging research is beginning to show that substituting practice on fundamental skills by delegating that practice to LLMs can decrease 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 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 be 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 Kayla to make alternative arrangements.
Name and Pronoun Usage
As this course includes discussion and conversation, 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.