CS 550 Syllabus

Fall Semester, 2005

Welcome to CS 550, Design and Translation of Programming Languages!

This is the official class syllabus page. In addition to the information presented in this syllabus, students enrolled in this course are required to read, understand, and adhere to the information provided in the following links:

Course Objectives

The objectives of this course are

  1. to provide students with more in-depth knowledge of the various parts of traditional compilers: scanners, parsers, semantic analyzers, symbol tables, and optimizers;
  2. to explore and understand selected advanced compiler topics;
  3. to investigate features of programming languages supporting different paradigms;
  4. to understand better what it means to be a Master of the Science or Doctor of the Philosophy of Computing in terms of both teaching and learning.

Course Outcomes

At the conclusion of this course students will be able to

  1. demonstrate that they have a clear grasp of the fundamental theory and practice of compiling;
  2. complete independent investigations of computer science concepts new to them;
  3. confidently present research results to others; and
  4. provide evidence that they understand many of the issues with respect to teaching and learning appropriate for one entering the profession

Instructor

Rocky Ross

Office: EPS 365
E-mail: ross@cs.montana.edu
Phone: 994-4804

Office Hours

MF 3:10-4:00, W 5:00-5:30

Any time the door is open outside of scheduled office hours.

Teaching Assistants

None

Office Hours

NA

Class Meeting Time

MWF 2:10-3:00

Class Location

EPS 108

Class Resources

Textbook: Steven S. Muchnick, Advanced Compiler Design and Implementation

Important Dates

Midterm Exam - TBA
Final Exam - TBA

Grading Policy

The final grade will be determined from the following:

  • 25% midterm
  • 35% final
  • 20% projects
  • 20% presentations

Course Topics

Review of major scanning, parsing, and translation techniques

Selected advanced compiler topics from the textbook

In-depth look at various programming language features and their compilation

Review of some learning theories