Fall 2026 – Kenyon College
- Instructors:
- James Skon and Ellis Cain
- Meeting time:
- Monday, Wednesday, and Friday, 10:10–11:00 a.m.
- Location:
- Chalmers 200
- Office hours:
- Doctor Cain: Monday 1:00pm – 4:00pm; Wednesday 12:00pm – 1:00pm; Friday 12:00pm – 1:00pm @ Chalmers 356
- Prof. Skon: Mon, Tues, Thurs: 2:00-3:00, Thursday 9:00-10:00 (Chalmers 257)
- Tutoring (MSSC): Details to come
Course Overview
COMP 191 is an introduction to computer programming in which artificial intelligence is explicitly integrated into the learning and development process. Students will learn the same core programming concepts and skills expected in COMP 118, including algorithm development, Python, C++, data structures, files, and objects. At the same time, they will learn to use generative AI thoughtfully as a structured development partner.
The central goal is not to outsource programming to AI. Students must develop enough understanding to design solutions, read and explain code, detect errors, test behavior, and judge whether a proposed solution is correct. AI will be used to help generate, critique, debug, and refine programs, but students remain responsible for the reasoning and the finished work.
No prior programming experience is required.
Course Learning Objectives
By the end of the course, students will be able to:
- Design algorithmic solutions to computational problems.
- Write, trace, test, debug, and explain programs.
- Use variables, expressions, input and output, conditionals, loops, functions, strings, lists, dictionaries, files, and classes.
- Implement small programs in Python and C++.
- Write precise prompts that communicate programming goals, constraints, and testable requirements.
- Critically evaluate AI-generated code for correctness, clarity, efficiency, and conformance to requirements.
- Develop programs incrementally, using tests and evidence rather than trusting plausible-looking output.
- Document how AI contributed to a solution and explain the decisions they made.
- Build confidence in their ability to create useful working software.
Programming in the Age of AI
AI is a powerful tool, but it is not a replacement for understanding. In this course, students will learn a recurring workflow:
- Think: understand the problem, identify inputs and outputs, decompose the task, and design an approach.
- Prompt: communicate the goal and constraints clearly to an AI assistant.
- Evaluate: read the proposed code, trace it, test it, and identify weaknesses or mistakes.
- Refine: revise the prompt or code incrementally.
- Explain: demonstrate understanding of the final program and the decisions behind it.
A useful model is to treat AI as a junior developer who is fast, confident, and often wrong. Your job is to guide the work, recognize mistakes, and take responsibility for the result.
Texts/Online resources
This course uses several online tools for learning and assessing student progress. All of these resources are free of cost but some require the creation of a login account. It is essential that everyone participate in the associated activities as all are part of the learning process, and some are graded activities.
- How To Think Like A Computer Scientist: Interactive edition (kenyoncollege_thinkcspy_Fall26) This is an interactive book. You must first sign up for this course. Follow this link and register using your Kenyon email. Use “kenyoncollege_thinkcspy_Fall26” as the course name. You will read the sections from text as assigned in the calendar below. I strongly recommend that you to do the included problems in the text as well. The quizzes will largely be based on the readings from this text.
- C++ for Python Programmers (kenyoncollege_thinkcpp_Fall26) This is for the C++ part of the course. Follow this link and register using your Kenyon email. Use “kenyoncollege_thinkcpp_Fall26″) as the course name. Like the Python book, you will be assigned readings from this text.
- Kenyon coLearn-AI (https://csits.kenyon.edu) – This is a Kenyon created collaboritive learning system we will use in this course. This is used for in-class activities including POGIL activities, quizzes and exams. You must sign up with your kenyon email address and actual Kenyon name. Once logged in, you sign up for your section. In the “Join a Course by Code” field enter “tba”.
- coLearn-AI (colearn.ai.com) – This is the same platform as above, but running in the cloud. This allows access from off campus. This is used for assignments completed outside of class. Sign up with the same email and name as for csits.kenyon.edu.
- CodeLab This is an online platform that gives you problems to solve. You will be assigned problems on a regular basis. You can keep trying until you get the problem right with no penalty. You must sign up with your Kenyon email, then click the “+ Add A Course” button. You then add an access code. The two access codes for this class are: “KENY-33006-WKFX-70” (Python) and “KENY-33007-CCHX-70” (C++).
Methodology
This course uses a variety of learning strategies in order to both enrich and enhance learning for every student of every background, as well as to keep the course interesting. Methods include:
- Group (collaborative) activities:
- POGIL (Process Oriented Guided Inquiry Learning). Discussed below, this is a team oriented, discovery based approach to learning with small groups of students. Teams report back to the whole classroom and share their discoveries. The level of allowed AI assistance will be specified in the instructions for that particular lab.
- In class small group programming. This is to allow learners to explore and solve a problem as a small group, such that each student engages with the material and each other, experimenting, teaching, and learning together.
- Individual activities:
- Laboratory assignments. These programming assignments give each learner the opportunity to develop skill, experience, and confidence as programmers as individuals. There will be a lab assignment approximately every other week in the first half of the semester (3), and about once a week after the spring break (6). The level of allowed AI assistance will be specified in the instructions for that particular lab.
- Programming problem solving. These small guided exercises, based on the CodeLab online learning platform, provide small problems for the learners to gain experience programming with, and are automatically checked by the environment to give immediate feedback to the learner. There will be multiple sets in most weeks, with relatively more assignments in the first half of the semester.
- Reading Assignments and Daily Quizzes. For every class, the students are expected to read certain sections from the textbook (online, interactive) BEFORE the class. For encouragement and accountability, there will be a short quiz in this class every day (except for the first day, but there is a survey and syllabus quiz that should be done before the first day that will count as quiz 1). A number of low quiz scores will be dropped.
- History reflections – these small writing assignments, about one a week, give each learner the change to explore computer science in its larger historical context. We will have a brief discussion of these in class.
- Instructional Presentation and discussion. Occasionally the instructor will give a presentation related to the course topics. These will normally include discussion, and sometimes interleaved with in-class, hands on programming activities.
Attendance
Attendance and full engagement are essential because much of the learning occurs through collaborative work that cannot be reproduced by merely reading notes. Students are expected to attend every class unless they have a legitimate excuse, such as illness or participation in an official collegiate activity, and should contact an instructor before an anticipated absence whenever possible. Please note that up to 8 of your lowest quiz grades can be dropped.
Students who miss class are responsible for arranging to complete missed work when appropriate. A student who accumulates six absences may be required to withdraw or may fail the course. Tardiness or leaving during class may count as one-half of an absence. Ordinarily, credit for an in-class collaborative activity requires attendance and participation.
POGIL
Process Oriented Guided Inquiry Learning (POGIL) is a pedagogy that is based on research on how people learn and has been shown to lead to better student outcomes in many contexts and in a variety of academic disciplines. Beyond facilitating students’ mastery of a discipline, it promotes vital educational outcomes such as communication skills and critical thinking. Its active international community of practitioners provide accessible educational development and support for anyone developing related courses.
We will be learning about POGIL early in the course, and then use this method on a daily basis. You must be logged into your Kenyon account to access the activities.
POGIL Team Roles
Teams will normally have 3-4 students:
- Spokesperson
- Facilitator
- Process Analyst
- Quality Control
On a team of three, the roles will be Spokesperson/Facilitator, Process Analyst, and Quality Control.
Assignments
Due Date: All assignments are due as specified in the grading table below.
Missing Lab Assignments: Labs are an important part of this class; the effort spent on them is a crucial part of the learning process. Failure to submit labs is unacceptable: students earning 0s on two labs cannot receive a grade higher than a B- for the course; students earning three 0s on labs will receive an automatic F for the course.
Collaboration and Academic Honesty: In order to facilitate learning, students are encouraged to discuss assignments amongst themselves. Copying a solution is not, however, the same as “discussing.” A good rule of thumb is the “cup of coffee” rule. After discussing a problem, you should not take away any written record or notes of the discussion. Go have a cup of coffee or cocoa, and read the front page of the newspaper. If you can still re-create the problem solution afterward from memory, then you have learned something, and are not simply copying. (The in class assignments are exempt from this, as they are intended to be done together.)
Academic Honesty and using code you did not write: Turning in code you did not write is cheating.
- You should never receive code from other students, use code from the internet, or use instructor solutions from past semesters. Any code you submit must be written entirely by you. (See the “cup of coffee” rule under collaboration.)
- Likewise, “facilitating academic dishonesty” is a violation of academic honesty. Thus sharing your code with other students is also forbidden.
- The instructor has tools for checking the similarity of code, and will use them periodically to see if students’ code is too similar to be explained by coincidence.
- If you suspect someone has used your code, you should report it.
Computer History Reflection: Once a week you will turn in a brief reflection on some computer history fact from the Computer History Museum (Timeline) or How AI Works. One or two people people will be chosen each week to orally describe what they found in 1-2 minutes at the beginning of class. I will ask for volunteers, and everyone will speak at least a couple of times during the semester. The idea is give to us all an opportunity to explore the history of computer science, and to find something that interests each of us. Start by going to the computer history timeline, and for each assignment explore the requested years until you find something interesting. Then write up a 200-300 word reflection about what you found, what you found compelling, and why you think it is significant. Write the reflection in Moodle, and include a link to the item you found so it can be displayed while you share in class. These are due midnight before the day they will be presented (and appear in the calendar below). Late submissions will not be accepted on these assignments.
Expected Workload:
There will be more due dates in this course than in any you’ve likely taken. There will be work due several days per week in most weeks. Most of these assignments will take well under an hour, but working consistently and staying on top of what we’re doing is absolutely imperative. These assignments include CodeLab exercises, readings required for daily quizzes, history reflections, and labs. Tools for More Effective Studying.
Collaboration, Academic Honesty, and AI Use
Collaboration is encouraged during designated group design work and coLearn-AI activities. Individual work must reflect the student’s own understanding. Students may not copy another student’s code, share solutions to individual assignments, or misrepresent AI-generated work as their own reasoning.
This course is designed to scaffold your learning, so you can reach the point where tools like AI actually become helpful rather than misleading. AI use is expected when an activity or assignment permits or requires it. All such use must be transparent. Students must preserve requested prompt histories (when not using colearn-AI), identify substantive AI contributions, verify generated code, and remain responsible for every submitted line. Some exercises and assessments will restrict or prohibit AI so that students can demonstrate independent programming understanding. The instructions for each assignment determine what forms of collaboration and AI assistance are permitted.
Also, keep in mind: the final exam will be completed in class without access to AI or any digital tools. If you haven’t built real skills during the semester, that will become obvious.
AI-Assisted Lab Submissions (when not using colearn-AI)
Unless an assignment specifies otherwise, an AI-assisted lab submission must include:
- Your initial pseudo-code
- The transcript of interaction with AI
- The final program
- Tests and evidence that the program works
Students may be asked to explain or modify submitted code. Inability to explain a solution is evidence that the work does not yet meet the course objective, even if the program runs.
Grading
Grades will be entered in Moodle.
| Category | Weight | Collaboration? | AI? | Notes |
|---|---|---|---|---|
| Computer History Reflection | 5% | No | Not allowed | Due by midnight the day before. |
| coLearn-AI POGIL Activities | 10% | Yes | Allowed as specified | You must be in class to get credit for these, except in cases of excused absence. |
| AI-Assisted Labs | 35% | No | Allowed as specified | Due by midnight on the day due. |
| CodeLab | 10% | No | Not allowed | These are problems in the online learning tool CodeLab. Due by noon on the day due. You will get 100% for completing 90% of the problems assigned. |
| Quizzes | 15% | No | Not allowed | A short quiz (5 minutes) at the beginning of each class. The quiz opens 10 minutes before class, and you are encouraged to finish the quiz prior to class starting. If you are late, you will miss the quiz. You cannot make up quizzes, but the lowest 8 quiz scores will be dropped. Each quiz will include questions on the content of the reading assignment for that day, and possibly from the previous class. |
| Final Exam | 25% | No | Not allowed | In-class, 3 hours long |
| Total | 100% |
Programming Pretest and Post-test
Students will complete a programming pretest near the beginning of the semester and a corresponding post-test near the end. A common portion will also be administered in COMP 118. These assessments focus on programming understanding rather than AI use and will help us evaluate learning across the two course designs. The pretest is diagnostic and does not assume prior programming experience.
Late Work
There is no make-up for quizzes, period. As a general rule, no assignment will be accepted late, with a single exception. Each student may request a free, one-time 24-hour extension during the semester on a lab assignment. The request must be made via email before the initial deadline.
Course Schedule
The schedule may be adjusted as the course develops; please check back regularly. Each listed coLearn-AI topic is planned as an approximately 35-minute activity. Readings and assignment deadlines will be listed in the table below.
| Date | Topic | Reading | colearn-AI activity | Slides/Documents | Assignments due |
|---|---|---|---|---|---|
| Fri, Aug 28 | Course introduction Signup for services | — | POGIL introduction | Introduction | Student Survey (ungraded quiz) Create Accounts: colearn in-class colearn labs |
| Mon, Aug 31 | Intro Python, programming languages | Python Ch. 1.1-1.13 | Quiz 1 – The Way of the Program POGIL – Introduction to Python Python Demos | Introduction to Python | — |
| Wed, Sep 2 | Intro AI, Programming with Prompting, Pseudo-code | Using AI to create Programs Intro Pseudocode | Quiz 2- AI Prompting and Pseudocode POGIL – Intro to Prompting to Code | Slides AI and Computing | — |
| Fri, Sep 4 | Input and Variables Variables, data types | Python Ch. 2.1-2.4 | Quiz 3 – Input and Variable POGIL – Variables, Data Types, and User Inputs | Slides | 1930s from Comp History Timeline Programming Pretest Lab 0 opens |
| Mon, Sep 7 | Variable names and keywords, statements and expressions, operators and operands | Python Ch. 2.5-2.7 | Quiz 4 – Operations POGIL – Math Operations and Statements | Slides | — |
| Wed, Sep 9 | Algorithms, formatting data | Python Ch. 2.8-2.11 | Quiz 5 – Format POGIL – Formatting Outputs | Slides | CodeLab Set 1 |
| Fri, Sep 11 | Decision making in Python | Python Ch. 3.1-3.6 | Quiz 6 – Booleans Code Examples Examples POGIL – Boolean Expression | Slides | Lab 0 due 1940s from Comp History Timeline |
| Mon, Sep 14 | Decision making in Python continued | Python Ch. 7.1-7.3 | Quiz 7 – Complex Booleans Operator Precedence POGIL – Complex Booleans | Slides | Lab 1 opens |
| Wed, Sep 16 | Selection in Python | Python Ch. 7.4-7.5 | Quiz 8 – If-Then POGIL – If-Then-Else | Slides Selection | CodeLab Set 2 |
| Fri, Sep 18 | Loops | Loops | Quiz 9 – Loops Triangle NumberGuess Circle POGIL – While Loops | Slides For Loops | 1950s from Comp History Timeline |
| Mon, Sep 21 | Nested Selection | Python Ch. 7.6-7.7 | Quiz 9 – Nesting POGIL – Nested If-Else statements | Slides Nested If | |
| Wed, Sep 23 | Nested loops | Python Ch. 8.1-8.3 | Quiz 10 – Looping loops POGIL – For loops More fun: Computing Loan Payoff | Slides Nested Loops | Lab 1 Due |
| Fri, Sep 25 | Strings | Python Ch. 9.1-9.5 | Quiz 11 – Strings POGIL – Strings | Slides | 1960s from Comp History Timeline CodeLab Set 3 Lab 2 opens |
| Mon, Sep 28 | Strings continued | Python Ch. 9.6-9.9 | Quiz 12 – Strings POGIL – Doing Things with Strings | Slides | |
| Wed, Sep 30 | Turtles, graphics | Python Ch. 4.1-4.6 | Quiz 13 – Turtles Turtle Example POGIL – Turtles | Slides Turtle Guide Turtles | |
| Fri, Oct 2 | Strings continued | Python Ch. 9.10-9.19 | Quiz 14 – Strings POGIL – Extended Strings | Slides Strings | 1970s from Comp History Timeline Lab 2 due |
| Mon, Oct 5 | Built-in and void functions | Python Ch. 5.1-5.4 | Quiz 15 – Functions POGIL – Built-in and void functions | Slides | Lab 3 opens |
| Wed, Oct 7 | Functions | Python Ch. 6.1-6.5 | Quiz 16 – Functions POGIL – Functions that return values | Slides Functions | |
| Fri, Oct 9 | No class – October Break | ||||
| Mon, Oct 12 | Parameters & local variables | Python Ch. 6.6-6.10, 7.8 | Quiz 17 – Functions POGIL – Complex Functions and Composition | Slides Variable Scope | CodeLab Set 4 Lab 3 due Lab 4 opens |
| Wed, Oct 14 | Reading files | Python Ch. 11.1-11.5 | Quiz 18 POGIL – Reading Files Emily Dickinson Experiment | Slides Reading Files | CodeLab Set 5 |
| Fri, Oct 16 | Writing files | Python Ch. 11.6-11.7 | Quiz 19 POGIL – Writing Files BabyNames | Slides FileWriteBasicExample | 1980s from Comp History Timeline Lab 4 due |
| Mon, Oct 19 | Lists, passing lists | Python Ch. 10.1-10.5 | Quiz 20 POGIL – Lists More Emily Dickinson | Slides Lists List Functions | Lab 5 opens |
| Wed, Oct 21 | Lists and strings | Python Ch. 10.6-10.19 | Quiz 21 POGIL – More Lists and Strings | Slides | |
| Fri, Oct 23 | List comprehensions | Python Ch. 10.23-10.25 | Quiz 22 POGIL – Comprehending Lists | Slides List Comprehension Examples | 1990-1994 from Comp History Timeline Lab 5 due |
| Mon, Oct 26 | Dictionaries | Python Ch. 12.1-12.3 | Quiz 23 POGIL – Dictionary Dictionary Tutorial and Examples | Slides Dictionaries | Lab 6 opens |
| Wed, Oct 28 | Dictionaries continued | Python Ch. 12.4.-12.5 | Quiz 24 POGIL – Dictionary Activity Exercises | Slides | 1995-1999 from Comp History Timeline |
| Fri, Oct 30 | Python Classes | Python Ch. 17.1-17.6 | Quiz 25 POGIL – Special Activity | Slides Classes Tutorial | |
| Mon, Nov 2 | Classes continued | Python Ch. 17.7-17.9 | Quiz 26 POGIL – Objects and Classes | Slides Employee Activity | 2000s from Comp History Timeline Lab 6 due |
| Wed, Nov 4 | AI IDE setup, introduction to Github | Install VS Code, Create Github account | — | Slides | Lab 7 opens |
| Fri, Nov 6 | AI IDE | — | — | — | |
| Mon, Nov 9 | AI IDE | — | — | — | |
| Wed, Nov 11 | Introduction to C++, first program | Sign up for C++ textbook | Quiz 27 POGIL – C++ Intro | Slides | Lab 7 due |
| Fri, Nov 13 | C++ Data Types, control structures | CPP Ch. 1 | Quiz 28 POGIL – C++ Intro continued | Slides | 2010s from Comp History Timeline Lab 8 opens |
| Mon, Nov 16 | C++ Strings, Arrays, Vectors | CPP Ch. 2 | Quiz 29 POGIL – Vectors and Arrays | Slides C++ Arrays vs Vectors C++ Vectors | CodeLab C++ Set 1 |
| Wed, Nov 18 | C++ Functions | CPP Ch. 3 | Quiz 30 POGIL – Functions Type Conversion | Slides C++ Functions | CodeLab C++ Set 2 |
| Fri, Nov 20 | C++ Conditionals and Recursion | CPP Ch. 4 | Quiz 31 POGIL – Conditionals and Recursion | Slides | Lab 8 due |
| Nov 23–27 | No class – Thanksgiving Vacation | ||||
| Mon, Nov 30 | C++ Files | CPP Ch. 6.1-6.6 | Quiz 32 POGIL – C++ Files Emily Dickinson Searches and Counts | Slides C++ Reading and Writing Files | Lab 9 opens |
| Wed, Dec 2 | C++ Classes | C++ Classes Reading C++ Classes Tutorial | Quiz 33 POGIL – C++ Classes Account Class | Slides C++ Class Intro | CodeLab C++ Set 3 |
| Fri, Dec 4 | C++ STL Vectors | C++ Vectors C++ Vector Erasing Elements | Quiz 34 POGIL – C++ Vectors Random Numbers in C++ | Slides Example using Vectors | Lab 9 due |
| Mon, Dec 7 | C++ STL Pairs | C++ Pairs C++ Sort Function | Quiz 35 POGIL – C++ Pairs Example:Naughty or Nice? | Slides | CodeLab C++ Set 4 (Due Saturday, Dec 5, Midnight) |
| Wed, Dec 9 | C++ STL Map | C++ STL | Quiz 36 POGIL – C++ STL MAP | Slides Several Map Examples Word Count C++ Map Example | |
| Fri, Dec 11 | AI model comparisons | — | — | — | |
| Thursday, Dec 17 | FINAL EXAM | Thursday, December 17, at 1:30-4:30 pm | Location: The regular classroom | — | |
Accessibility and Accommodations
Students who anticipate that they may need accommodations because of the impact of a learning, physical, or psychological disability are encouraged to meet privately with an instructor early in the semester. Students must also contact Student Accessibility and Support Services (SASS), 740-427-5041 or sass@kenyon.edu, as soon as possible to verify eligibility for reasonable academic accommodations. Except in extraordinary circumstances, accommodations must be certified and discussed with the instructors at least one week before they are to take effect.
Non-Discrimination, Civil Rights, and Title IX Compliance
Kenyon College does not discriminate in its educational programs and activities on the basis of race, color, national origin, ancestry, sex, gender, gender identity, gender expression, sexual orientation, disability, age, religion, medical condition, veteran status, marital status, genetic information, or any other characteristic protected by institutional policy or state, local, or federal law. The requirement of non-discrimination in educational programs and activities extends to employment and admission.
As faculty members, we are deeply invested in the well-being of each student we teach and will do our best to help with course-related and other concerns. Students should know, however, that faculty are mandated reporters of incidents of harassment, discrimination, intimate-partner violence, and stalking. We cannot keep information involving sexual harassment, sexual misconduct, interpersonal violence, or other harassment or discrimination based on a protected characteristic confidential. The Health and Counseling Center, College chaplains, and New Directions Domestic Abuse Shelter & Rape Crisis Center are confidential resources.
ADA & Section 504 Student Grievance Procedure
