We might need to make changes to the syllabus or schedule during the term. If so, we will announce those changes.
Computer Science Pragmatics
FA 2026
Prerequisites
- ENGR 101 , ENGR 151 , EECS 180 , EECS 183 , EECS 280 (co-enroll) , or EECS 281 (co-enroll)
Course Resources
- Ed Stem
- Gradescope
- Course server user account form
- To borrow a departmental laptop for the semester, contact the EECS Departmental Computing Organization at help@eecs.umich.edu
- For general issues create a post on Ed. For more sensitive issues, please email the course staff directly at eecs201admin@umich.edu.
Lectures
Section 001 (23043)
Mw 3:00 pm - 4:30 pm
đ«220 Chrysler
đ§âđ«Amir Kamil
Staff
Course Structure
This course is designed with several objectives in mind:
- Introduce topics in the development of and usage of computing systems, such as version control
- Cultivate research skills for reading up on and picking up new tools in a constantly changing computing landscape
- Provide hands on experience with mature and prevailing tools and technologies that have survived the test of time
This class is run as a âflipped classroomâ, where the bulk of information transfer happens at home or on your own time via videos made by yours truly and in-person class time is used as a more interactive environment for questions and answers, hands on activities, and time to complete your assignments while having direct access to the course staff. This approach was taken as a means to optimize means of instructor contact: videos allow the instructor to provide you more tightly edited content to condense the amount of time needed to convey information and frees up more in-person time for interactions with the instructional staff that arenât dry information.
In-person classes will be held in person and will be recorded. Attendance is optional and can earn you additional points.
To facilitate the goals of the class, there will be two assessment types: âBasicâ and âAdvancedâ. Basic assessments are in the form of weekly assignments designed to guide and ease students into picking up a new tool or method. Advanced assessments come in the form of weekly assignments, referred to as âadvanced assignmentsâ. These assessments are designed for students to practice researching additional information and apply it towards solving problems that may very well crop up in real computing systems. The weekly advanced assignments are structured similarly to the weekly basic assignments except with less guidance.
Each week a set of videos will be released about the weekâs topic along with the associated Basic and Advanced assignments. The Basic assignment will usually be the topic of a given weekâs in-person class and time will be reserved for you to work on either assignment with the opportunity to ask the instructor for help.
Basic assignments that will contribute points to the Basic category. Advanced assignments that will contribute points to the Advanced category. Not all assignments will have to be completed: the grading section will have details on how you can organize your efforts.
Work and Grading
This course utilizes a point-accumulation method whose point sums map to a typical grading scale. That means that there is no averaging of grades: to make the letter grade you want, you simply have to accumulate enough points for it by completing assignments. There are multiple categories of points, and the âadjustedâ sum of each categoryâs points is used to determine your final letter grade. Each category may have certain rules on how many points you can earn from them, hence the quoted âadjustedâ. This will be elaborated in the following sections.
Final Letter Grades
If you are unfamiliar with interval notation, â[â / â]â include a number and â(â / â)â exclude a number. â[90, 93)â means the range of numbers between 90 and 93, including 90 but excluding 93.
- [100, â): A+
- [93, 100): A
- [90, 93): A-
- [87, 90): B+
- [83, 87): B
- [80, 83): B-
- [77, 80): C+
- [73, 77): C
- [70, 73): C-
- [67, 70): D+
- [63, 67): D
- [60, 63): D-
- [0, 60): E
Basic (60 points)
Each basic assignment will be worth 6 points in total. The total number of points for basic assignments is capped at 60. This means that if you do 12 basic assignments, the number of points you get from the Basic category will be max(12 * 6, 60) = 60. Nominally, this means you only have to get full credit on 10 basic assignments to hit the 60 point total. This serves as a built-in buffer for missing/not doing assignments, as there are more than 10 basic assignments in the class. That being said, it is expected that you do each basic assignment as a means to familiarize yourself with a topic. The goal of these assignments is to reinforce concepts introduced in lecture and to give hands-on experience.
Some assignments will be submitted over the EECS GitLab server (gitlab.eecs.umich.edu) and some assignments will be submitted over Gradescope. All assignments have âhardâ deadlines, after which submissions will not be accepted.
Advanced (40 points)
There are two possible ways to approach the Advanced category. Each weekly advanced assignment is worth 10 points in total, which means you only have to do 4 to meet the category total.
Unlike the Basic category, all points past the category total of 40 points will be worth 50%. For example, if you do 9 advanced assignments and get full credit, you will earn 9 * 10 = 90 raw Advanced points. The 50 points after the initial 40 points will be worth half: therefore your final Advanced score would be 40 + (50 / 2) = 40 + 25 = 65.
Advanced assignments consist of two components:
- You submit a completed solution to the EECS GitLab server (gitlab.eecs.umich.edu) or Gradescope, as specified in the assignment instructions. All assignments have âhardâ deadlines, after which submissions will not be accepted.
- You attend a lab session to present the assignment and discuss it with the course staff, either in person or over Zoom. In general, you will have one week after the assignment is due to get it graded. For instance, if an assignment is due on a Wednesday, you will have until the lab session on the Wednesday of the following week to get your work graded. This timeline may be shortened for the last advanced assignment due to the end of the semester.
The presentation serves two purposes. First, it is essential in any context (industry, graduate school, project teams, etc.) to not just complete work, but to able to effectively communicate your work to managers and peers. The Advanced assignments provide an opportunity to practice this skill. Second, the presentation serves as an assessment â this class does not have exams, but we still need to evaluate whether you meet the expected learning objectives for the course.
Make sure to come to lab prepared to talk over your work with course staff. If it has been several days since you completed the assignment, it would help to review your work before coming to lab to discuss it. Aside from refreshing your memory, you do not need to prepare anything additional for lab â the staff will guide the discussion, asking questions about your work.
Your overall grade for an Advanced assignment consists of the product of the score on your submitted work and the score on your presentation. For instance, if your submission score is 9 and your presentation score is 0.8, your grade for the assignment will be 9 * 0.8 = 7.2.
Class
Attendance during the in-person lecture is not required for this course. However, there may be activities for which you can get participation points, such as an in-class survey to ask you about what you learned or got out of a class (recording). Each in-class activity is worth 1 point.
In addition, there may be quizzes for the lecture videos. Each quiz is worth 0.5 points. The quizzes will be time sensitive to encourage you to keep up with them in a timely manner, and they will have a hard cut-off date after which they will no longer accept submissions.
Attendance in lab sections is only required for presenting Advanced assignments. However, some lab meetings may include activities for which you can also get participation points â these will be announced in advance. In addition, the staff are there to help â we wonât have many office hours outside of lab, so labs are the best place to get real-time help from the course staff.
There is no point cap for this category: each point will be worth its full amount. This category effectively serves as extra credit for your participation, and can help get you out of other work :)
Summary
Your final score is based off of sums of the final âadjustedâ point totals of each category, having taken into account the cap of 60 points for the Basic category and points past the Advanced category total of 40 being worth 50%. This allows for multiple ways to get an A or A+ in the class. You can do 10 basic assignments and 4 advanced assignments. You could slack off on some basic assignments and make up for it with more advanced assignments. This grading scheme is set up to allow for flexibility dealing with the workloads in whatever classes you are taking. Keeping up with the class by watching videos and doing the quizzes will only improve your grade by adding unweighted points to the total.
tl;dr You add up the point values you earn for each assignment, taking into account the cap on Basic points and how Advanced points past the category total are worth half, and your final total determines your letter grade.
Expectations
Work in this class is intended to be done alone: your code should be your own. That being said, you can help point each other towards information or help explain concepts to each other.
You should have a computer that runs Windows, macOS, or Linux that you can install software on. Chromebooks are welcome if they have have the ability to set up a Linux environemnt (Crostini).
Tips for success
While the class is very flexible, itâs still on you to keep up and not get left behind. You are encouraged to keep up with the weekly videos, do the quizzes for extra points, and come to class to complete the weekâs basic assignment. The quizzes will add up in the end, allowing you to skip out on some assignments.
Communication
There will be multiple ways that communication can occur in the class:
- Canvas: Announcements and a fancy gradebook
- Ed Discussion: Course content and logistics related questions
- If you share part of your solution, please make your question private
- Email: For personalized correspondance and more personal matters
- Please start the subject line with âEECS 201â so I can find it