Contact Information
Course Material
References
Problem Sets
Practicum
Project
Exam
This course is a core course in the computer science curriculum. In this
course you will learn about the different language paradigms that computer
scientists have developed to create solutions to various problem domains.
You'll learn about the features of programming languages and you'll learn
how languages are implemented. So the course ranges from the very abstract
to the very particular.
Students must have a solid background in programming in a language (which one
doesn't matter), must understand how computers work at a low level (as taught
in the Computer Organizations and Systems course), and must be able to
apply basic mathematical concepts (as taught in the Discrete Math course).
This course will, as you might expect, entail a lot of programming, much of
it in languages that you probably have not heard of before. You will also
be expected to master quite a bit of theoretical material and to apply this
material to solve language problems such as creating grammars.
return to top of page
- I've put a translation file (Chineese-English) for you to test the
translation program of the term project. See the project links above.
- Don't do parts 3 and 4 on in-class exercise 2. We'll do those later. Just do
items 1 through 3 (with all their sub-parts).
- Project 2 due date is changed to Monday, 14 April.
- A grammar for project 2 is available here
Note that you may consider the nontermals <int>, <float>, and
<id> as terminals in your parser.
- Exam 1 will take place from 7-9PM on Thursday, 6 March
in Williams 224. Exam topics are
available under the "Exam" link.
- Problem Set 4 is due on Thursday, 20 March, in lieu of Practicum 5. Practicum
5 will be due in April. Project 2 is still due Thursday, 27 March. Both Problem
set 4 and Project 2 are available now.
- In-class_1 is available here.
- Please note that project 1 is due on Thursday, 28 Feb, at 11:59 PM
- Team project meetings are delayed until next week (3-7 March)
- Here's what's coming up:
- Pract 4 due Thursday, 21 Feb.
- PS 2 due
Monday, 25 Feb.
- Proj 1 due Thursday, 28 Feb (change!).
- Term project meeting week of 25 Feb.
- PS 3, Monday, 3 March
- Exam 1, Thursday 6 March.
- Pract 5, Thursday, 20 March
- Project 2, Thursday 27 March.
- Problem set 2 is delayed until Monday, 18 February
- Term project team members and language requests are due this Thursday
(not Tuesday). You can email them to me or hand in a written request.
- Problem set two is due Monday, 11 February. Practicum 2 is due
Thursday, 7 February.
- Another Scheme reference (thanks Mike):
Teach yourself Scheme in Fixnum days
- Ever wonder if functional programming is ever used in the "real" world?
Check out this link:
functional programming in the real world. You'll be surprised!
- Tutorials on call/CC are available at:
- There's an interesting discussion on continuations at
http://lambda-the-ultimate.org/node/86
- Check out this
comparison between languages. The site uses a number of standard benchmarks
run on different languages on the Linux platform. Check out the SML benchmarks
in particular (they used an optimized SML compiler called MLton).
return to top of page
Return to John Barr's Home Page