Course Syllabus

This course is an interdisciplinary course in computing intended for first year SEAS students, but open to other schools. Introduces computational thinking, algorithmic problem solving, Python programming, and AI-assisted computing, with a focus on science/engineering applications and working with data.

Topics are likely to include:

  • Python development environments and Jupyter notebooks
  • Variables and data types. 
  • Control Structures (iteration and selection)
  • Lists
  • Strings
  • Reading from files
  • Functions
  • Recursion
  • Classes and objects
  • Data structures
  • Software testing with pytest
  • NumPy library for scientific computing
  • MatplotLib library for data visualization
  • Pandas library for data analysis

This course assumes no prior programming experience. Students who have significant, documented Python programming experience may petition to waive this course; please speak with your Academic Advisor if this is the case.

The recording of the first lecture is available here.

 

Instruction Staff

Instructor: Prof. Chris Murphy, cmurphy@cs.columbia.edu

Head TAs:

Teaching Assistants:

 

Class Meetings

Class meetings will be held on Tuesdays and Thursdays from 1:10-2:25pm; the tentative location is the Roone Arledge Cinema in Lerner Hall.

When possible, lectures will be recorded and notes will be posted in Courseworks. This is not a replacement for attending or being engaged in class, but is intended as a service to students who have legitimate reasons for being unable to make it to lecture, and to provide a resource for students during preparation for exams. 

 

Textbook

There is no required textbook for this course, but we recommend The Practice of Computing Using Python (3rd edition) by William F. Punch and Richard Enbody. 

 

Computers and Software

Windows, Mac, and Linux should all be fine for the purposes of this course. We will be using the Codio development environment for the first few assignments of the semester. This can be accessed by any web browser from any computer and you do not need to install any software.

Later in the course, we may switch to VS Code as the development environment. Other environments are permitted, but will not be supported by the course Instruction Staff. Information about setting up VS Code will be provided toward the start of the semester.

 

Assessment and Grading

Students’ course grades will (tentatively) be determined by the following:

  • Homework assignments: there will be six individual homework assignments consisting of writing, analyzing, and debugging Python code.
  • Quizzes: there will be four closed-book, closed-notes quizzes to be held during class time; these are scheduled for October 1, October 22, November 19, and December 10.
  • Project: students will work in groups of 2-3 to develop a large Python program that involves libraries for processing and visualizing data.
  • There is no Final Exam for this course. 

The mapping of numerical grades to letter grades will be determined toward the end of the semester, but the general guideline is that grades in the 90s will be in the A-/A/A+ range, grades in the 80s will be in the B-/B/B+ range, etc. Students must achieve a weighted average of at least 50% in order to earn a passing grade. 

 

Policies and Expectations

The policies described in this section are put in place in an effort to help the course proceed smoothly and fairly, and to create an environment where all students feel welcome and can get the most out of the course as possible. Please reach out to the Instructor if you have any questions or concerns about these policies, or if there are other policies that would better support you this semester.

Course Community Guidelines

Diversity, inclusion, and a mutual sense of belonging are all core values of this course. All participants in this course must be treated with respect by other members of the Columbia Engineering community. We must all strive, students and faculty both, to never make anyone feel unwelcome or unsafe in any way. Violations of these principles are viewed as unacceptable, and will be taken very seriously. 

Class meetings, office hours, group working time, help sessions, and online collaborative platforms (Ed, GitHub, etc.) should be spaces where everyone feels welcome and included. In order to foster a welcoming environment, students of this course are expected to: 

  • exercise consideration and respect in their speech and actions; 
  • attempt collaboration and consideration, including listening to opposing perspectives and authentically and respectfully raising concerns, before conflict; 
  • refrain from demeaning, discriminatory, or harassing behavior and speech.

It is important that we refer to everyone by the name and pronouns that they use. You are invited but not required to share your preferred pronouns, and all students are asked to commit to being attentive to and using each other’s pronouns and, in situations of uncertainty, gender-neutral language. If at any time during the course you would like to change the name or the pronouns that we use for you in class, please contact the Instructor. If anyone is inadvertently misgendered, misnamed, or has their name mispronounced, the suggested etiquette is to correct the error politely and move on.

If you ever feel discriminated against or otherwise excluded, no matter how minor the offense, you are encouraged to reach out to your instructor or to the Office of Institutional Equity: https://institutionalequity.columbia.edu/ 

Assignment Deadlines and Extensions

Deadlines are put in place so that you have a goal to work toward, so that you know when you’re “done,” and to help the Instructor keep the class moving forward and keep everyone in sync. 

However, it is understandable that sometimes life gets in the way and that you need more time in order to complete a task to a level of quality that you are happy with. As such, all students are granted six "late days" to use on individual homework assignments: these are "no questions asked" and you do not need to request them or notify the Instructor that you are using them. However, you may only use a maximum of three late days on any single assignment.

If you need additional time beyond the allocated late days, please request an extension in advance so that we can set a new deadline. Reasonable requests will almost always be granted and you do not need to provide a reason, but you must notify the Instructor in advance.

Please note that consistent, repeated requests for additional extensions and/or requests for lengthy extensions may necessitate a discussion about the reason(s) and/or contacting your academic advisor.

Class Attendance and Etiquette

Although class meetings will be recorded when possible, it is still expected that you will attend lectures so that you can actively engage with the material, participate in class activities, and ask questions.

Because class meetings will typically start with important administrative information and a review that sets the foundation for the lecture, it is important that all students be on time for class. If you arrive after the lecture has started, please take your seat quickly and quietly and with minimal distraction of your classmates.

The use of laptops and tablets is permitted during class meetings for taking notes, referring to electronic copies of supporting materials, and completing in-class activities. So that you will be focused on the course material and not distract your classmates, it is expected that you will not use your laptop or tablet for other purposes during class.

Likewise, so that you can focus on the class and so as to not distract other students, the use of phones is prohibited during class meetings. Please put your phone on silent/Do Not Disturb mode when in the classroom.

Use of Generative AI

The use of Generative AI (GAI) platforms for individual homework assignments is discouraged but not prohibited, meaning that using GAI is not a violation of any policy, but that we highly recommend that you not use it on assignments.

Academic Honesty

All students in this course are expected to abide by the Computer Science Department policy on academic honesty: https://www.cs.columbia.edu/academic/academic-honesty/ 

In particular, aside from the use of Generative AI, it is expected that the work you submit for individual homework assignments is purely your own, and that you have not received assistance from anyone other than members of the Instruction Staff and have not accessed resources other than those that have been expressly permitted. 

This includes but is not limited to:

  • sharing and distributing code, e.g. one student writes it and allows other students to see it (even if the other students further modify it)
  • co-authoring code, either through pair programming or distributing the work
  • sketching out code together on paper, a whiteboard, etc., even if you type it up separately
  • reviewing another student's code "just to see how they did it"
  • helping another student debug/troubleshoot their code, or receiving such help from another student

Additionally, submitting someone else's work (e.g. something found online, something given to you by a student who took the class in the past, etc.) and claiming it as your own, even with further modification, is pretty much the definition of "plagiarism" and will be treated as academic dishonesty.

 

Resources

In order to help you succeed in this course, the University has made the following resources available to all students. If you have questions or concerns about utilizing these resources, please speak with the Instructor and he will be happy to help direct you to the resource that will support you best.

Academic Support

Your academic advisor should be your first point of contact for exploring effective techniques for studying, test-taking, note-taking, and time and stress management so that you can feel confident and motivated in your academic work.

The four undergraduate schools also have advising resources available:

Accommodations and Accessibility

If you believe you need accommodations for a disability or a chronic medical condition, please contact the Disability Services office at https://www.health.columbia.edu/content/disability-services to arrange an appointment to discuss your needs. As appropriate, the office will issue students with documented disabilities or medical conditions a formal Accommodations Letter. Since accommodations require early planning and are not retroactive, please contact Disability Services as soon as possible. You are also welcome to contact the Instructor privately to discuss your academic needs. However, all official disability-related accommodations must be arranged, in advance, through Disability Services.

Health and Wellness

Staying healthy is a key factor in having a successful and enjoyable semester. Columbia Health provides medical services and wellbeing-related programming throughout the year; see https://www.health.columbia.edu/ for more information.

Additionally, Counseling and Psychological Services (CAPS) offers resources related to general mental health, substance use issues, family and personal relationship issues, and resources for coping with discrimination, hate, and violence. If you are uncomfortable reaching out to CAPS on your own, the Instructor or your academic advisor will be happy to contact them on your behalf. More information is available at https://www.health.columbia.edu/content/counseling-and-psychological-services 

The Instruction Staff recognizes that student life can be extremely difficult, both mentally and emotionally, especially during these unsettled and unsettling times. If you are living with mental health issues such as anxiety, depression, ADHD, or other conditions that may affect you this semester, you are encouraged to discuss these with the Instructor if you are comfortable doing so. Although the details are up to you to disclose, the Instructor will do his best to support and accommodate you in order to ensure that you can succeed in this course while staying healthy.

If you or someone you know is having a medical or mental health crisis and urgently needs assistance, please do not hesitate to contact Public Safety: 212-854-5555.

Last updated: Sept 5, 2026