CMSC 433, Spring 2003
Programming Language Technologies and Paradigms
Syllabus
Topics
The topics for the class are taken from a variety of sources. There
will be readings from both texts and web
resources. Here is the tentative topic list (likely to be revised
shortly):
- Java (2 weeks)
- Basics
- Object oriented programming in Java
- Libraries
- Exceptions
- Inner classes
- Programming Abstractions, Techniques and Tools (2 week)
- Debugging
- Assertions/Invariants
- Testing
- Object-Oriented Design and Abstractions (3 weeks)
- Object invariants
- Class design
- UML
- Design Patterns (2 weeks)
- Threads and concurrency (4 weeks)
- Intro to Concurrency
- Java threads
- Java memory model
- Synchronization: locking (synchronized) and signaling (wait/notify)
- Design Forces (safety, liveness/deadlock, performance, reusability)
- To be determined (2 weeks)
Grading
Most of the topics in the class you will learn by doing, so there will be a
substantial emphasis on programming projects.
Here is a tentative breakdown:
| |
# |
% each |
% total |
| Programming projects |
6 |
8.33 |
50 |
| Mid-term |
1 |
20 |
20 |
| Final |
1 |
30 |
30 |
Project Grading
- Projects are due at 6pm on the due date.
- Projects may be turned in late up until sunrise
the next morning. Late submissions receive a 0.9 multiplier.
If you submit both on time and late, both are graded
and you receive the higher score (with the late submission getting the
0.9 multiplier).
- Submit early and often. The solution submitted
last before the deadline is the one that will be graded.
Afterwards, if you determine that a version you submitted before
the last one is more correct, we can grade that one instead with
a 0.9 multiplier.
- You must submit, by the late deadline,
a good faith attempt to complete each programming programming
project. If you do not, the instructor may fail you
for the entire course.
Academic Dishonesty
- The college policy on academic dishonesty is strictly
followed.
All graded materials (whether exams or programming assignments) must be
strictly individual efforts.
- 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
- 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.
- 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
- Discussions with other students about the project should
only be done in an environment with no program listings
available.
- 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.
- 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.
- Developing key insights to the programming projects yourself
will be critical to success on the mid-term and final. Do not
let anyone spoon feed you the way to solve the programming
projects.
- Automatic tools may 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.
