Course information, Fall 2025
- First class: 8/26
- Lectures: TR 11:00-12:20 DH 2315
-
Office Hours (beginning on day of HW0 release):
Day Time Location TA Monday 6:30pm-7:30pm GHC 8115 Manan Tuesday 6:30pm-7:30pm GHC 8115 Nick Wednesday 6:30pm-7:30pm GHC 8115 James Wednesday 7:30pm-8:30pm GHC 8115 Saket Thursday 6:30pm-7:30pm GHC 8115 Derek Friday 6:30pm-7:30pm GHC 8115 Vidhi Saturday 6:30pm-7:30pm GHC 8115 Anmol
Course information
To allow everyone who wants to attend the course, we’re implementing a temporary system called In-Person Expectation Rotation for the first few classes. This means that for a few weeks, half the class will attend in person and the other half will attend remotely. We’ve assigned in-person slots based on Andrew ID to manage capacity:
Andrew IDs starting with a-m: Your in-person day is Tuesday, and you’ll attend remotely on Thursday. Andrew IDs starting with n-z: Your in-person day is Thursday, and you’ll attend remotely on Tuesday.
This is a temporary solution. We will let you know once enough seats become available for everyone to attend in person. All lectures will be recorded to accommodate this schedule.
Course Description
Deep learning methods have revolutionized Artificial Intelligence and Machine Learning in recent years. While deep learning systems like PyTorch and TensorFlow are widely available, understanding their internals at a fundamental level is less common but crucial for effective use and extension. This course provides students with a comprehensive understanding of the “full stack” of deep learning systems, from high-level modeling design to automatic differentiation implementation to device-level efficient algorithms. Throughout the course, students will design and build from scratch a complete deep learning library (called “Needle” - Necessary Elements of Deep Learning), capable of efficient GPU-based operations, automatic differentiation, and support for parameterized layers, loss functions, data loaders, and optimizers. Using these tools, students will implement state-of-the-art modeling methods including convolutional networks, recurrent networks, self-attention models, and generative models.
Learning Objectives
By the end of this course, students will be able to:
- Design and implement a complete deep learning framework from scratch, including automatic differentiation, optimization algorithms, and neural network modules
- Analyze and optimize the computational and memory efficiency of deep learning operations on both CPU and GPU architectures
- Implement efficient algorithms for core deep learning operations including matrix multiplication, convolution, and attention mechanisms using both C++ and CUDA
- Apply hardware acceleration techniques including memory coalescing, tiling, and parallel computation strategies to achieve near-production-level performance
- Build and train modern deep learning architectures (CNNs, RNNs, Transformers) using self-implemented frameworks
- Evaluate trade-offs between different implementation strategies for deep learning systems in terms of speed, memory usage, and numerical stability
- Extend existing frameworks with custom operations and optimizations for specific use cases
Prerequisites
Students must be proficient in:
- Systems programming (15-213 or equivalent)
- Linear algebra (21-240 or 21-241)
- Mathematical background including calculus, probability, and basic proofs (21-127 or 15-151)
- Python and C++ programming
- Basic machine learning concepts (prior experience required)
Note: Homework 0 serves as a diagnostic test of prerequisite knowledge. Students should be comfortable with all concepts in HW0 to succeed in this course.
Learning Resource
- Primary Resource: Lecture slides and implementation notebooks (posted before each class)
- Supplementary Videos: 2022 course recordings available on YouTube
- Development Environment: Google Colab (recommended) with GPU runtime
- Discussion Forum: Ed Discussion platform
- No required textbook
Grading
Grade Distribution
- 55% Homework
- 35% Final Project
- 10% Class Participation (via course Forum)
Class Participation
Full participation credit requires meaningful involvement in at least 5 discussions on the Ed forum throughout the semester. The top 5 participants will receive extra credit.
Assignments and project
Homework Assignments
Five programming assignments (HW0-HW4) where students incrementally build the Needle deep learning library:
- HW0: Background review and softmax regression
- HW1: Automatic differentiation framework
- HW2: Neural network modules and optimizers
- HW3: NDArray library with CPU/CUDA backends
- HW4: Convolutions, RNNs, and advanced architectures All assignments use the mugrade autograding system. Students can submit multiple times before the deadline.
Final Project
Groups of 2-3 students will implement a substantial new feature in Needle plus a model using this feature. Topics include:
- Advanced autodiff operators
- Hardware acceleration improvements
- Novel architectures
- Probabilistic modeling extensions
Project proposal and final submission dates will be announced during the semester.
Course Policies
Late Days Policy
- 5 late days total for the semester
- Maximum 2 late days per assignment
- Late days apply only to homework, not the final project
- After late days are exhausted, no submissions accepted
Extensions
In general, we do not grant extensions on assignments. There are several exceptions:
- Medical Emergencies: If you are sick and unable to complete an assignment or attend class, please go to University Health Services. For minor illnesses, we expect late days to provide sufficient accommodation. For medical emergencies (e.g. prolonged hospitalization), students may request an extension afterwards.
- Family/Personal Emergencies: If you have a family emergency (e.g. death in the family) or a personal emergency (e.g. mental health crisis), please contact your academic adviser and/or Counseling and Psychological Services (CaPS).
- University-Approved Travel: If you are traveling out-of-town to a university approved event or an academic conference, you may request an extension for any time lost due to traveling. For university approved absences, you must provide confirmation of attendance, usually from a faculty or staff organizer of the event or via travel/conference receipts.
For any of the above situations, you may request an extension by emailing the Education Associate(s) at bedmunds@andrew.cmu.edu – do not email the instructor or TAs. Please be specific about which assessment(s) you are requesting an extension for and the number of hours requested. The email should be sent as soon as you are aware of the conflict and at least 5 days prior to the deadline. In the case of an emergency, no notice is needed.
If this is a medical emergency or mental health crisis, you must also CC your CMU College Liaison and your academic advisor. Do not submit any medical documentation to the course staff. If necessary, your College Liaison and The Division of Student Affairs (DoSA) will request such documentation and they will view the health documentation and conclude whether a retroactive extension is appropriate. (If you haven’t interacted with your college liaison before, they are experienced Student Affairs staff who work in partnership with students, housefellows, advisors, faculty, and associate deans in each college to assure support for students regarding their overall Carnegie Mellon experience.)
Collaboration and Academic Integrity
- Homework: Must be completed individually. Discussion of concepts is encouraged, but all submitted code must be your own work
- Projects: Collaborative work within assigned groups
- Forum discussions: Encouraged, but do not share code solutions
- Violations will be reported to the Office of Community Standards & Integrity
Generative AI (“ChatGPT”) Course Policy
Students may use generative AI tools (e.g., ChatGPT, GitHub Copilot) for assistance with coding assignments. No citation required. However: You are fully responsible for any code submitted, including any errors introduced by AI tools Strong recommendation: Complete HW0 without AI assistance to ensure foundational understanding
Attendance Policy
Attendance is not required and does not directly affect grades. However, regular attendance is strongly recommended as lectures include live coding demonstrations and mathematical derivations not fully captured in slides.
Recording Policy
Lectures are officially recorded and will be made available through the course website. Students should not make personal recordings.
Mobile Devices
Laptops and mobile devices are permitted for note-taking and following along with coding demonstrations.
Accommodations for Students with Disabilities
If you have a disability and are registered with the Office of Disability Resources, please use their online system to notify me of your accommodations and discuss your needs with me as early in the semester as possible. I will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, I encourage you to contact them at access@andrew.cmu.edu.
Auditing Requirements
Formal auditing of this course is permitted. However, we give priority to students taking the course for a letter grade.
You must follow the official procedures for a Course Audit as outlined by the HUB / registrar. Please do not email the instructor requesting permission to audit. Instead, you should first register for the appropriate section. Next fill out the Course Audit Approval form and obtain the instructor’s signature in-person (either at office hours or immediately after class).
Auditors are required to:
- Attend or watch all of the lectures
- Receive a 50% participation grade or higher
- Submit HW0, HW1, HW2, HW3, HW4 (not including HW4 extra) and achieve a 66% or above on each assignment.
Statement on Student Wellness
Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, getting enough sleep and taking time to relax. This will help you achieve your goals and cope with stress. All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful. If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.
Inclusive Excellence Statement
We must treat every individual with respect. We are diverse in many ways, and this diversity is fundamental to building and maintaining an equitable and inclusive campus community. Diversity can refer to multiple aspects of identity including race, color, national origin, gender, sexual orientation, disability, age, religion, socio-economic status, veteran status, and national origin. Each of us is responsible for creating a safer, more inclusive environment. It is my intent that students from all diverse backgrounds and perspectives be well served by this course, that students’ learning needs be addressed both in and out of class, and that the diversity that students bring to this class be viewed as a resource, strength and benefit. Your suggestions are encouraged and appreciated. Please let me know ways to improve the effectiveness of the course for you personally or for other students. Unfortunately, incidents of bias or discrimination do occur, whether intentional or unintentional. They contribute to creating an unwelcoming environment for individuals and groups at the university. If you experience or observe unfair or hostile treatment on the basis of identity, please reach out to report the concern using the resources below.
Campus Resources
- Academic Support: Student Academic Success Center - 412-268-6878
- Counseling Services: CaPS - 412-268-2922 (24/7 support available)
- Disability Resources: Office of Disability Resources - 412-268-6121
- Food Security: CMU Pantry - 412-268-8704
- Diversity & Inclusion: Center for Student Diversity and Inclusion - 412-268-2150
- Health Services: University Health Services - 412-268-2157
- Emergency/Safety: University Police - 412-268-2323
- Title IX: Office of Title IX Initiatives - 412-268-7125
- Anonymous Reporting: https://www.cmu.edu/title-ix/make-a-report/