Course Description
CS7 is an introduction to computer science, with particular emphasis on the structure and interpretation of computer programs from a programmer's point of view. This course concentrates on the idea of abstraction — allowing the programmer to think in terms appropriate to the problem rather than in terms of the computer hardware.
We are interested in teaching you about programming, not about how to use one particular programming language. We consider a series of techniques for controlling program complexity: functional programming, data abstraction, and object-oriented programming. Once you learn the essence of programming, picking up a new language takes only a few days.
Programming Language
CS7 uses Python 3 — a popular language in both industry and academia, well suited to exploring the topics taught here. Its strong community, excellent library support, and readable syntax make it a powerful first language that will serve you throughout your career.
Prerequisites
Knowledge of Advanced Level Mathematics is a corequisite (may be taken concurrently). There are no formal programming prerequisites. If you have some mathematical maturity and curiosity, you are ready for CS7.
Course Materials
There is no required textbook. Our primary text is a series of lecture notes based on the classic Composing Programs. Notes will be posted to the course website as the semester progresses.
Lectures and Attendance
Pre-recorded lectures are released every Sunday. You are expected to watch all recordings or attend live sessions. Attendance is tracked and contributes to your participation grade. Communicate with course staff early if you anticipate difficulties.
Ask Questions
Your most important resource is your fellow students. For questions that others may share, post to Piazza. Instructors and TAs are available on Piazza, via WhatsApp, and during office hours listed in the schedule.
Projects and Homeworks
Laboratory exercises are short exercises introducing new topics. Labs are graded on effort — a reasonable attempt earns full credit even if wrong.
Homework assignments are more involved and graded automatically via Poseidon. Discuss with others freely, but write your final solution alone or with one partner.
Projects are larger assignments combining ideas from across the course. There are three projects. Work in pairs and make sure both partners understand the full solution. Each project includes a mandatory oral examination conducted by a TA — you will be asked to explain your design decisions and walk through your code. Your ability to discuss your own work is part of the project grade.
All coursework is submitted via Poseidon.
Tests and Grading
Your course grade is computed out of 100 points:
Three projects 30 points Piazza participation 25 points Lab 15 points One midterm exam 10 points One final exam 10 points Homework 10 points
Letter grade ranges:
A+ 97+ A 93–96 A- 90–92 B+ 87–89 B 83–86 B- 80–82 C+ 77–79 C 73–76 C- 70–72 D+ 67–69 D 63–66 D- 60–62 F 0–59
There is no curve. Your grade depends only on your own performance. Certification is awarded for C- and above.
Piazza Participation
Participation accounts for 25 points of your grade and is tracked through your activity on Piazza throughout the semester. There is no fixed quota — what we are looking for is genuine, consistent engagement with the course and with your classmates.
Good participation looks like asking a thoughtful question when you are stuck, explaining a concept to someone who is confused, or sharing something interesting you noticed while working through the material. Posting for the sake of posting does not count for much. A handful of posts that show real thinking will always outweigh a high volume of shallow ones.
TAs review Piazza stats at the midpoint and end of semester. Students who engage regularly and helpfully earn full marks; those who are absent from discussion or post only superficially will see that reflected in their score.
Use of AI on Exams
Midterm and final exams are taken as handwritten assessments. You will receive the question paper and must submit a scanned copy of your own handwritten answers within the specified time window. The use of any AI tool — including but not limited to ChatGPT, Claude, Gemini, Copilot, or any other language model — to generate, assist with, or check exam answers is strictly prohibited.
Sharing the exam paper with any person or tool outside of your own effort is also prohibited. This includes forwarding the PDF to others or posting it in any group chat during the exam window.
Students found to have used AI tools or shared exam materials will receive a zero for that assessment and may be dismissed from the course. There are no exceptions. If you are uncertain whether a tool is permitted, assume it is not.
Academic Honesty Policy
CS7 is built on the belief that you are here to learn. Every policy in this course exists to protect that learning — yours and your classmates'. The following rules apply to all work submitted in CS7.
What is allowed:
- Discussing high-level approaches to problems with classmates.
- Reading documentation, textbooks, and course notes.
- Using AI tools to understand concepts — for example, asking an AI to explain what a higher-order function is. This is different from asking it to solve your assignment.
- Referring to your own past work from this course.
What is not allowed:
- Submitting code, solutions, or written answers generated by an AI tool as your own work on any graded assignment, project, homework, or exam.
- Copying another student's code, solution, or answer, in whole or in part, with or without modification.
- Sharing your solution with another student before the deadline, even if you intend to help them learn.
- Using AI tools during exams in any form.
- Sharing exam papers, questions, or materials during the exam window.
- Having another person complete your oral examination on your behalf.
Why this matters: AI tools can produce correct-looking code for nearly every problem in this course. If you submit that code without understanding it, you will pass the assignment and fail the course in the truest sense — because when you face a novel problem in your career, no tool will substitute for your own thinking. The oral components of this course exist precisely to surface that understanding.
Consequences: Any confirmed violation of this policy results in a zero for the affected assessment. Serious or repeated violations will be escalated and may result in removal from the course. All suspected violations are reviewed by the instructors, not TAs. If you made a mistake, come forward early — the conversation is much easier before an investigation begins.
Learning Cooperatively
We encourage you to discuss all course activities with classmates. You will learn more working with others. Ask questions, answer questions, and share ideas freely. Keep your partner and instructors informed if circumstances change.
Late Policy
If you cannot submit on time, contact the instructor as early as possible. Late submissions require explicit approval. Exceptions may be made for extraordinary circumstances.
A Parting Thought
We are thrilled to have you in CS7. Welcome — we hope this course changes the way you think about problems.