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.

CSCI 1730: Introduction to Programming Languages, Brown<br />

University<br />

Providence, RI, USA<br />

Shriram Krishnamurthi<br />

sk@cs.brown.edu<br />

http://www.cs.brown.edu/courses/csci1730/<br />

Knowledge Areas that contain topics and learning outcomes covered in the course<br />

Knowledge Area<br />

Programming Languages (PL) 35<br />

Total Hours of Coverage<br />

Where does the course fit in your curriculum<br />

The course is designed for third- and fourth-year undergraduates and for PhD students who are either early in their<br />

study or outside this research area. Over the years I have shrunk the prerequisites, so it requires only the first year<br />

introductory computer science sequence, discrete math, and some theory. The course is not required. However, it<br />

consistently has one of the highest enrollments in the department.<br />

What is covered in the course<br />

The course uses definitional interpreters and related techniques to teach the core of several programming<br />

languages.<br />

The course begins with a quick tour of writing definitional interpreters by covering substitution, environments, and<br />

higher-order functions. The course then dives into several topics in depth:<br />

• Mutation<br />

• Recursion and cycles<br />

• Objects<br />

• Memory management<br />

• Control operators<br />

• Types<br />

• Contracts<br />

• Alternate evaluation models<br />

What is the format of the course<br />

Classroom time is a combination of lecture and discussion. We learn by exploration of mistakes.<br />

How are students assessed<br />

There are about ten programming assignments and three written homeworks. The written ones are open-ended and<br />

ask students to explore design alternatives. Advanced students are given a small number of classic papers to read.<br />

Students spend over 10 and up to 20 hours per week on the course.<br />

Course textbooks and materials<br />

The course uses Programming Languages: Application and Interpretation by Shriram Krishnamurthi. All<br />

programming is done in variations of the Racket programming language using the DrRacket programming<br />

environment. Some versions of the course task students with writing programs in a variety of other languages such<br />

as Haskell and Prolog.<br />

- 367 -

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

Saved successfully!

Ooh no, something went wrong!