Section | 1 |
---|---|
Instructor(s) | Kimpe, Dries (dries) |
Location | Online |
Meeting Times | Monday 5:30pm - 8:30pm |
Fulfills | Core Programming |
Summary
This is an accelerated introduction to the C (not C++) Programming Language designed for students with prior programming experience. C is in many ways the lingua franca of computing, and a broad range of programming languages and related technologies derive from the basic principles of C memory management, control flow, and abstraction. Though there are many subtleties, C is not a big language, and it is expected that students will leave the course with a relatively deep understanding of the key concepts, which will then form a solid foundation for studying higher-level technologies. At the same time, C itself remains a very practical language, particularly so in areas such as scientific programming, high-performance computing, application level library design, systems programming, network programming, multi-threaded programming, etc. Students who successfully complete the course will be well prepared for subsequent MPCS courses in these areas. The course studies both fundamental and advanced C language constructs in the abstract and reinforces them through a range of exercises in the design of basic and advanced data structures, rudimentary algorithms, and API design.
The course teaches focuses on C11 or ISO/IEC 9899:2011.
Course Contents
Coursework
8 Homework assignments, each with 1 week to complete. All programming.
1-2 Quizzes
Final project
Notes:
Texts
High Pass on the programming placement exam.
MPCS students can not take this class if they have already taken a Core Programming class. Only one Core Programming class will be counted towards MPCS degree requirements. This can not be counted as an elective class.
CAPP, MACSS and MSME students interested in taking this class should talk with their program's advisor.
This course requires competency in Unix and Linux. Please plan to attend the MPCS Unix Bootcamp (https://masters.cs.uchicago.edu/page/mpcs-unix-bootcamp) or review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/
This class is scheduled at a time that conflicts with these other classes: