Syllabus
Course Description
This course will provide a broad overview of many common and useful tools, like the command line, Git, debuggers, build systems, and more. Through a hands-on approach, you will be introduced to a variety of tools and techniques that can immediately be applied to everyday problems. We aim to provide students with material that improves their computing ecosystem literacy and increases their efficiency as a developer.
Course Details
- Course: Practical Tools For Efficient Development
- Prerequisites: Minimum grade of C- in CMSC216 and CMSC250
- Credits: 1
- Seats: 30
- Lecture Time: Friday 11:00 AM – 11:50 AM
- Location: IRB 2207
- Semester: Spring 2026
- Course Facilitator(s): Mohammad Durrani
- Faculty Advisor: Prof. Christopher Kauffman
Course Schedule
This is subject to change.
| Date | Concept | Assignment |
|---|---|---|
| 01/30/2026 | The Shell | System Monitoring Project Released |
| 02/06/2026 | Shell Tools and Scripting | |
| 02/13/2026 | Data Wrangling / Command-line Environment | |
| 02/20/2026 | Shell “Application Day” | |
| 02/27/2026 | Debugging and Profiling | System Monitoring Project Due, Release PacMan Part 1 |
| 03/06/2026 | Version Control (Git) | |
| 03/13/2026 | Version Control (Git) | |
| 03/20/2026 | Spring Break | |
| 03/27/2026 | Build Systems / CI | PacMan Project Part 1 Due, release Part 2 |
| 04/03/2026 | Git “Application Day” | |
| 04/10/2026 | Docker | |
| 04/17/2026 | Networking | Part 2 due, Networking Project Released |
| 04/24/2026 | Docker/Networking Application Day | |
| 05/01/2026 | ML/AI Tools | |
| 05/08/2026 | Flex | Networking Project Due |
Grading
Grades will be maintained on ELMS. You will be responsible for all material discussed in lecture as well as other standard means of communication (Piazza, email announcements, etc.), including but not limited to deadlines, policies, assignment changes, etc.
Any request for reconsideration of any grading on coursework must be submitted within one week of when it is returned. No requests will be considered afterwards.
Participation grades will be determined by the tracking of participation in class.
| Percentage | Title | Description |
|---|---|---|
| 80% | Projects | 4 major projects |
| 15% | Application Days | Completion of Application Day assignments |
| 5% | Participation | Participation in class |
Late Policy
There will be a standard 10% late penalty per 24-hour period for any project submitted past the deadline. No late submissions will be accepted for the final project.
Communicating with Course Staff
Communication should be done over Piazza, with preferably public posts unless a private post is necessary (grading disputes, student-specific questions, etc.).
- Lecturer / Instructor: Mohammad Durrani — durranim@terpmail.umd.edu
- Advisor: Prof. Kauffman — profk@umd.edu
Excused Absence and Academic Accommodations
See the section titled “Attendance, Absences, or Missed Assignments” available at Course Related Policies.
Disability Support Accommodations
See the section titled “Accessibility” available at Course Related Policies.
Academic Integrity
Academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. All submitted work must be your own. Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct.
AI / LLM Policy
LLMs are likely one of the tools you will have access to in your development, so reasonably, you should be able to use them in this class. However, like everything else in this course, this is a tool for you to use and not something that should completely replace your learning. You are allowed to use LLMs to clarify your understanding and ask questions (think of it as a tutor), but any and all submitted work must be your own. Any violation of this policy will be escalated per standard University procedures.
Course Evaluations
If you have a suggestion for improving this class, don’t hesitate to tell the instructors at any point during the semester. At the end of the semester, please don’t forget to provide your feedback using the campus-wide CourseEvalUM system.
Citation
This course pulls material heavily from “The Missing Semester of Your CS Education” from MIT (Anish Athalye, Jon Gjengset, Jose Javier Ortiz). Materials follow the CC BY-NC-SA license.