Section | 1 |
---|---|
Instructor(s) | — |
Location | None |
Meeting Times | |
Fulfills | Core Programming |
*Please note: This is the syllabus from the 2021/22 academic year and subject to change.*
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 the latest C standard (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.
Not approved for CAPP or MACS students.
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 take the online MPCS Unix Bootcamp Course on Canvas.
This class is scheduled at a time that does not conflict with any other classes this quarter.