CMSC 330, Spring 2010

Organization of Programming Languages


Important announcements related to the course will be posted here. Please check this page daily.

  • May 20 - Project 5 scores and final letter grades are now visible on the grades server. A grade of J indicates you have been referred to the Student Honor Board for judicial review of suspected academic dishonesty. The Student Honor Council will contact you with details.

  • May 17 - Dr. Hicks will hold office hours on Tuesday, May 18, 9:30-11, and Wednesday, May 19, 11-noon, for those who want to stop by to see their exam.

  • May 16 - Final exam scores are now posted on the grades server.

  • May 10 - Sample final exams & solutions posted on class web page here. Solutions also posted for midterms 1 & 2.

  • May 3 - The project 5 deadline has been pushed to Monday, May 10 (at 11:59:59pm). There will be no project 6.

  • May 2 - Prof. Tseng's office hours canceled this week and next due to travel, but he'll still be able to answer questions via email and 330 Forum posts.

  • Apr 30 - Course evaluations can now be filled out, until May 12.

  • Apr 30 - Fixed submit.rb for project 5, and added some clarifications to the project descriptions.

  • Apr 30 - A couple more changes to project 5. Updated to add call to Collections.sort(lines) in displayState(). Modified submit.rb to only submit Java files in the metro subdirectory. Updated CALFUZZER-README to deal with packages.

  • Apr 29 - Updated to add call to initSimulation() to Please update your project.

  • Apr 29 - Submit server is now accepting submissions for project 5. Some minor code changes are necessary, see the project description for details. has been updated so that it can be imported into Eclipse as a project. Public tests have been implemented as JUnit tests. Due to the delay in activating the submit server, the number of release tokens has been increased to 5/day.

  • Apr 28 - Quiz 3 will take place this Friday in discussion. It will cover lambda calculus and multithreading. Practice materials here.

  • Apr 27 - Ramaswamy's office hours for today have been canceled, due to illness. She will help Khoa next Thursday during his office hours, since there are often many students looking for last-minute help.

  • Apr 25 - Small edits made to the project 5 description, to add some clarifications and remove some stale bits.

  • Apr 23 - Project 5 description posted here. Submit server will be set up this weekend.

  • Apr 22 - Midterm 2 scores are visible on the grades server. TAs will hand back exams Friday in discussion.

  • Apr 20 - Posted Quiz 2 and solution here.

  • Apr 20 - Midterm 2 will be tomorrow, Wed, Apr 21. It will cover OCaml, CFGs, parsing, and operational semantics. It will not cover lambda calculus or multithreading. Study materials are available here.

  • Apr 20 - Posted practice problems & solutions for operational semantics.

  • Apr 19 - Proj 4 scores have been posted.

  • Apr 18 - Prof. Hicks will be gone M-W, so Mark Daly will be covering his office hours (TW 10-11am) in the TA room.

  • Apr 14 - Prof. Tseng's office hours changed to 4:45-5:30pm this Wed & next week to accomodate giving Prof. Hick's 2pm lectures.

  • Apr 8 - The midterm has been pushed back one week, to April 21.

  • Apr 8 - The project 4 deadline has been extended by two days, until April 14 (rather than April 12).

  • Apr 7 - Final exam has been scheduled for Thursday, 5/13, 4-6pm, in PHY 1412.

  • Apr 5 - Project 3 scores posted. Quiz 2 examples posted here.

  • Apr 1 - Project 3 scores have been delayed to give students who used disallowed library functions (e.g., List.length, List.sort, List.hd) a chance to resubmit their project by Friday.

  • Mar 29 - Quiz 2 has been pushed back 1 week (to April 9) to avoid conflict with Passover and Good Friday. Project 4 has been pushed back 3 days (to April 12) to avoid conflict with the rescheduled Quiz 2.

  • Mar 26 - Project 4 is now set up on the submit server. Download a new copy of, some public tests & outputs have been changed.

  • Mar 26 - Project 4 is now available online here. You can start working on the Scheme programming and interpreter. We will discuss parsing next Monday.

  • Mar 24 - Hicks Friday office hours canceled (Mar. 26). Will hold office hours today (Mar. 24) 3:30-5:30pm.

  • Mar 12 - Midterm 1 scores have been posted on the grades server.

  • Mar 8 - Project 2 scores have been posted on the grades server.

  • Mar 4 - Project grading policy on submit server is "release-test aware", so you'll get the highest score from one of the following 4 submissions:
    • Last on-time compilable submission
    • Last on-time compilable release-tested submission
    • Last late compilable on-time submission (-10%)
    • Last late compilable on-time release-tested submission (-10%)

  • Mar 4 - Project 3 has been posted here. It will be due Thu, Mar 25th.

  • Mar 4 - Midterm 1 will be given during lecture Wednesay, March 10th. It will cover programming languages, Ruby, regular expressions, and finite automata. It will not cover OCaml.

  • Mar 4 - Srividya will provide extra office hours today from 4:30-5:30pm.

  • Mar 3 - Quiz 1 scores are now available on the grades server.

  • Mar 3 - Due to extenuating circumstances involving several students, the project 2 late penalty has been dropped to 5% (rather than 10%). The due date for the project is the same.

  • Feb 25 - Srividya's office hours changed from 11-noon to 3:30-4:30pm today.

  • Feb 23 - Project 1 scores have been posted on the grades server.

  • Feb 23 - Quiz 1 will be given during discussion Friday, Feb 26th, and will cover Ruby, regular expressions, and finite automata. Practice problems and example quizzes (and their solutions) are available here.

  • Feb 23 - Tseng office hours changed from 2-3pm to 2:30-3:30pm. Office hours canceled Wed, Feb 24 (will be covering Hicks 2pm lecture).

  • Feb 21 - Office hours rescheduled this week due to travel and illness:
    • Hicks office hours on Tuesday (normally 10-11am) moved to 2-3pm, and Friday office hours (normally 10-11am) shifted to Monday from 1-2pm.
    • Dogruel (TA) office hours on Monday (12-2pm) moved to Thursday 2-4 pm
  • Feb 16 - Mini-job fair for CS students. Several companies (Google, Amazon, Microsoft, Booz Allen Hamilton, DOJ, Macedon Consulting and Accenture) will be on campus making presentations and meeting students on Thu, Feb 18 in CSIC from 5:30pm-8:00pm.

  • Feb 16 - Project 2 posted online here for students wishing an early start.

  • Feb 15 - Project 1 deadline moved to 11:59pm Friday, February 19, due to lost office hours. Hicks' office hours will be moved from Friday at 10am to Thursday at 10am.

  • Feb 9 - Lectures and office hours canceled Wed, Feb 10. Project 1 deadline moved to 11:59pm Wed, Feb 17 due to more snow.

  • Feb 8 - Project 1 deadline moved to 11:59pm Monday, Feb 15 due to snow.

  • Feb 7 - Lectures and office hours canceled Mon, Feb 8 due to snow.

  • Feb 5 - Lectures and office hours canceled today, due to coming snow.

  • Jan 31 - Project 1 posted online here. It will be due midnight, Friday, Feb 12. Submit server is ready for submissions. You may use release tokens before passing all public tests.

  • Jan 26 - Get your Linuxlab accounts from the grades server.

  • Jan 21 - All Friday discussion sections will be held in CSIC 2120 (location of 1pm & 2pm sections have been changed to match earlier sections).


Name Office E-mail Office Hours
(also available by appointment)
Prof. Mike Hicks AVW 4131 TWF 10-11am
Prof. Chau-Wen Tseng AVW 4135 MW 2:30-3:30pm
Srividya Ramaswamy Will meet in TA room Tue 11:30-12:15pm & 3:30-6pm, Thu 11:30-12:15pm, Fri 1-2pm
Eylul Dogruel Will meet in TA room MW noon-2pm, Fri 3-4pm
Khoa Doan Will meet in TA room Mon 4:30-6pm, Thu 11:45-1:15pm & 4-6pm


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.
Lecture Location CSI 3117
Lecture Times Monday and Wednesday 2:00-3:15pm (0101, 0102, 0103) and 3:30-4:45pm (0201, 0202, 0203)
Discussion Location CSI 2120
Discussion Times Friday 9am, 10am, 11am, noon, 1pm, 2pm
Textbooks There are no required or recommended texts. See the resources page for useful online links.

Office Hours

10:00 Hicks Hicks Hicks
11:30 Ramaswamy Ramaswamy
12:00 Dogruel Dogruel Doan
1:00 Ramaswamy
2:30 Tseng Tseng
3:00 Dogruel
3:30 Ramaswamy
4:00 Doan
4:30 Doan