CMSC 330, Spring 2009

Sections 0101, 0102

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 1115, Tuesday and Thursday 11am-12:15pm
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.

  • May 21 Project 5, project 6, and final exam scores now on grades server. Final grades (13 As, 15 Bs, 11 Cs, 5 Ds) have been submitted. Everyone have a fun summer!

  • May 17 For project 6, you may use "&#" followed by 60 and 62 to generate the < and > characters in your xml output. A longer list of html character codes is here.

  • May 15 Final exams will not be graded until Tue 5/19, to give TAs time to finish exams. Final grades should available Wed 5/20.

  • May 15 Project 6 description was updated a few days ago to include limitations on use of "messages" and "message" data structures.

  • May 13 Today is the last day to fill out course evaluations online.

  • May 13 Release of Project 5 scores delayed until weekend to fix problems in public/release/secret tests.

  • May 12 Final exam (scheduled for May 14th from 4-6pm) location has been changed to CSIC 2117!

  • May 12 Review session by Leo Wed 5/13 from 10-11am in AVW 3258.

  • May 7 Please fill out course evaluations online.

  • May 7 Solutions to midterm 1 and midterm 2 have been posted.

  • May 7 Project 6 (Ruby on Rails Web Database) has been posted. Submit server is accepting submissions. Due date moved to May 18th.

  • May 5 Discussion sections for 5/6 cancelled due to TA medical reasons. You can work on project and/or final exam practice problems.

  • May 4 Practice problems and solutions for the final exam have been posted online.

  • Apr 28 Midterm 2 scores are now visible on the grades server. Midterm 2 & Quiz 3 will be given back in discussion Wed.

  • Apr 27 Final exam has been scheduled for May 14th from 4-6pm in Phy 1412

  • Apr 27 Srividya's office hours on Mon & Wed have been changed from Mon 10:15am-1:15pm, Wed 11am-1pm to Tue 3:30pm-5:30pm, Wed 10:15am-1:15pm. Fri office hours remain 10:15am-1:15pm.

  • Apr 26 Project 5 (multithreaded Metro simulation) has been posted. Submit server is accepting submissions. Due date moved to May 6th.

  • Apr 21 Solutions for quiz 1, quiz 2, quiz 3 posted.

  • Apr 21 Project 4 scores now visible on grades server.

  • Apr 19 Practice midterms for Midterm 2 have been posted and are available at the bottom of the class schedule. They include Spring 08 (solutions), Fall 08, Summer 06 (solutions).

  • Apr 20 Srividya was late for office hours due to traffic, will extend office hours until 1:45pm today to compensate.

  • Apr 19 Midterm 2 is this Wed, Apr 22. Practice problems and solutions have been posted online.

  • Apr 16 Please cc' me on any email questions to TAs, so I can see your questions and the TA's response. Also please email me if you cannot find a 330 TA during TA office hours.

  • Apr 14 Fixed typo in Productions for F should have been "F -> U ! | U", not "F -> F ! | U".

  • Apr 9 Pizza lunch noon-1:30pm on Apr 15th in AVW 3258 to discuss undergraduate research projects. Open to any CS major. No RSVP needed.

  • Apr 9 Amruta's office hours today are cancelled due to a family emergency.

  • Apr 8 Quiz 2 scores have been posted on the grades server. Problem 2b may not have been graded properly. You can check the type of your answer by typing it into the ocaml interpreter and seeing whether it reports "int list->int->int". If your solution is correct but you did not receive credit bring it back to me during class (or Leo during discussion) for a regrade.

  • Apr 7 Quiz 3 will take place Wed, Apr 15th. Topics include OCaml data types, context free grammars, parsing, and automata. Practice problems and solutions have been posted.

  • Apr 7 AWC 400 Level Lecture Series is taking place April 7 & 8 in CSIC 2117 at 5pm. Professors who are teaching 400 level courses will present an overview of the content as well as the logistical information (projects/exams/groups/etc) about how they plan to run the course.

  • Apr 4 Project 4 (interpreting regular expressions) has been posted. Submit server is accepting submissions. Due date is Fri, April 17.

  • Mar 31 CMSC 397, a new leadership development course, will be offered in Fall'09. Check link for details.

  • Mar 27 In general, where a project description differs from sample output, assume the sample output is correct and the description is wrong. Please send me an email whenever you discover such inconsistencies in the project description, so I can correct them quickly.

  • Mar 27 Changed description of solve_board(x,n) for Project 3 so that list of boards is from solved board to x.

  • Mar 24 Practice problems and solutions for Quiz 2 have been posted.

  • Mar 24 Fixed a few more Project 3 description typos, including [2;0] instead of [2,0] in description for get_vals(), and incorrect sample outputs for move_pos(). Can download updated

  • Mar 21 Eliminated debugging output found at beginning of all public test sample outputs for Project 3. Changed description of get_vals( ) to match public test sample outputs. Edit files manually, or download new files from updated

  • Mar 21 Full Project 3 posted. All public tests are now available. Submit server is now accepting submissions.

  • Mar 20 Preliminary version of Project 3 has been posted. Project description may change slightly, only 1 public test is available, and submit server is not yet accepting submissions, but you can get a head start.

  • Mar 11 Srividya's office hours today 11-1pm are canceled. Instead, she will have extra office hours this week: Thu 3:30-6:30pm and Fri 1:15-2:30pm.

  • Mar 11 Amruta is out sick and her TA hours are canceled this week.

  • Mar 10 The Students to Business (S2B) program provides opportunities for internships and jobs. More information here.

  • Mar 10 Midterm 1 scores now visible on the grades server. Midterms will be returned Wed during discussion.

  • Mar 10 Extension granted for Project 2. Deadline is now Mon, Mar 16th. 10 extra credit points to students who pass every public/release test by the original Thu deadline.

  • Mar 5 Submit server has been updated so that release tokens may be used any time (i.e., before passing all public tests). Hope this encourages students to submit their projects earlier!

  • Mar 2 Fixed link to Spring 2008 Midterm 1 sample solutions from schedule web page. Small corrections to solutions for Midterm 1 practice problems (RE for even #s of 1s, NFA for (0|01)*0).

  • Mar 1 Project 1 scores now visible on the grades server.

  • Mar 1 TA (Srividya) is out sick and her office hours are canceled this week.

  • Feb 26 Project 2 assigned and on submit server. Read description & get downloads here. Make a test submission to the submit server. Project is due Thu, Mar 12th.

  • Feb 23 Midterm 1 scheduled for Wed, Mar 4th in discussion. Will cover everything up to and including finite automata minimization. Practice problems and solutions provided. A number of sample midterms are available at the bottom of the schedule.

  • Feb 23 Quiz 1 scores now on the grades server. Graded quizzes will be returned during discussion section Feb 25.

  • Feb 12 Quiz 1 scheduled for Wed Feb 18th in discussion. Will cover programming language attributes and Ruby language features. Practice problems & solutions provided.

  • Feb 12 Project 1 assigned and on submit server. Read description & get downloads here. Make a test submission to the submit server.

  • Jan 29 Grade and submit servers should be up and running. You may retrieve your linuxlab login & password from the grade server.

  • Jan 28 All Monday discussion sections are canceled. Discussion sections will be only held on Wednesdays, starting Feb 4th.

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

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


Name Office E-mail Office Hours
Chau-Wen Tseng AVW 4135 Tue 2-3:30pm (or by appointment)
Srividya Ramaswamy Will meet in TA room Tue 3:30pm-5:30pm, Wed 10:15am-1:15pm, Fri 10:15am-1:15pm
Leonardo Claudino Will meet in TA room
Amruta Kulkarni Will meet in TA room Wed 3:30-5:30pm, Thu 11am-1pm