16.01.2015 Views

CS2013-final-report

CS2013-final-report

CS2013-final-report

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Why do you teach the course this way<br />

My primary goal in the design of this course is to teach “the other 90%”: the population of students who will not<br />

go on to become programming language researchers. My goal is to infect them with linguistic thinking: to<br />

understand that by embodying properties and invariants in their design, languages can solve problems.<br />

Furthermore, most of them, as working developers, will inevitably build languages of their own; I warn them<br />

about classic design mistakes and hope they will learn enough to not make ones of their own.<br />

The course is revised with virtually every offering. Each time we pick one module and try to innovate in the<br />

presentation or learning materials.<br />

Independent student feedback suggests the course is one of the most challenging in the department. Nevertheless,<br />

it does not prevent high enrollments, since students seem to appreciate the linguistic mindset it engenders.<br />

Body of Knowledge coverage<br />

KA Knowledge Unit Topics Covered Hours<br />

PL Object-Oriented Programming Object representations and encodings, types 3<br />

PL Functional Programming All 3<br />

PL Basic Type Systems All 9<br />

PL<br />

Language Translation and<br />

Execution<br />

Interpretation, representations 3<br />

PL Runtime Systems Value layout, garbage collection, manual memory<br />

management<br />

3<br />

PL<br />

Advanced Programming<br />

Constructs<br />

Almost all (varies by year) 6<br />

PL Type Systems All 3<br />

PL Language Pragmatics Almost all (varies by year) 3<br />

PL Logic Programming Relationship to unification and continuations 2<br />

- 368 -

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!