CS 399 & 400: Senior Seminar & Integrative Exercise (Fall 2025)

Based on materials courtesy of Profs. Layla Oesper, Jeff Ondich, & Anna Rafferty

Table of Contents

  1. Course Personnel & Materials
  2. Timeline Overview
  3. Deliverables
  4. Expectations
  5. Suggestion for Success
  6. Getting Help
  7. Evaluation
  8. Doing Honest Work

Course Personnel & Materials


Instructor: Jean Salac (she/her)

Classroom: Olin 304

Time: 2a (Mondays & Wednesdays 9:50-11am, Fridays 9:40-10:40am)

Course Schedule: You can find important deadlines in the course schedule.

Student Drop-In Hours (also known as Office Hours):



Overview


You can find further details on this comps project in the project description.

  • Week 1: Background reading and information. Small teams will be formed by the end of Week 1.
  • Week 2: Begin planning your goals and deliverables. Write and revise your project proposal. Set up version control, communication channels, and other collaboration tools.
  • Weeks 3-7: Continued independent project development and other related activities.
  • Week 8: Final testing and development, beginning preparing posters and putting results into the final team webpage.
  • Week 9: Poster presentations at the Comps Gala (Thursday, November 10, 3:30-7:00 pm).
  • Week 10: Finalize team webpage & oral exams. Peer evaluations due.
  • End of Exam Period: All project data due: code, documentation, website, other deliverables, etc.



Deliverables


Individual

  1. Lab Notebook: Your lab notebook is a google doc that is at minimum, viewable by Carleton accounts and includes your working notes as you move through the project; please name your doc [Your last name]CompsLabNotebook; e.g., mine would be SalacCompsLabNotebook. This document is intended to help you organize your work, documenting your progress and helping you to get started again quickly next time you work. You should write in the notebook every time you’re working on the project outside of a team meeting. Unless otherwise asked, you should generally take note of:
    • What you’re working on (e.g., “Focused on loading the dataset from files on disk into a dataframe that we can work with in pandas.”)
    • Anything you need to get answered to make progress next time (e.g., “Need to ask Sam how he came up with the unit tests.”)
    • The status of the thing you’re working on when you finish (e.g., “Finished the function foo that loads the data into a dataframe. Tested it and ensured if works if called like foo(“path/to/datset.csv”). Still has bug that the last field is cut off.”).
    • Next steps for when you next work on the project (e.g. “Next time need to fix the bug so that the last field loads properly and run the unit tests.”)
    You’re welcome to write anything else in your entries that will help you. For instance, when working on making sense of a paper, I encourage you to write a short summary of the part of the paper you’re focused on, put in screenshots of any important tables/figures/equations and describe your understanding of them, and write down questions to discuss with your team.
  2. Weekly Status Reports: Once you start independent project development, you will submit weekly status reports to Moodle. This should include (a) what progress you made in the last week, (b) what stumbling blocks you’re currently hitting and need help with, and (c) what your goals are to accomplish in the coming week. I suggest writing your status update in your Lab Notebook and then copying that text to the submission form on Moodle. Status Reports will generally be due on Fridays.
  3. Poster: Starting in Week 8, you will be responsible for creating a poster that highlights your individual contributions to your team project. You will present your poster during the Comps Gala Thursday of Week 9.
  4. Oral Exam: Your oral exam will be conducted by one Lead Examiner (a CS professor other than your advisor). One other professor may be present for your exam, for reasons that likely have nothing to do with you (e.g., to help us ensure consistency in style across different examiners). Do not be concerned by the presence or absence of a second examiner. Near the end of your CS400 term, your examiner will contact you to schedule your exam. Read this guide for further details on CS Comps oral exams.

Team

  1. Project Website: All Comps materials should be posted on your Comps web page. This will be posted on the CS department website and the Carleton digital comps archive.
  2. Project Code and Documentation
  3. There may be other deliverables that are specific to your group, depending your team proposal.

Expectations


Attendance: Attendance at Comps meetings is required. More than 5 unexcused absences during our scheduled M/W/F sessions is an automatic comps failure.

Independent Work: Comps provides you an opportunity to work independently on a project. This will likely feel very different from many of your previous classes as you will be given much less structure than you may be used to. This is part of the process of comps - you will learn how to use many of the skills you have been building up during your time at Carleton to figure out how to move your project forward. However, be aware that there may be moments when you feel lost or out of your depth. This is normal. You can always go to your comps advisor if you need advice. But figuring out how to move forward when given an ambiguous situation will likely be a useful skill for you to develop for life after Carleton.

Late Work: It is imperative that you make the stated deadlines for submitted work. This is especially true for large deliverables such as the project proposal (so that you can receive feedback), poster (which has a hard deadline for getting printed on time) and final deliverables. If a situation arises that impacts your ability to submit something by the stated deadline then you must contact your comps advisor as soon as possible, preferably before the deadline.

Individual:

  • Be on time to all meetings, both with and without the advisor
  • Participate fully in all meetings
  • Approach the project and your teammates with professionalism, both inside and outside of meetings:
    • address your teammates and advisor politely and inclusively
    • take responsibility for making time to do your work
    • document your code appropriately
    • document what you are doing/thinking/working on/intentions using your lab notebook
    • work with instead of against your teammates (e.g. talk *before* rewriting somebody else's code, don’t take credit for other’s work, contribute your fair share)
    • acknowledge problems directly and as early as possible so they can be resolved
  • Work proactively. Rather than waiting for someone to tell you how to contribute, seek out ways to contribute. Do what you say you will do, on time and completely.
  • Identify a way you can contribute that is meaningful and technically “hefty” to the project.
  • Keep your advisor in the loop. Share what you are contributing. Ask questions. Let them know about problems when they arise, particularly if the group is having trouble solving the problems on their own.
  • Don’t miss meetings, either with your teammates or with your teammates and advisor. Recall, more than 5 unexcused absences during our scheduled M/W/F sessions is an automatic comps failure.
  • Write notes in your lab notebook everytime you work on the project.
  • Submit your weekly updates on time every week.

Team:
  • Work consistently throughout the term. There is always something to do, whether that’s identifying sources in the literature, sketching the architecture, or finding and squashing bugs.
  • Build each other up. Find each other’s strengths and celebrate/play off of those. Provide encouragement to your teammates. Help each other when someone is struggling.
  • Have a set meeting time at least once each week outside of our class times. This can (and should likely be) a working meeting, where you are all working on the project, and having a set time makes it easy to collaborate.
  • Communicate effectively. Address each other professionally in person and in writing (if you wouldn’t say it to your boss or your professor, don’t say it to your teammate). Work together. Acknowledge problems directly and as early as possible, and work together (and with your advisor) to resolve them. Teams that spend time on the collaboration part of the project tend to be more successful; consider setting aside 5 minutes at the beginning of all group meetings without your advisor to talk about how teamwork is going and any issues that have arisen.
  • Make a plan with concrete, staged goals and many intermediate stopping places.
  • Identify all the scary unknowns and solve or mitigate them during the fall term.
  • Divide work effectively. Everybody has something useful to do that clearly advances the project. (This one is hard.)
  • Be sure at the end of each meeting every person in the group has a concrete "next step" to take, even if it's just a very small first step in their next task.
  • It's okay to make changes to priorities/ambition level/algorithms/architecture, but it's only okay when the rest of your team (and your advisor) knows about it.
  • Rotate who is in charge of the agenda for the meetings each week (both with and without your advisor).

Advisor:
  • Facilitate the group owning and directing the project, including stepping back to allow you to work through challenges.
  • Provide advice and suggestions for how to move through stumbling blocks and for deciding what direction to take the project.
  • Ask questions about the project and approach, listen carefully, and follow up to try to ensure that I understand and you understand. The main goal of comps is increased understanding both of how to do a larger scale, independent project and of the domain in which you’re working. I’ll push you to explain technical concepts in order to help you increase your understanding.
  • Make time during our three weekly sessions for at least one formal and one informal check in with your whole team.
  • Provide a welcoming environment for students to bring up concerns. You are always welcome to contact me privately if there’s something you’d like to talk about; group dynamic issues often feel awkward to bring up, but addressing them early generally leads to much better outcomes than hoping that they’ll be resolved on their own. While I know that you’ll handle many group dynamic issues on your own, I’m happy to help and provide guidance.
  • Ensure at the end of each group meeting that we’ve agreed on at least one thing the team will be reporting back progress on for the next meeting.
  • Help you to evaluate how well the project direction is fulfilling the project description’s goals and the goals you set out in the project proposal during fall term. Hold you accountable for making sure your project is of appropriate scope.
  • Give feedback about how I see your progress at the end of fall term, as well as occasional brief written or verbal comments about your lab notebooks.
  • Encourage you and help you to be successful in the goals you set for yourself and your team.



Suggestions for Success


  • Identify the tools you’ll be using for collaboration. This includes how you’ll be doing version control as well as how you’ll track progress on tasks/bugs/etc. You should minimally have at least one team chat; make sure notifications are on. Make sure everyone on your team is familiar with git and decide on policies for branching and merging.
  • Design an overall plan for your code structure early (often a class hierarchy with detailed interfaces; sometimes an interconnected collection of separate tools; if you’ll be using existing libraries - identify what those will be)
  • Identify a project structure to ensure that you’ll keep moving along. This might involve designating one person who fulfills some “project management” roles or rotating that leadership throughout the group. For meetings as a team, I strongly suggest having a different person lead and bring the agenda each time, and including a few minutes at the beginning of every meeting to discuss the team dynamic.
  • Identify data that you’ll need for your project, and make sure that there is a concrete path to getting that data.
  • If you’re working with a technology that is new to you, come up with a plan for how you’ll familiarize yourself with it and start that plan early. For example, if you need to work with a new language, you might as a team identify a good tutorial and make sure you complete it early on. Talk to me for suggestions.
  • Get into the habit of making notes in your lab notebook every time you work on the project. Figure out a structure that works for you so that you’re able to quickly pick up where you left off, and you don’t have to re-do work because you’ve forgotten what you did last time.



Getting Help


Student Drop-In Hours: Student drop-in hours are a great time to clear up any lingering confusion you may have about certain concepts, work through ideas, or just talk about something in the course or in computer science generally or in life that’s piqued your interest. These time slots are for you, so use them! If for whatever reason you cannot make it to my student drop-in hours, feel free to make an appointment to see me (info at the top of this page).

Accommodations for Students with Disabilities: Carleton College is committed to providing equitable access to learning opportunities for all students. The Office of Accessibility Resources (Henry House, 107 Union Street) is the campus office that collaborates with students who have disabilities to provide and/or arrange reasonable accommodations. If you have, or think you may have, a disability (e.g., mental health, attentional, learning, autism spectrum disorders, chronic health, traumatic brain injury and concussions, vision, hearing, mobility, or speech impairments), please contact OAR@carleton.edu or call Sam Thayer (’10), Director of the Office of Accessibility Resources (x4464), to arrange a confidential discussion regarding equitable access and reasonable accommodations.

Assistive Technologies: The Assistive Technologies program brings together academic and technological resources to complement student classroom and computing needs, particularly in support of students with physical or learning disabilities. Accessibility features include text-to-speech (Kurzweil), speech-to-text (Dragon) software, and audio recording Smartpens. If you would like to know more, contact aztechs@carleton.edu or visit go.carleton.edu/aztech.



Evaluation


Comps (both CS 399 and CS 400) is graded on S/Cr/NC basis. You can find further details in the CS Department rubric for measuring success in Comps. In general, if some part of your work on comps does not initially meet expectations, you will be given feedback and an opportunity to revise your work. If you are concerned about your progress through comps you should reach out to your advisor.



Doing Honest Work


AI-Assistance

Comps is a chance for you to learn a lot in a number of different modalities (reading papers, writing code, conveying ideas in both oral and written formats, etc.). There may be many places during this process where an AI tool may be useful to help you learn. But, you also need to be aware that relying too heavily on any AI tool may also circumvent your learning. As such, it will be imperative that you are cognizant and intentional of any ways that you use AI tools during this project.

Once your small teams are formed, you will complete a team AI policy starting from the policy listed below (which you will be allowed to amend). Until then, you should follow the guidelines listed below and ask your comps advisor if you ever have any questions.

  • For non-code, everything you write should be written by someone in your group. If you want to improve its tone/flow/etc, have your team, your comps advisor, or someone from the writing center help - don’t ask ChatGPT to rewrite it/polish it/edit it/etc.
  • For code, your group should agree on the degree to which you can use Copilot or ask ChatGPT/etc, and write down what you decide. You must be able to explain any code in your project, and you must thoroughly test all code (especially that produced with assistance by generative AI). You should document use of these tools in your final deliverables, just as you’d document if you got assistance from someone outside your group.
  • You can discuss whatever you like with ChatGPT/etc, although if you have any private data, you should be mindful of that. You should corroborate information with other sources - it’s easy to believe that “since ChatGPT said it, it’s right,” but that’s not always the case. LLMs have been documented to provide inaccurate information since they are trained to select the highest-probability tokens next, regardless of correctness. Therefore, it is your responsibility to ensure the accuracy of your submitted work.
  • You should not input anything into ChatGPT/etc that someone else wrote and that you don’t have their permission to put into it. (Whether the writer is your comps advisor, a classmate, or someone you don’t know.)
  • If you aren’t sure if a proposed use of AI would be appropriate, talk to your comps advisor.

Per Carleton policy, I am required to report cases of suspected academic dishonesty to the Dean's office.