CMSC 330, Summer 2009

Organization of Programming Languages


Course Description A study of programming languages, including their syntax, semantics, and implementation. Several different models of languages are discussed, including procedural (Ruby), functional (OCaml), and object-oriented (Java). Language features such as formal syntax, scoping and binding of variables, higher-order programming, typing and type polymorphism, and object inheritance are explored.
Location CSI 2117, Monday, Tuesday, and Thursday lecture
CSI 2117, Wednesday and Friday discussion
Textbooks There are no required or recommended texts. However, there may be assigned readings. See the resources page for online links.


Important announcements related to the course will be posted on this page. Make sure you check this page at least once a day.

  • July 19 Project 5 has been posted.

  • July 14 Project 4 has been extended until Sunday midnight due to the exam tomorrow.

  • July 2 I have bumped up the tokens for project 3 from 3 tokens to 5 tokens.

  • July 2 Jonathan will hold makeup office hours today from 2-3pm.

  • July 2 I have an emergency and I need to cancel class and office hours today. I will post here if and when I can get the TA to hold make-up office hours today/tomorrow. In case that doesn't happen, I will be by my computer until the evening tonight to answer questions students would have brought to office hours today.

  • July 1 Project 3 has been extended until Sunday.

  • June 29 I have posted instructions on how to receive extra credit by participating in a human study in the forum.

  • June 24 I will switch discussion and lectures tomorrow 6/25 and Friday 6/26 so that we can go over Ocaml in discussion sooner. Friday we will hold lecture on Context Free Grammars.

  • June 23 Project 1 has been extended by 1 day to focus on the exam. It is now due Wednesday 23:59:59.

  • June 22 Project 1 has been extended by 1 day due to submit server issues.

  • June 21 The submit server is working again, so please continue to use it for your projects.

  • June 21 It appears the submit server may be unresponsive. If you are passing all public tests at home, you may email me your code today and I will run the release tests for you and send you results. Doing so will be counted as running a release test (and using a token, with a 12 hour window between release tests). I will put a note here once the submit server starts to work again.

  • June 21 We will have a midterm review on Tuesday. Please bring questions and/or slides that you need clarification on.

  • June 20 I have added 2 more release tokens to project 2 for a total of 5 tokens.

  • June 18 I will be in Charlottesville tomorrow - Jonathan will hold office hours during discussion-time and afterwards.

  • June 2 I've added students to the submit server database. Please try to log in.

  • June 1 I've posted instructions on using Ruby in Windows in the class forum.

  • May 28 You can download Ruby 1.8.6 for Windows here.

  • May 27 Welcome to 330! If you do not have an OIT account, you should request one right away.


Name Office E-mail Office Hours
Kinga Dobolyi Will meet in TA room Monday, Tuesday, and Thursday 11-noon and by appointment
Jonathan Turpie Will meet in TA room Wednesday and Friday 11-noon