CSCI1010 Winter 2026 Syllabus
Logistics and Key Policies
| Class |
Monday - Thursday, 10:00am-12:00pm 75 Shannon Street, 102 |
||||||||||||
| Instructors |
Phil Chodrow (Prof. Phil or Prof. Chodrow)
|
||||||||||||
| Important Policies |
|
Description
From predictive models to image and language generators, data science, machine learning, and generative artificial intelligence (AI) rely on computational methods for learning patterns in large, complex, datasets. In this hands-on course, we will apply multiple approaches for learning from data, including exploratory analysis, prediction, and generation. Students will describe social impacts of data-intensive technologies; manage and explore data sets; build predictive models; and programmatically apply generative models to real-world problems and data. This course is designed for students with introductory programming or data science preparation seeking to build foundational understanding and practical skills in machine learning and generative AI. This course fulfills the Responsible Computing requirement for the Computer Science major.
Topics
See the complete schedule for more details!
Module 1: Data Analysis and Visualization with Python
- Introduction to the Python data science ecosystem. Notebooks. Vectorized execution and the NumPy library.
- Data frames using the Pandas library. Indexing, mutation, filtering and split-apply-combine.
- Data visualization with the Matplotlib and Seaborn libraries.
- Data wrangling. Merging, reshaping, and pivoting data. Handling missing data.
Module 2: Predictive Modeling and Machine Learning Fundamentals
- Introduction to prediction. Loss functions. Testing sets. The idea of optimization.
- Linear regression. Feature engineering. Many features, overfitting. Cross-validation.
- Classification: logistic regression. Confusion matrices, ROC curves, AUC.
- Case study: COMPAS. Data analysis. Definitions of fairness in classification from confusion matrices.
- Neural networks for regression and classification.
Module 3: Generative Models and Applications
- Introduction to generative models. Generation from prediction. Using SOTA models.
- N-gram Markov models. Role of tokenization.
- Expanding the context. Building and training neural language models.
- Societal implications of AI.
Learning Objectives
A learning objective is a primary goal for your learning by the end of the course. You’re successful in CSCI 1010 when you achieve excellence against these learning objectives.
| Theory | You will describe several key mathematical concepts in machine learning and generative AI, such as loss functions and overfitting. |
| Navigation |
You will fluently navigate the package ecosystem for data analysis and machine learning in Python. |
| Experiment | You will experiment with machine learning models, audit their performance, and communicate about your findings. |
| Social Responsibility | You will interrogate the societal implications of machine learning models, including concerns about bias, authenticity, environmental impact, labor and accountability. |
| Project | You will complete an independent project that involves implementing and experimenting with machine learning tools. |
Coursework
Class time
Most classes will involve:
- Approximately 1 hour of interactive lecture and demonstration incorporating math, theory and live-coded programming examples
- Approximately 1 hour working on relevant data analysis activities. These activities will likely require time outside of class to finish.
Some classes will start with a short quiz.
Activities
Many classes will include a data analysis activity in the form of a IPython notebook which you can complete in Google Colab, a cloud environment for interactive computing with Python. These are structured like online tutorials, i.e., include new material, links to relevant documentation, etc. but expect you to implement certain portions of the analyses. Each student will submit their own notebook to Gradescope, but you are welcome and encouraged to work with your classmates.
The activities are intended to build skills for the final project and prepare you for the regular quizzes and exam. To the latter ends, each activity has an initial due date the day (so you can receive feedback before the quiz) and a later final due date. All submissions by the initial due date will be automatically reviewed shortly afterwards (as will all submissions at the final due date). To request re-review after the initial due date but before the final due date, submit the Google form linked at the top of the Gradescope output or here. The form will notify the instructors your submission is ready for re-review (otherwise we don’t know if any given submission is for testing, or ready for re-review).
Activities are assessed with a Satisfactory (2 points in Gradescope), Not yet satisfactory (0-1 points in Gradescope) rubric via a combination of automated unit testing and manual review. You may submit as many times as you want. Credit will be determined by the last submission before the final due date.
Quizzes
We will have a regular series of short quizzes (typically Monday and Wednesday at the beginning of class). These quizzes are a low-stakes opportunity to check whether you have understood the recent material and prepare for the exam. Quizzes are completed on paper, and are closed notes, online resources, etc.
Midterm Exam
Approximately 2/3 of the way through the course, we will have an exam intended to assess your understanding of data analysis and machine learning fundamentals (the first 2 course modules). The exam will have two components: 1) a written paper-based exam, similar to the quizzes, and 2) an oral exam.
Project
The final project is an opportunity to apply the skills you’ve learned in the course to a data science problem (data analysis, machine learning) of your choosing. You will ideally work in teams of 2-3 students. The project will culminate in a poster presentation at the end of the semester. See the project page for more details.
Final Course Grade
Grade Calculation
Each assignment in this course falls into two buckets:
- Understanding (U): Quizzes, midterm exam.
- Application (A): Activities, final project.
Your U average is computed as the weighted average of your quiz and exam scores, with quizzes worth 35% and the midterm exam worth 65%. When calculating your U average, we drop the lowest of your quiz scores.
Your A average is computed as the weighted average of your activity and project scores, with activities worth 35% and the final project (including all its required deliverables) worth 65%.
The formula for your final course average is:
\[ \begin{aligned} \text{Final Average} = 0.7\times\min\{\mathrm{U}, \mathrm{A}\} + 0.3 \times \max\{\mathrm{U}, \mathrm{A}\} \end{aligned} \]
This means that your final average is closer to the lower of your two bucket averages. This encourages you to maintain a balanced performance across both buckets.
Your final average will be converted to a letter grade according to a standard straight scale:
| Final Average | Letter Grade |
|---|---|
| 93-100 | A |
| 90-92 | A- |
| 87-89 | B+ |
| 83-86 | B |
| 80-82 | B- |
| 77-79 | C+ |
| 73-76 | C |
| 70-72 | C- |
| 60-69 | D |
| 0-59 | F |
Instructor Discretion
We never grant a final letter grade lower than the one you earn according to the calculation above.
We may bump up your final letter grade by no more than 1/3 (e.g. B- → B) based on learning that you demonstrate outside the specific assessments. Some ways to demonstrate this learning include:
- Asking insightful questions in class which demonstrate both curiosity and engagement with required preparation.
- Attending Student Hours, especially to ask questions which demonstrate curiosity and independent effort.
- Participating actively in group work and other collaborative activities.
- Completing a project that significantly exceeds expectations in some way.
Please keep in mind that most students do not receive such a bump and that we never negotiate with individual students about their final letter grade. The only way to guarantee yourself a given letter grade is to earn the corresponding score according to the formula above.
Academic Integrity and Collaboration
Collaboration with human beings is highly encouraged in this class. We encourage you to study together and work together on the programming exercises. Use of AI systems is permitted and encouraged subject to the following restrictions and guidance. Effective collaboration, whether with a person or an AI system, helps you gain understanding, brainstorm ideas, utilize complex libraries and identify bugs. It is not having someone else do the work (and the learning) for you. You should never copy a solution from another source, whether it a classmate, course staff, a public repository or an AI system.
You are intellectually responsible for all the work that you submit for assessment. You must understand and be able to explain the code and experimental results you submit. You will complete paper-based assessments (quizzes and exams), an oral exam and orally present your project work without access to reference materials, AI systems or other outside resources. Successfully doing so requires a real understanding of the material and any submitted work.
All submitted work must be properly attributed. Your work must not contain unattributed parts written or generated by someone or something else (person or AI system). Misrepresenting another person’s work or AI system’s generated output as your own original work is an academic integrity violation. Clearly cite all sources and acknowledge all contributors (both people and AI systems). In the particular case of AI systems, make sure you are meaningfully “digesting” any output by adapting, editing and testing it such that any submitted work reflects your own understanding. Note that “AI systems” are ubiquitous and include stand-alone tools (e.g., ChatGPT web application), but also embedded tools (e.g,, GitHub Copilot in VSCode, Google Gemini in Colab) and search results (e.g., AI results in Google search).
As an informal guideline, if you are proud of how you used AI tools and would eagerly share your experience with the instructors and your classmates that is an indication you are using those tools appropriately. You should be happy to cite your usage (and we are eager to learn from how you are using these tools!). If instead you find yourself hiding, or thinking about hiding, your usage that indicates you may not be using those tools appropriately.
If you are ever unsure about what constitutes acceptable collaboration, permitted resources, etc. please ask! If you ever find yourself feeling stuck and it seems like the only way forward may conflict with the Honor Code, or even just seems little a borderline, please contact us right away. We can always come up with an appropriate path forward.
Parts of this policy adapted from HMC CS5.
Other Course Policies
Laptops
We will be using Python notebooks, executed on Google colab or locally, both inside and outside class. Please bring a laptop every day (with enough charge to make it through our 2 hour class!). If you don’t have access to suitable laptop (even if for just a single class period), please contact us immediately about access to loaner laptops.
Course Environment
You deserve to be welcomed and celebrated by our community. We embrace diversity of age, background, beliefs, ethnicity, gender, gender identity, gender expression, national origin, religious affiliation, sexual orientation, and other visible and non-visible categories. Discrimination is not tolerated in our classroom.
You deserve a learning environment free from gender-based discrimination, sexual harassment, sexual assault, domestic violence, dating violence, and stalking. If you experience these behaviors or otherwise know of a Title IX violation, you have many options for support and/or reporting. Middlebury’s Civil Rights and Title IX Office (CRTIX) can help you navigate your options. Please be aware that faculty members are Responsible Employees, which means that they are required by the College to report incidents of sexual harassment or sexual violence to CRTIX. There are resources for emotional and mental health care, advocacy, and academic support listed here, some of which are confidential.
You deserve to fully and equitably participate in our learning environment. We are actively putting effort into ensuring that course materials are screen-reader accessible, and welcome feedback on where we can do better. Middlebury’s Disability Resource Center can help you remove barriers to learning in this and other courses.
You deserve to be addressed in the manner that reflects who you are. We welcome you telling us your pronouns and/or preferred name at any time, either in person or via email. Similarly, please address your classmates according to their expressed preferences.
ADA
Students who have Letters of Accommodation in this class are encouraged to contact us as early in the semester as possible to ensure that such accommodations are implemented in a timely fashion. For those without Letters of Accommodation, assistance is available to eligible students through the Disability Resource Center (DRC). Please contact ADA Coordinators Jodi Litchfield, Peter Ploegman, and Deirdre Kelly of the DRC at ada@middlebury.edu for more information. All discussions will remain confidential.
Attribution
In addition to the inline citations, portions of the course materials were generated with a variety of AI tools, including GitHub Copilot, Google Gemini, and Claude.
© Michael Linderman and Phil Chodrow, 2026