Differences between revisions 3 and 4
Revision 3 as of 2016-01-13 00:44:30
Size: 5935
Editor: khellman
Comment:
Revision 4 as of 2016-01-25 19:09:08
Size: 5985
Editor: khellman
Comment:
Deletions are marked like this. Additions are marked like this.
Line 7: Line 7:
{{{#!wiki comment
 -- Not as of 2016-02-25
Line 8: Line 10:
}}}

Textbook

Charles N. Fisher, Ron K. Cytron, Richard J. LeBlanc, Jr, Crafting a Compiler, Addison-Wesley, 1ed, ISBN-13: 978-0-13-606705-4

There are two textbooks on reserve in the Arthur Lakes Memorial Library.

Course Description

CSCI498 --- COMPILER DESIGN: An introductory course to the design and construction of compilers. Topics include scanning (lexical analysis), context free grammars, recursive descent (top-down) parsing, LR (bottom up) parsing, syntax directed translation, syntax trees, expression trees, parse trees, intermediate representation, register allocation and target code generation. Students will construct their own tool chain for compiling a simple language, tracking the relevant course topics as they are covered.

Computer Organization (CSCI341), Software Engineering (CSCI306) and Intro to Linux (CSCI274).

Learning Goals

The objectives of this course are to introduce students to theory and tools behind language compilers. Upon successful completion of this course, the student will have practiced and improved their coding, code review, communication and collaboration skills; and be knowledgeable of:

  • The steps taken by most compilers to translate a program listing to either another language or target code for a machine.
  • The theory of lexical analysis, regular expressions, deterministic finite automata (DFAs), non-deterministic finite automata (NFAs), and how to use scanner generators (eg flex).

  • The fundamental principles of context free grammars as well as their associated attributes and properties.
  • Constructs for expressing operator precedence and associativity in context free grammars, as well as how language ambiguities are detected and worked around by modern compiler tools.
  • The theory and implementation of top-down and bottom up parsing, the generation of parse trees, and their translation to abstract syntax trees (ASTs).
  • The evaluation of program statements at the CPU op-code and register level.

Learning Methods

This will not be a traditional lecture course. Instead, it will be taught using an active learning technique known as formal learning groups. Here is how they will work.

A semester will have three rounds of learning groups (LGs), each about five weeks long. Students will be randomly assigned to learning groups at the beginning of each round.

  1. "Lectures" will begin immediately with learning group time. LGs should review the previous assignment's learning goals and discuss the new content. LGs are expected to rearrange the room furnishings to accommodate their group work. Instructor(s) will circulate through the learning groups to record participation points, observe discussions, and answer questions.

  2. After the initial group time lecture will take two different shapes depending on instructional needs:
    1. There will be a brief discussion of the current assignment's topics, perhaps working through a few example problems. This will be led by the instructor but guided by student input. Important topics in the next reading assignment will be introduced to the students. And the duration of the lecture period will be short problem solving time (still in learning groups) or a more formal (but short-lived) lecture period.

    2. Or, there will be a more formal lecture over the current important algorithms and data-structures being covered in the LGAs.
  3. Before the end of most lecture periods, learning groups will have an opportunity to see the next group assignment and discuss how the work load will be divided among the members.

Student Evaluation

Students should familiarize themelves with the collaboration policy for graded work.

Grade Component

Course Grade Weight

Notes

Participation

5%

Instructor and peer evaluation

Group score on quizzes

10%

Median score of your group members, weighted evenly.1

Quizzes

10%

Weighted evenly.

Individual programming and written assignments

10%

Read about late penalties.

Midterm Exam

15%

Final Exam

25%

The final exam must be passed (60% or more)

Group Project scores

25%

Contingent on acceptable participation scores.

Learning Group Quizzes

At the end of each learning group round, there will be a quiz over the material covered during the learning group. These are Learning Group Quizzes. These quizzes will be taken independently by each LG member, but each member's course grade will be based (in part) on their individual performance as well as their learning group's performance.

Assignments

Programming and written assignments may we worth different numbers of points, but their percentile grades are all weighted the same when calculating the "Assignment" portion of your course grade.

  • Students and student groups have one week to review and contest graded work. Contact the instructor via Email with any assignment grading concerns.

  • Assignments may not be re-submitted after they have been graded, even if the re-submission is before the assignment deadline.
  • Late Policy: 10% off for first 24 hours, 15% off for second 24 hours, 40% of for the third 24 hours (3 days late). Assignments posted 4 days or more after the due date are not graded. Weekends count as late days.

Institutional Support

  1. Those students who qualify for disability accommodations must request Student Disability Services deliver each professor a Confidential Letter of Required Accommodations to ensure accommodations are met. More information is at this link.

  2. The Writing Center, located in Stratton 306, is here to help all members of the Mines community with writing projects at any stage of the writing process. Writing Consultants will help you understand an assignment; brainstorm, develop and organize ideas; cite sources; narrow your focus; and/or fine-tune your writing for polish, clarity, adherence to grammatical conventions, etc. You are welcome to bring in your scholarship letters, application letters, theses, dissertations, academic journal articles, resumes, cover letters, research papers, summaries, abstracts, NHV essays, EPICS writing assignments, and personal writing projects with which you would like help. To make an appointment, please visit our online scheduling system at: http://mines.mywconline.com. Questions can be directed to Shira Richman, Writing Center Director, at: srichman@mines.edu or 303-273-3484. We look forward to working with you.

  1. With some reasonable caveats (1)

Syllabus (last edited 2024-01-08 20:27:53 by khellman)