Advanced Programming

Title Advanced Programming (51100)
Quarter Autumn 2020
Instructor Andrew Siegel (siegela@uchicago.edu)
Website

Syllabus

*This course will be conducted remotely and will be online only for Autumn 2020*



Course Description

MPCS 51100 - Advanced Programming fulfils the MPCS Core Programming requirement, but is intended for students who are joining the program with an existing degree in Computer Science, or with substantial experience in programming. This course will be taught primarily in C, including an accelerated introduction to the C language for students who have not used C before. The course will cover advanced data structures and topics in concurrent and multicore programming not covered in the Java Programming or C Programming courses.

Contents

  • Week 1: C intensive overview
  • Week 2: Trees
  • Week 3: Hash tables
  • Week 4: Union finds
  • Week 5: Graphs
  • Week 6: Intro to multicore/pthreads programming model
  • Week 7: Applications of multicore -- example problems
  • Week 8: Alternative approaches: java task-based, OpenMP, etfc.
  • Week 9: Building larger codes: software engineering, abstraction, development tools, compilers, etc.
  • Week 10: Course projects/special topics

Note: Although some of the above topics overlap with topics covered in C Programming and Java Programming, they are covered in more depth (and at a faster pace) in this class.

Prerequisites (Courses)

MPCS administration approval.

Prerequisites (Other)

To take this class, students must take the programming placement exam and receive an “Advanced Pass” score on the exam (the minimum score for an "Advanced Pass” is specified at the time of the exam).

Satisfies

Core Programming

Time

Monday 5:20-7:20 PM

Location

Online Only