MPCS 51100 Advanced Programming (Autumn 2024)

Section 1
Instructor(s) Siegel, Andrew (siegela)
Location Crerar 298
Meeting Times Monday 6pm - 7:30pm
Fulfills Core Programming

Syllabus

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.

Course Prerequisites

Must receive a PASS on the MPCS Programming Placement Exam I and MPCS Programming Placement Exam II. All new MPCS students should view information about the exams in the MPCS Programming Placement Exam Canvas site.

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.

Other Prerequisites

This course requires competency in Unix and Linux. New students must attend the MPCS Unix Bootcamp during orientation.

CAPP and MACSS students interested in taking this class should talk with their program's advisor.

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 50101-1 -- Concepts of Programming
  • MPCS 51036-1 -- Java Programming
  • MPCS 51040-1 -- C Programming
  • MPCS 51042-1 -- Python Programming
  • MPCS 53014-1 -- Big Data Application Architecture

Eligible Programs

MS in Computational Analysis in Public Policy (new) Placement: Pass I + II (w/ Advanced) Masters Program in Computer Science (new) Placement: Pass I + II (w/ Advanced)