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.
Project 2 is due at the final exam period, Monday, 12 December, at 10:30.
Project 1, Part 1 is due on Friday, 4 November.
Prob Set 3 is due on Monday, 24 October
Prob Set 2 is due on Wednesday, 12 October
No practicum or problem set the week of 3 October.
Exam 1 is on Tuesday, 4 October, in class.Pract 4 is due Tues, 27 Sep.
Pract 3 is due Tues, 20 Sep.
Pract 2 is due Tues, 13 Sep.
Pract 1 is due Tues, 6 Sep.
Install the following on your laptop (works on both Mac and Windows):
You can find instructions for doing this in the Pract 1 slides and on the chapter 1 lynda.com videos in the start-up playlist.
Prob Set 1 is due Wednesday, 31 Aug.