Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Georgia Institute of Technology

Compilers: Theory and Practice

Georgia Institute of Technology via Udacity

Overview

The objective of this course is to learn the theory and practice behind building automatic translators (compilers) for higher level programming languages and to engineer and build key phases of a compiler in Java or C++ for a small language.

Syllabus

  • Lesson 1.1 - Challenging Problems
  • Lesson 1.2 - Algorithm Analysis and the RAM
  • Lesson 1.3 - Big O (Optional)
  • Lesson 1.4 - Connecting Similar Problems
  • Problem Set 1
  • Lesson 2.1 - Many Solutions and Intractability
  • Lesson 2.2 - Non-deterministic RAM
  • Lesson 2.3 - SAT
  • Lesson 2.4 - Proof of SAT (Optional)
  • Lesson 2.5 - NP-Completeness Via Reductions
  • Problem Set 2
  • Lesson 3 - Solving NP-Complete Problems
  • Problem Set 3
  • Lesson 4.1 - Pruning the Input
  • Lessons 4.2 - Preprocessing
  • Lesson 4.3 - Measuring Hardness
  • Problem Set 4
  • Lesson 5.1 - Approximation Factor
  • Lesson 5.2 - Shortest Tour
  • Lesson 5.3 - Reductions & Approx. Factors
  • Lesson 5.4 - PTAS
  • Problem Set 5
  • Lesson 6.1 - Randomization
  • Lesson 6.2 - What You've Learnt
  • Problem Set 6
  • Lesson 7.1 - Limits of Computation
  • Lesson 7.2 - More Undecidability
  • Problem Set 7
  • Exam

Taught by

Sebastian Wernicke, Sean Bennett and Sarah Norell

Reviews

Start your review of Compilers: Theory and Practice

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.