Programming Language Technologies and Paradigms
Tom Yeh
Adam Porter
MW 2:00-3:15pm
TuTh 9:30-10:45am
CSI 3120
CSI 2107
Topics: Concurrency, modeling concurrent systems, Java threads, Java memory model, synchronization: locking (synchronized) and signaling (wait/notify), design forces (safety, liveness/deadlock, performance, reusability), threaded programming patterns, synchronizers, advanced locking, non-blocking data structures, distributed Programming (RMI, MapReduce).

Updates and announcements

April 30

Project 5 has now been posted: Project 5 - MapReduce

April 23
The course evaluation site is now open. Please submit your evaluation to help improve this course. The URL is:

February 8th
Uploaded the slides we'll be using in the lecture on Wednesday (How to solve Project 0 - Getting Started with BitBucket, Git and Eclipse): Ungraded assignment 0 ()

February 6th
We posted some grading guidelines to have in mind when submitting your code. We also pushed to your individual repositories the test results for Project 0 (The tests were performed on February 4th, at approximately 9:00 AM - any changes submitted after that time were not taken into consideration). Please see Details about Grading, and check test.output in your repositories to see how you did. If anything is unclear, or you can't find test.output in your repository, write me an email ( and I'll explain what happened.

February 4th
We posted some statistics regarding Project 0 results on the project page: Ungraded assignment 0.

February 3rd
Project 1 - Bidding Server has been posted.


Section 0101
Section 0201


1. Bidding Server (Due 2/24)
2. Restaurant Simulation (Due 3/16)
3. Maze Solver (Due 4/13)
4. RMI (Due 4/27)
5. MapReduce (Due 5/11)

Course information

Major Scheduled Grading Events:
  • Midterm #1, Midterm #2, Final exam.
Nominal Grading Scheme:
This grading scheme assumes a good faith effort will be made by each student. The professors reserve the right to modify the grading scheme as we deem appropriate.

% each
% total
Programming projects

Email (
Office Hours
Section 0101
Tom Yeh
By appointment only
4465 AVW
Section 0201
Adam Porter
Tu 11:00am-12:00pm, W 11:00am-12:00pm or by appt.
4125 AVW
Florin Chelaru
MW 12:45-1:45pm
(Please let me know in advance when you intend to come -
I will hold the office hours by request. Also, if nobody is there
by 1:00 I will leave early.)
1112 AVW
Emre Sefer
Tu 1:00pm-2:00pm, Th 11:00am-12:00pm
(Please let me know in advance when you intend to come -
I will hold the office hours by request. Also, if nobody is there
after 15 mins. I will leave early.)

external image jcipMed.jpg
Java Concurrency in Practice by Brian Goetz, Tim Peierls, Joshua Bloch, Joseph Bowbeer, David Holmes and Doug Lea. ISBN 0-321-34960-1.
Late assignments and excused absences policy:
All assignments are due at the beginning of the class on the day that they are due. The paper part (if any) must be turned in in class, and the electronic part (if any) must be submitted by the time of the beginning of class. Late assignments will be strictly penalized. Exceptional circumstances will be considered only if discussed with me in advance. Students claiming an excused absence must apply in writing and furnish documentary support (such as from a health care professional who treated the student) for any assertion that the absence qualifies as an excused absence. The support should explicitly indicate the dates or times the student was incapacitated due to illness. Self-documentation of illness is not itself sufficient support to excuse the absence. Instructors are not under obligation to offer a substitute assignment or to give a student a make-up assessment unless the failure to perform was due to an excused absence. An excused absence for an individual typically does not translate into an extension for team deliverables on a project. All late assignments will have points deducted as follows:
  • 20%: Up to 9am the day after the due date.

Academic dishonesty:
The University of Maryland, College Park has a nationally recognized Code of Academic Integrity, administered by the Student Honor Council. This Code sets standards for academic integrity at Maryland for all undergraduate and graduate students. As a student you are responsible for upholding these standards for this course. It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit

Here are some highlights of this Code as it applies to this course:
  • The standard penalty for any academic dishonesty, including facilitating academic dishonesty, is to receive a grade of XF in the course. This grade denotes failure due to academic dishonesty, and your transcript will be so annotated.
  • How to avoid getting an XF
    • All graded materials (whether exams or programming assignments) must be strictly individual efforts.
      • Allowing another student to examine a listing of your program or examining the listing of another student's program, for any reason, is strictly forbidden.
      • We encourage discussions about concepts and ideas behind programming projects. However, such discussions with other students about the project should only be done in an environment with no program listings available. That is, you are discouraged, in the strongest possible terms, from making a habit of getting together with another student at adjacent workstations while you work on a programming project with the idea that you will limit yourselves to discussion of problems such as syntax errors only. There are too many temptations, and if by chance your programs wind up being very similar, you will find it difficult to make a convincing argument that you limited yourselves to allowable discussions of the project.
    • Logging onto another student's account, for any reason, is academic dishonesty.
    • Attempting to falsely represent the correctness of your program, or to delay other members of the class from completing a programming assignment, is academic dishonesty
  • We expect you to follow all CSC guidelines for responsible machine usage.
  • The instructor is the information owner for all CSIC accounts in this class, and all files in those accounts may be inspected by him at any time, and may be used by him as he sees fit to support educational ends.
    • Automatic tools and manual inspection will be used to compare your solution to that of every other current or past student in this class, so it will be very difficult to hide any collaboration.
    • The risk of getting caught is too high, and the standard penalty is way too high (grade of XF). In Fall 1997, 14 students who thought they could hide their collaboration in CMSC 430 received grades of XF. Over the past couple of years, cheaters in CMSC 433 have been caught and received grades of XF. Recently, cheaters in CMSC 412 were caught that had cheated on students' work from prior semesters.

Policies and responsible conduct:
  • Cell phones. As a courtesy to your fellow classmates, pagers and cell phones must be off or on vibrate during class. Having cell phones or pages ring during class repeatedly can result in points being deducted from a student's semester grade.
  • Office Hours and E-mail. Questions concerning the content of the course or project should, as a general rule, be directed to the class discussion forum. This allows questions to be answered by whoever is monitoring the forum, and the answer can benefit all students. The instructors are happy to answer questions during office hours and on the discussion forum. However, office hours and email are not intended as a replacement for attending lectures and recitations. As a result, instructors will only respond to questions, whether during office hours or on the newsgroup, from those students who regularly attend class. Instructors may not respond to electronic questions instantly. However, the instructors will try to respond to email by the next regularly scheduled office hour after it is sent. If a student cannot make it to scheduled office hours, he or she is encouraged to make an appointment by e-mail or after class.
  • Accommodating Disabilities. Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support services (DSS) within the first two weeks of the semester.