Cornell University
School of Electrical and Computer Engineering
ECE 2400 / ENGRD 2140
Computer Systems Programming
Fall 2021
Prof. Christopher Batten
Monday, Wednesday, Friday • 10:10–11:00am • 219 Phillips Hall
home | syllabus | staff | schedule | readings | handouts | resources
Miscellaneous Handouts
- Zoom Meeting Information
- Course Syllabus
- Next Steps after First Lecture
- Linux, Git, C/C++ Cheat Sheet
Lecture Handouts
- Course Overview (results from activities)
- Topic 1: Introduction to C (notes)
- Topic 2: C Recursion
- Topic 3: C Types (problems)
- Topic 4: C Pointers (problems)
- Topic 5: C Arrays (problems)
- Topic 6: C Dynamic Allocation (problems)
- Topic 7: Lists and Vectors (problems)
- Topic 8: Complexity Analysis (update, problems)
- Topic 9: Sorting Algorithms (update, problems)
- Topic 10: Abstract Data Types
- Topic 12: Transition to C++
- Topic 13: Object-Oriented Programming (update, problems)
- Topic 14: Generic Programming (problems)
- Topic 15: Functional Programming
- Topic 16: Concurrent Programming
- Topic 17: Trees
- Topic 18: Tables
- Topic 19: Graphs
Section Handouts
- Section 1: Linux Development Environment
- Section 2: Compiling and Running C Programs
- Section 3: C Build and Test Frameworks
- Section 4: C Debugging, Testing, Formatting
- Section 5: C Profiling for Performance and Memory Usage
- Section 6: C Problem-Based Learning (solutions)
- Section 7: Sorting Lab (PA2 discussion)
- Section 8: Object-Oriented Programming Lab (PA3 discussion)
- Section 9: Dynamic Polymorphism Lab
- Section 10: C++ Problem-Based Learning (solutions)
- Section 11: Static Polymorphism Lab (PA4 discussion)
Programming Assignment Handouts
- Programming Assignment Logistics
- Test and Debug Strategy
- Coding Conventions
- PA1: Math Functions
- PA2: List and Vector Data Structures
- PA3: Sorting Algorithms
- PA4: Handwriting Recognition System – Linear vs. Binary Search
- PA5: Handwriting Recognition System – Tree vs. Table Search
In-Class Paper Quiz Handouts
- Quiz 1: Introduction to C (solution)
- Quiz 2: C Pointers (solution)
- Quiz 3: C Dynamic Allocation (solution)
- Quiz 4: Complexity Analysis (solution)
- Quiz 5: Complexity Analysis (solution)
- Quiz 6: Object Oriented Programming (solution)
- Quiz 7: Generic Programming (solution)
- Quiz 8: Generic Programming (solution)