Syllabus

CSC 313 is an advanced elective course in the Grinnell computer science major. The class builds on knowledge and skills you should have from CSC 213, while introducing you to the world of systems research. This syllabus layous out the structor for the course and your responsibilities; please review it carefully and ask questions during class or by email if anything is unclear.

Course Basics

This course includes several graded components, described in more detail in the rest of this syllabus:

Participation
Attend class prepared to contribute to discussions and collaborative work. Attendance is required, but your absence will be excused if you notify the instructor by email at least 15 minutes before the start of class.
Reading Journals
You will write a reflection about each assigned paper during the semester. Reflections are a useful way to prepare for class discussion, and to think through the problems and techniques that make for good systems research work.
Labs
Complete labs individually or with your chosen group(s) during the first half of the semester.
Final Project
Complete a group or individual final project of your choice. In addition to submitting your implementation, you will present your project to the class during our scheduled final exam time.

Workload

The time required for these activities will likely vary substantially from student to student and from one part of the course to another. Given that variation, it is difficult to estimate the time individual students will need to devote to this course. The college expects that a four-credit course should take approximately 12 hours per week, including time in class. That means you should expect to spend 8 hours outside of class on readings, reading journals, labs, and your project. Some weeks will be lighter than others, but if you find you are consistently spending far more than 12 hours per week on this course please meet with me to discuss the workload and what we can do to address it. The solution may involve adjustments to class pacing but is also likely to include strategies you could take to complete your work in less time.

Acceptable Resources

You can use resources linked on this website for most of your work in the course, but you are also welcome to explore other resources when you encounter concepts, terminology, or techniques you aren’t familiar with in academic papers or labs. Whenever you use outside resources you must cite them in the work they inform, whether that is a lab implementation, your final project, or a reading journal.

Collaboration is an important part of learning in this course, but collaboration policies differ between reading journals, labs, and the final project so make sure you read and understand the policies for each assignment.

The use of AI tools like ChatGPT, Gemini, and Claude is not permitted for labs, class discussions, reading journals, or the final project. Other resources may be acceptable, provided they are clearly cited in the work you submit.

Attendance and Participation

You are expected to attend and participate during class. To participate in class you should:

  • Prepare for class by completing assigned readings
  • Arrive on time and stay for the entire class period
  • Actively engage in whole-class discussions and activities
  • Work respectfully and supportively with classmates

You will earn credit for every day of class that you meet the above requirements, or for any day when you have an excused absence.

If you need to miss class you may do so without penalty provided you give timely advance notice. Please send me an email informing me that you will be absent the week before any foreseeable absences (athletic events, religious observances on the College’s high holy days, etc.). You do not need to share details about your absence for it to be excused; advance notice is sufficient.

If you are sick, please do not come to class. Absences for illnesses will be excused as long as you send notice by email at least 15 minutes before the start of class. You do not need to share any information about your illness or document your illness for it to be excused.

When you miss a day of class you are still responsible for the material covered in class. You should review readings and notes from class and consult with peers who were in class on the day you missed to catch up. I will not give make-up lectures for missed days, although I am happy to answer questions when students have made an effort to catch up on missed material.

If you miss class frequently—excused or not—it may be difficult for you to meet the learning outcomes for this course. I may ask to discuss frequent absences with you if I am concerned about your progress in the course.

See the grading section for an explanation of how attendance and participation impact your final grade in the class.

Reading Journals

There are 17 assigned reading journals this semester. Reading journals must be completed one hour before class on the day the journal is due.

You are welcome to read and discuss papers with other students before writing your reading journals, but the work you submit must reflect your own thinking about the paper. You are welcome to include points made by others as part of your journal, provided you include appropriate citation and these outside contributions do not replace your own judgements of the work. The use of AI tools for writing reading journals is not permitted.

Reading journals will be evaluated using the following scale:

one point
The submitted reflection meets requirements and shows clear, deep engagement with the content of the assigned reading.
zero points
The submitted reflection is incompmlete or does not show appropriate engagement with the content of the assigned reading.

See the section on grading for an explanation of how reading journals impact your overall grade in the class.

Making Up for Missed Reading Journals

Reading journals cannot be submitted late, as they are meant to help you prepare for our discussion of the paper in class. However, you can use a token to submit a make-up reading journal if you receive a zero or do not submit a reading journal.

To submit a make-up reading journal, you will first need to find another paper that is at least somewhat related to the topic addressed in the original assigned paper. Send me a link to your proposed paper via email so I can review and approve the paper. Once I have approved the alternate paper, you will have one week to read it and submit a reading journal for that paper. You will be limited to one make-up reading journal submission per week, regardless of how many tokens you have or how many prior weeks you submitted (or did not submit) a make-up reading journal.

The papers you use for make-up reading journals should come from selective systems research conferences such as SOSP, OSDI, ASPLOS, USENIX ATC, or other similar venues. One place to start looking for relevant work is in the citations of the original paper, or you can use Google Scholar to look for papers that cite the work we read for class.

Labs

We will complete four labs during the semester. You can choose to work on labs individually or in pairs. If you do work with a group, you should complete the work together rather than dividing it up between group members. You may talk with other students in class about conceptual questions or course topics related to labs, but the work you submit (usually code) should be entirely your own work or that of your lab group.

Labs will be evaluated using the following scale:

one point
Submitted work meets the requirements of the lab and follows good coding practices.
zero points
Submitted work does not meet all requirements for the lab, or does not follow good coding practices.

If you have not finished a lab by the deadline, you can submit it up to 48 hours late for full credit by using a token. You do not need to notify the instructor to use a token; all labs will have a 48 hour late window and you can use a token simply by submitting during that window. You cannot combine multiple tokens to submit work more than 48 hours late.

If you receive a zero on a lab you can use a token to resubmit the work to potentially improve your grade. However, if you did not submit the lab by the deadline or during the 48 hour late window you cannot resubmit the work with a token. It is always best to submit your work by the deadline or during the late window, even if it isn’t finished. However, incomplete work must show evidence of significant effort to be eligible for resubmissions. Submitted work that does not show evidence of significant effort will be treated as if there was no submission.

See the section on grading for an explanation of how labs impact your overall grade in the class and policies for earning tokens.

Final Project

The semester will conclude with a final project. The final project will be less prescriptive than the labs; you will have choices to make about the work you complete, and you can choose to work individually or with a group. You can read more on the project page as we get closer to the end of the semester.

Your final project will also include a presentation during our scheduled final exam time. The presentation is a required element of the final project and must be completed during the scheduled time to earn full credit. If our scheduled exam time conflicts with your exam for another course, please meet with the instructor as soon as possible so we can make alternate arrangements.

Your final project will be equivalent to two labs. Final projects will be evaluated with the following scale:

two points
The submitted work and presentation met all requirements for the project. There were no significant code quality issues and the presentation was clear and well organized.
one point
The submitted work and presentation met most requirements and show evidence of significant effort. However, there were significant issues with code quality, functionality, or the presentation.
zero points
Submitted work does not meet the requirements of the project, and the presentation was either missing or substantially incomplete.

Because final projects are due at the end of the semester, late submissions and resubmissions will not be possible for the project unless you have an incomplete approved by the registrar. See the section on grading for an explanation of how the final project impacts your overall grade in the class.

Grading

Your overall grade in the class will be the highest one that satisfies the conditions over an entire row in the table below.

Letter Grade Unexcused Absences Reading Journals Labs (4) and Final Project (2)
F More than 8 Fewer than 8 Fewer than 3
D 8 or fewer 8 or more 3 or more
C 6 or fewer 10 or more 4 or more
C+ Two columns reach C level and one reaches B level.
B- One column reaches C level and two reach B level.
B 4 or fewer 12 or more 5 or more
B+ Two columns reach B level and one reaches A level.
A- One column reaches B level and two reach A level.
A 2 or fewer 14 or more 6

As an example, if you were to finish the course with 4 unexcused absences (B level), 14 reading journal points (B level), and 6 lab/final project points (A level), you would receive a B+. If you were to reach the A level with one more column you would instead receive an A-. To earn an A, you would need all three columns to reach the threshold for an A.

Note: The number of reading journals required for each grade level was reduced by one after a schedule update in March.

Tokens

Every student will start the semester with one token that you can use to submit a lab late, resubmit a lab that did not receive credit, or to submit a make-up reading journal. You can earn more tokens by attending computer science department events such as CS Table, CS Extras, and selected other activities. After participating in the activity, send me an email to let me know you attended the event (even if I saw you there).

Course Policies

Academic Honesty

Students are expected to know and abide by Grinnell College’s Academic Honesty policy. Except where explicitly prohibited, you may collaborate with peers in class, other students, and the instructor on work for this course provided that collaboration is attributed.

Any group work you turn in should include the names of all group members at the top of the first page. Turning in work with multiple people listed as authors implies that all members of the group agree with what is presented. If a group member does not agree with some part of the work, the group should continue to discuss and revise the material until agreement is reached. In summary, a group activity is a joint effort, and all group members have equal responsibility for the finished product.

You may be tempted to look for answers and ideas online when things get difficult; feeling stuck is a normal part of learning, and there are resources to help you. You are welcome to use many online resources when you are trying to understand a research paper or a technique you are using in a lab, but not as a source of solutions to assigned work. You may not use ChatGPT, GitHub Copilot, or other AI assistance tools to summarize papers, write reading journals, or to produce code that you submit for your labs or final project.

If you have questions about the academic honesty policy or how to appropriately attribute collaborative work, please ask. Asking about course policies is never an academic honesty violation, but violating academic honesty policies is a serious issue whether you do so knowingly or unknowingly.

Technology Usage Policy

You may not use your cell phone during class. You should turn off or at least silence your phone during class time. Using these devices distracts you and those around you.

You may not record video or audio from class unless you have a documented accommodation that requires it. If this applies to you, please notify me before class period if you intend to record during class time.

You may not use AI assistance tools like ChatGPT, Gemini, Claude, and GitHub Copilot to summarize, write, or code for you. You may find other uses for these tools—a source of demonstration code for a new technique, or a way to ask questions about unfamiliar terminology—but I encourage you to prioritize human-created resources over AI tools. These tools can sometimes be helpful, but they often “help” by hallucinating information that doesn’t actually exist, which usually wastes your time.

Submitting work produced by an AI tool without citation is a violation of the academic honesty policy and will be handled through the College’s formal academic honesty process. Submitted work that includes text or code produced by an AI tool (with citation) will receive an automatic zero and may not be eligible for resubmission.

Accommodations

My goal with this course is to ensure every student has the opportunity to learn and succeed in the class. The subsections below outline the institutional and course policies to support students with disabilies, who need additional support in their learning, or who must miss class for religious observations or preganancy-related conditions.

Students with Disabilities

Grinnell College makes reasonable accommodations for students with documented disabilities. Students with disabilities partner with the Office of Disability Resources to make academic accommodation letters available to faculty via the accommodation portal. To help ensure that your access needs are met, I encourage individual students to approach me so we can have a discussion about your distinctive learning needs and accommodations within the context of this course. If you have not already worked with the Office of Disability Resources and believe you may require academic accommodations for this course, Disability Resources staff can be reached via email at access@grinnell.edu, by phone (641-269-3089), or by stopping by their offices on the first floor of Steiner Hall.

Religious Observances

I encourage students who plan to observe holy days that coincide with class meetings or assignment due dates to consult with me in the first three weeks of classes so that we may reach a mutual understanding of how you can meet the terms of your religious observance and also the requirements for this course.

Academic Support

If you have other needs not addressed above, please let me know soon so that we can work together for the best possible learning environment. In some cases, I will recommend consulting with the Academic Advising staff: http://www.grinnell.edu/about/offices-services/academic-advising. They are an excellent resource for developing strategies for academic success and can connect you with other campus resources. If I notice that you are encountering difficulty, and I have reached out to you and not received a response, or if you have missed multiple class sessions or are not meeting our class objectives repeatedly, I will submit an academic alert via Academic Advising’s SAL portal. This notifies you of my concern, along with the Academic Advising team and your advisor(s), so that they can reach out to you with additional offers of support.

Grinnell College is committed to compliance with Title IX and to supporting the academic success of pregnant and parenting students and students with pregnancy related conditions. If you are a pregnant student, have pregnancy related conditions, or are a parenting student (child under one-year needs documented medical care) who wishes to request reasonable related supportive measures from the College under Title IX, please email the Title IX Coordinator at titleix@grinnell.edu. The Title IX Coordinator will work with Disability Resources and your professors to provide reasonable supportive measures in support of your education while pregnant or as a parent under Title IX.

Resources

Course Website and Email

You are responsible for keeping up with any information about the course that is distributed via this website or by email. The website is the definitive source for the course schedule and policies. I will send occasional reminders and announcements by email, so make sure you keep up with your inbox.

Textbook

There is no required textbook for this course; all readings will be provided or linked from the course website.

Office Hours

Because this is an advanced course, most of your questions or concerns are likely best addressed in office hours. I will keep regular bookable office hours during the semester, but you are also welcome to drop by when I am unbooked. If my office hours schedule does not align with your availability we can find another time to meet; just send an email with some possibilities that work for you and I will get back to you as quickly as I can.