||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.
CSI 2117, Monday and Wednesday 3:30-4:45pm
||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 22 Final grades for 330 (27 A's, 32 B's, and 19 C's)
have been submitted to UMEG. Wish everyone a good summer!
- May 20 The submit server has been activated for Extra Credit Project 1. There are only 2 tests, public test 1 and release test 1. Public test 1 is simply the example used in the project description.
- May 19 The curve for the course at this point (for the grades server in Student View) is around: As > 89%, Bs > 79%, Cs > 66%, Ds > 56%. The grade server is showing about 6% higher scores for students, since it doesn't include homework scores. So a 86% on the grades server in Student View is really around 80% in Instructor View.
- May 19 A rough guestimate of the overall curve for the course at this point would be: As > 83%, Bs > 73%, Cs > 60%, Ds > 50%.
- May 19 Fixed typo in Extra Credit Project 1 instructions. Should be type "ruby script\generate scaffold Message name:string comment:text", not "Messages".
- May 18 Final exam scores have been posted on the grades server.
The mean was 166/230, median was 171, max was 230 (with up to 16 pts extra credit). Standard deviation was 31.
- May 18 Extra credit project 1 has been posted.
- May 14 Posted lecture on Alligator
Eggs, an amusing (alternative) perspective on the lambda calculus.
Meant to cover it during the review session, but the projector in CSIC 3120
You do not need to know anything about Alligator Eggs for the final exam,
but it may help you learn how to evaluate lambda expressions if you
are having trouble.
- May 13 A final exam review session will be held Wed 5/14 from 3-4pm in CSIC 3120.
- May 13 Homework 1 solutions
have been posted online.
- May 13 The CS dept will be hosting a Study Day Wed, May 14th.
A room (CSIC 3120) has been reserved from 9am-7pm for 330 students to study.
A study day "feast" will be held from 4-6pm in the lobby of CSIC.
- May 11 2nd revised version of Homework 1 is online. Changes made to polymorphism to fix Java syntax errors.
- May 9 Revised version of Homework 1 has been posted online, eliminating typos & with small changes to last 4 questions on polymorphism.
- May 7 Homework 1 has been posted online.
It will be due Monday, May 12 at 11am. You may turn in a paper copy to your TA in discussion, or submit it online via the submit server as a PDF file.
- May 5 Project 4 scores are now available on the grades server.
- May 1 Students may submit Project 4 until May 2nd, 11:59pm
(2 days past the deadline), with a 20% penalty.
- Apr 28 1-day extension for Project 4, deadline is now 11:59pm Wednesday, April 30th, 2008.
- Apr 27 The project 4 .submit file was missing the project number.
To submit from the command line, change line 5 from "projectNumber=" to
"projectNumber=4" in .submit, or download a new .submit
- Apr 26 The CS Undergraduate Office will be presenting
the new 5-year combined Bachelor's-Master's program in Computer
Science this Tuesday, April 29 at 5pm in CSIC 1121. Announcement
is online here.
- Apr 21 Project 4 submissions are now
accepted on the submit server. Submit your project and check out
the release tests!
- Apr 17 Project 4 description and files updated.
More examples have been added to the project description.
A new public test (and example output) has been added.
- Apr 16 Project 4 description posted.
Project is due Tuesday, April 29.
- Apr 12 Midterm 2 grades have (almost all) been posted, and will be
returned at discussion Monday. Average score was 78 (out of 112).
- Apr 11 Grades will be assigned based on a curve at the end of the semester. Average scores so far: Projects 1-3 (93, 70, 91), Midterm 1 (61).
- Apr 8 Project 3 grades have been posted on the grades server. Midterm 2 will be graded Friday evening & grades will be posted this weekend.
- Apr 7 Midterm 2 solutions posted. We will grade midterms later this week & return them in discussion next week.
- Apr 6 Full solutions for midterm 2 practice problems posted.
- Apr 6 Fixed a number of typos to slides on Parsing and Practice Problem 3 solutions. In particular, the left factoring/eliminating left recursion algorithms were incorrect. A production (L->epsilon) was put in the left factoring algorithm when it should have been in the eliminating left recursion algorithm.
- Apr 6 Partial solutions for midterm 2 practice problems posted.
- Apr 4 Practice problems for midterm 2 have been posted. Midterm 2 will cover material from lectures 7-14 (Context Free Grammars to OCaml - Closures & Currying).
- Apr 2 1-day extension for Project 3, deadline is now 11:59pm Saturday, April 5th, 2008.
- Apr 1 Added examples
of how I/O may be used for part 3 of Project 3.
You may also find the code examples covered in
discussion on Mar 31 useful.
- Mar 29 Solutions for Practice Problems 3 posted
- Mar 28 Final exam will be held Thursday, May 15, 4-6pm, CSIC 1115.
- Mar 28 Public/release tests have been added to
Project description has been modified, mostly to simplify the
portion of the project on using lists of booleans to represent integers.
The archive file p3.tar containing your
starting files has been updated as well, you should download it again
(be careful not to overwrite your existing code when unpacking
the archive if you've already modified part1.ml, part2.ml, or part3.ml).
- Mar 27 Project 2 scores are now visible. We'll enter
scores for very late submissions later.
- Mar 26 Students can make a very late Project 2 submission
until Thursday, March 27 11:59pm with a 20% penalty.
- Mar 26 Midterm 2 will be held Monday, April 7th , 3:30-4:40pm, CSIC 2117 (in lecture).
- Mar 26 Project 3 assigned.
- Mar 25 Project 2 deadline extended by 2 hours (to Wed 2am)
due to brief submit server outage.
- Mar 10 Eylul's Tuesday office hours will be from 2-4pm
(instead of 4-6pm) for the rest of the semester.
- Mar 10 Turn in your midterms for regrades by Wed 3/12.
- Mar 5 Posted
Midterm 1 solutions.
Midterm 1 will be returned by your TAs in discussion Monday.
- Mar 5 Project 2 testing has been activated
on the submit server. There are 8 public tests and 11 release tests.
Submit server ignores all output lines beginning with %.
Project 2 deadline is midnight Tuesday, March 25th.
- Mar 5 Preliminary Project 2 description has been posted.
- Mar 4 Wanli's TA office hours on Wed 3/5 have been
moved to Thu 3/13.
- Mar 3 Midterm 1 scores should now be available on the
grades server. Mean
score was 57, high score was 89. The exam seems to have been
too long, my apologies. Future 330 midterms will be held during
lecture, so you'll have more time to take the test.
- Mar 3 Internship application deadlines extended to Friday Mar 7 for
OPIS, Freewebs, Figleaf, GlobalNet and Ensco. Check
web page for details.
- Mar 2
Fixed 3 errors (3i,6i,6j) in solutions
for Midterm 1 practice problems.
- Mar 1
Fixed 2 errors (6f,6k) in solutions
for Midterm 1 practice problems.
- Mar 1
for Midterm 1 practice problems are now available.
Two midterms from previous semesters
are also available
- Feb 29
next Wednesday (Mar 5) at 11am on programming, with free pizza!
- Feb 28
Practice solutions 2
are now available. An
(with animations displayed on multiple slides) is also available.
- Feb 27
for midterm 1 have been updated to correct some typos in Ruby syntax.
- Feb 26
for midterm 1 are now available. Practice problems
will not be graded. Partial solutions will
be provided later this week.
- Feb 25 Project 1 grades are now available on the
grades server. The
average score for the project was 92.
- Feb 19 Project 1 description has been updated to include
- Directions on direct project submission from your computer
- List of project clarifications & forum postings in response to student questions
- Clarifications on leading 0s and quotes in the weblog request entry
- Feb 19 Project 1 release tests have been added.
- Feb 18 Midterm 1 will take place Monday, March 3rd during discussion.
- Feb 14 Instructions for submitting project 1
have been updated on the project 1
- Feb 14 The file sample.log has been updated.
Please download and use the new version
for testing your web log file processing Ruby script.
The old version of sample.log contained carriage return
(CR) and linefeed (LF) characters instead of
newline (\n) characters.
- Feb 14 Submit server should be working for
project 1 public tests. Release tests will be added later.
- Feb 12 Class accounts have been set up.
You may obtain your class accounts
(for linuxlab.csic.umd.edu) from the
by logging in using your UMD Directory ID. You should
also be able to log in to the
and submit project 1. The testing setup on the
submit server is not yet active (so your submissions
will be recorded but not tested).
- Feb 6 Project 1 assigned here.
- Feb 3 Discussion meetings Monday, Feb 4th will go over some example
Ruby programs here.
- Feb 3 For Windows systems, you may install Ruby 1.8.6 One-Click Installer here. The Ruby "pickaxe" book provides a summary of Ruby features.
- Feb 3 Prof. Tseng's office hours are canceled this Mon & Wed.
- Jan 23 Discussion meetings are canceled for Monday, Jan 28th.
- Jan 23 Welcome to 330! If you do not have an OIT account,
you should request one right away.
(or by appointment)
|Prof. Chau-Wen Tseng
||2:30PM-3:30PM (Mon and Wed)
||Will meet in TA room.
|| Fri 1-5pm
||Will meet in TA room.
|| Mon noon-2pm, Tue 2-4pm
||Will meet in TA room.
|| Wed 11am-3pm