This 1credit seminar is designed to teach the essentials of using a computer effectively for EECS students. While the target audience is CS/CE/DS students, any student wishing to learn how to use their computer much more effectively is encouraged to join. Topics covered include shells, environment, scripting, Makefiles, compilers, debugging tools, and version control. The end of the course will be open to student input for interesting topics to cover.
Updates
Registration Information
The course numbers in Wolverine Access are 31180 for 002, and 31181 for 003.
Be sure to register only for sections 002 or 003, the other 398 sections are different courses!
For any other questions, email c4csstaff@umich.edu
Course PreRequisites
The only enforced prerequisite for this course is ENGN 101/151 or EECS 182/183, however it is strongly advised that students have either taken or are concurrently enrolled in EECS 280.
It is expected that students are currently enrolled in at least one course involving nontrivial software projects (e.g. EECS 280 or 281). If you are not enrolled in a programming course this term, you must have previously taken a programming course where you still have access to the projects you have completed.
Syllabus & Essential Info
Course Staff
For general issues, email the course staff at c4csstaff@umich.edu. For sensitive issues, please email Pat and Marcus directly.
Pat Pannuto  Marcus Darden  Matt Terwilliger  Alex Chojnacki 
ppannuto@umich.edu  mmdarden@umich.edu  mterwil@umich.edu  thealex@umich.edu 
Course Resources
Course Q&A / Forum – Piazza
Assignment Submission & Grades – Gradescope
 Gradescope entry code: 9D87R9
To borrow a CSE laptop for the semester, contact Don Winsor at don@umich.edu.
Course Meeting Times and Locations
 Section 002 (31180)
 1670 BBB, Wednesday 1:303:00
 Section 003 (31181)
 1670 BBB, Friday 1:303:00
In general, you may attend any section, however if the classrooms become overfull, we will have to ask that you attend the section you are officially registered for.
Schedule
Topic  Lecture Materials  

Introduction and Basics  
Week 1  9/7, 9/9 
Introduction, Virtual Machines, & Command Line Primer Lecture
Homework
Advanced

Morning Lecture Afternoon Lecture cat ● cd ● cp ● fg ● help ● jobs ● kill ● ls ● mkdir ● mv ● pwd ● rm ● sleep 
mmdarden ppannuto 



Week 2  9/14, 9/16 
Basic Git Lecture
Homework
Advanced

Morning Lecture Afternoon Lecture git 
ppannuto 



Week 3  9/21, 9/23 
Shells, Environment, Scripting, and Bash Lecture

Morning Lecture Afternoon Lecture chmod ● man ● file ● echo ● seq ● true ● which ● export ● yes ● $_ ● $variable 
mmdarden 



Developing  
Week 4  9/28, 9/30 
Build Systems Lecture
Homework
Advanced

Morning Lecture Afternoon Lecture make 
mmdarden 



Week 5  10/5, 10/7 
Unit Testing and Python Lecture

Created an RPN calculator in Python. Morning Lecture Afternoon Lecture 
ppannuto 



Week 6  10/12, 10/14 
Debuggers Lecture
Homework
Advanced

Morning Lecture Afternoon Lecture 
mmdarden 



Being Efficient  
Week 7  10/19, 10/21 
Git II Lecture
Homework
Advanced

Some tips and tricks to make working with git more enjoyable. Morning Lecture Afternoon Lecture 
ppannuto 



Week 8  10/26, 10/28 
Unix II Lecture
Homework
Advanced

Morning Lecture Afternoon Lecture 
mmdarden 



Week 9  11/2, 11/4 
Editors Lecture
Homework
Advanced

Morning Lecture Afternoon Lecture 
ppannuto 



Standing on the Shoulders of Giants  
Week 10  11/9, 11/11 
Package Managers & Development Environemnt 
Morning Lecture Afternoon Lecture 
mmdarden 

Week 11  11/16, 11/18 
IDEs 
Morning Lecture Afternoon Lecture 
mmdarden 

Week 12 
Thanksgiving Break: No class 

No homework this week! 

Week 13  11/30, 12/2 
A Sampling of Other Things Lecture

Morning Lecture Afternoon Lecture 
ppannuto 



Week 14a  12/7 
Networking Lecture

Follow down the rabbit hole of what happens when you visit www.google.com. Morning Lecture 
mterwil 

No homework this week! 

Week 14b  12/9 
Virtual Private Servers Lecture

We talk about the progression of computing, from terminal to cloud, and demo a few cool thigs the cloud leets us do. Afternoon Lecture 
thealex 

No homework this week! 
Attendance, Grading, and Homework
This course is graded on a straight scale, it will not be curved. There are a total of 100 possible points in this course. You are expected to earn 40 points from Homework, 30 points from Attendance and Participation, and 30 points from Advanced Exercises, however each section has modest opportunity for extra credit that can cover missing points elsewhere.
Range notation [90,93) means 90 is included and 93 is not
Final Grades
A+ >100 
A [93,100] 
A [90,93) 
B+ [86.7,90) 
B [83.3,86.7) 
B [80,83.3) 
C+ [76.7,80) 
C [73.3,76.7) 
C [70,73.3) 
D+ [66.7,70) 
D [63.3,66.7) 
D [60,63.3) 
F [0,60) 

Homework (40% / 40 points)
There are 12 homework assignments in the course. Each homework assignment is worth 4 points. Any points over 40 points are worth half their value, that is if a student completes all 12 assignments with a perfect score, their total points earned from homework will be 40 + (0.5×8) = 44.
Late assignments will not be accepted. Notice that one can miss/skip up to two assignments and still receive the full 40 homework points.
Homework Effort and Grading
This is a 1 credit course and the homeworks are designed to be commensurate with that. Each assignment should take 60–90 minutes on average. The goal of the homeworks is to reinforce concepts introduced in lecture and to give handson experience.
We will give each homework a “raw” grade in Gradescope, which will then convert to a final score using the following conversion:
 [0,0.25] → 0 points
 No / very little effort
 (0.25,2] → 2 points
 Some effort, but not quite there
 (2,4] → 4 points
 Solid effort, completed successfully
The idea here is that homework does not have to 100% perfect to receive full credit. In addition, course staff can be a little “nitpicky”, taking of tenths of points to draw your attention to corrections and suggestions without actually penalizing your grade.
Grading Issues / Regrade Requests
Regrades are handled on Gradescope. We will close regrade requests roughly one week after assignments are returned.Attendance and Participation (30% / 30 points)
Attendance is required for this course. Bring your laptop to every lecture. Lectures will include some quick quizzes used both to verify comprehension and attendance. Generally, correct answers will be worth full credit and incorrect answers half credit (you were there, but didn’t get it right). Generally, we will ask at least three questions during class. Not all questions may count for attendance credit. We reserve the right to experiment with this mechanism a bit throughout the semester and vary when and how we ask questions or validate attendance.
Each week can earn up to 3 attendance and participation points. Any points over 30 points are worth half their value, that is if a student attends and participates for all 12 weeks, their total points earned from attendance and participation will be 30 + (0.5×6) = 33.
Notice that you can miss up to two weeks without any penalty. This is by design to accommodate unexpected illness, emergencies, travel for interviews, or any other situations. Please do not ask for excused absences for oneoff issues that are already covered by this policy. If extenuating circumstances cause you to miss more than two weeks, please contact us and we can work something out.
We will not count attendance for the first week of class.
Advanced Exercises (30% / 30 points)
Each week (except the first and last) will have at least one advanced exercise option. The intention is to give a guided exploration of topics that people find most interesting. These advanced exercises will also be a little more time consuming (23 hours), have a little less guidance, and require you to research and discover a little on your own. Over the course of the semester, you are expected to do three of the advanced exercises.
Advanced exercises may only be submitted at office hours. Advanced exercises come with a deadline roughly two weeks after they are released, however it is your responsibility to ensure you select an office hours session to attend before the deadline. There are no office hours at 9:30PM on Saturday night.
We will aim to announce any changes to the regular office hours schedule at least one week in advance (via Piazza and the updated course calendar), however sometimes life happens, in which case we may adjust deadlines if necessary.
Advanced Exercises Grading
The advanced exercises are graded on a simple all or nothing system, either you did the whole thing or you did not.
The class is divided into four sections, Introduction and Basics, Developing, Being Efficient, and Standing on the Shoulders of Giants. To encourage you to get started early and spread the advanced exercises load across the semester, the first advanced exercise you submit from each section is worth 10 points. Another advanced exercise in the same section is worth 2 points. If you do one advanced exercise from each section, the final section's first advanced exercise is worth half: 5 points. If a student completes all 11 advanced exercise, they will earn (10 + 2) + (10 + 2 + 2) + (10 + 2 + 2 ) + (5 + 2 + 2) = 49 points.