Description: Description: Description: Description: Description: Description: UMD_logo

CMSC 433-0101

Programming Language Technologies and Paradigms

Spring 2014

Syllabus

Overview:

This course covers principles associated with programming concurrent and distributed software.  Specific topics to be covered will come from the following list:  concurrency, threads and processes, synchronization, design considerations (safety, liveness/deadlock, performance, reusability), algorithm parallelization, and distributed system development.  Other topics may be introduced at the discretion of the instructors.  Here is a tentative lecture schedule for the semester.

Prerequisites:

CMSC 330 and permission of CS Department

Instructor:

Rance Cleaveland
4111 AV Williams Building
rance “at” cs umd edu

301-405-8572

Office hours:  M 2-3, W 4:45-5:45

Teaching

Assistants:

Hitesh Maidasani (Section 0101)

Khoa Ha (Section 0201)

hitmai “at” cs.umd.edu

khoaha “at” terpmail.umd.edu

Office hours:  TuTh 12:15-1:15

Location:  AVW 4103

Office hours:  M 10-11, W 2-3

Location:  AVW 4103

 Students should feel free to consult either TA for assistance.

Time / Place:

3:30 – 4:45 MW / CSIC 1122            

Other Section:

There is another section of CMSC 433 being taught this semester by Professor Adam Porter.  While not identical, the two sections will be closely aligned, and in particular will use the same projects and share TA resources.

On-Line Discussion Forum:

This class will be using a Piazza web-site for on-line announcements, questions and such.  The web address is https://piazza.com/umd/spring2014/cmsc4330101/home.  Students should make sure they have access to this site; any who do not should contact the instructor.

Text:

There is no required textbook, although the following is recommended.  It is available in both hard-copy and e-book formats.

Brian Goetz et al.  Java Concurrency in Practice.  Addison-Wesley, Upper Saddle River, NJ, 2006.  ISBN 9780321349606.

Coursework

and Grading:

The different tasks to be assigned are as follows, together with how they will be weighted for final grades.

  1. Midterm                                              20%
  2. Projects (5)                                          50%
  3. Final exam                                           30%

 

Grades will be assigned based on the following anticipated ranges.  These may be expanded based on results obtained during the semester, but they will not be made smaller.  The lower and upper parts of each range will be reserved for +/- grades.

Range

Grade

90 – 100

A

80 – 89

B

 

70 – 79

C

 

60 – 69

D

 

0 – 59

F

 

 

The CS Department’s grades server will be used to record grading information and make it available to students.

Tests:

The midterm and final exam will be administered in class.  The lecture schedule gives the dates.  Requests to take tests on alternative days will generally only be granted in the following circumstances:  (1) a student has a religious observance falling on the same day that conflicts with the announced test date, or (2) a student is participating in an official University-sponsored activity that conflicts with the announced test date.  Any such request must be made at least one week in advance so that alternative arrangements can be made.

In case of incapacitating illness on the day of a test, the student must contact his / her instructor as soon as possible, preferably by e-mail on the same day.  In this case, the student must produce, within one week of the original test date, a written note from a health-care professional attesting to the nature and severity of the illness.  The note must indicate the dates on which the student was incapacitated and a phone number for follow-up verification.  When this documentation is provided, alternative arrangements for the test will be made.  If no such documentation is produced within the given time frame, a score of 0 will be given on the test.

Projects:

The course has a heavy project focus and will involve a substantial amount of programming.  Projects are due on the date and time specified when they are assigned; extensions will only be given at the discretion of the instructor. Any request for an extension must be made in advance, and will only be granted if the student has a valid reason for missing a significant portion of the time during the period between the assignment of the project and its due date.  Valid reasons include (1) a religious observance, (2) participation in an official University-sanctioned event, and (3) incapacitating illness.  Any claims of illness must be supported by documentation from a health-care professional giving the dates of incapacitation and a phone number for follow-up verification.

The CS Departments submit server will be used to handle project submissions.  Please note, however, that grading of submissions will not use the testing functionality of the submit server; in particular, no public / secret / release tests will be provided.  Students are responsible for conducting their own testing in advance of submitting their projects.  Unless explicitly forbidden in a project assignment, however, students may share tests, and discuss them with one another.

Projects will generally require coding in Java, although assignments in other languages, and using other packages, may also be made.  The version of Java that will be used in Java 7.  It is recommended that students install Java 7, Eclipse 4.3, and the Eclipse course-management plug-in on their personal machines if they wish to use their own equipment to work on projects.  The CS department has tutorials on how to do this, and how to use Eclipse / JUnit / etc.

Academic

Integrity:

Unless stated otherwise by the instructor, any assignment you turn in for grading must be your own work.  In particular, any code you submit as part of a project must have been written by you, and any solutions you prepare for a midterm or final exam must be exclusively of your own devising.  Any transgressions of these principles are violations of the campus Code of Academic Integrity and will be handled as such.  The webpage of the Student Honor Council contains a detailed explanation of what constitutes academic dishonesty, which includes not only cheating, fabrication, and plagiarism, but also helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work.

Each case of suspected academic dishonesty will be referred to the University's Office of Judicial Programs. If the student is found to be responsible of academic dishonesty, the typical sanction results in a special grade "XF", indicating that the course was failed due to academic dishonesty. More serious instances can result in expulsion from the university. If you have any doubt as to whether a contemplated act of yours might constitute academic dishonesty, please consult one of the course instructors.

Excused

Absences:

It is the student's responsibility to inform the instructor during the first two weeks of the semester of any intended absences from exams or class for religious observances.  Absences related to official University events must be brought to the instructor’s attention at least one week in advance of the absence.

Academic

Accommodations:

Pursuant to university policy, any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide his or her instructor with a letter of accommodation from the Office of Disability Support Services (DSS) within the first two weeks of the semester.  Note that arrangements for individual exams must be made with the instructor at least one week in advance.