Exam 2 is Fri Mar 31 in Ball 214
COMP.3010 Organization of Programming Languages, Spring 2017
Prof. Fred Martin (201 section),
office hours M 23p (Olney 524); R 12p (Olney 524); F 12p (Olsen 302)
Kavya Kumar Vallurupalli
Narasimha Prasanth Chintarlapalli Reddy
Grader Office Hours:
Conor is available to meet with any student 25p Wed in quiet computer lab
Consider this syllabus as a contract between the professor (me) and the student (you).
We will be using the following book:
Structure and Interpretation of Computer Programs (2nd edition, 1996, ISBN 0070004846)
Analytical approach to the study of programming languages. Description of the salient features of the imperative, functional, logical, and object-oriented programming paradigms in a suitable metalanguage such as Scheme. Topics include iteration, recursion, higher-order functions, types, inheritance, unification, message passing, orders of evaluation, and scope rules. Elementary syntactic and semantic descriptions. Implementation of simple interpreters.
There are four categories of work that will be assessed:
You will apply the ideas developed in the class in an original software implementation. You may thus connect the ideas of the class with your own interestsmusic, robotics, art, databases, the web, networking, gaming, etc. The learning goal of the project is to have you find some real-world relevance of the ideas in the class.
Projects will be done in teams. The team must divide each project into approximately equal shares of work for each partner.
The Bottlenose Autograder
Programming assignments will be submitted to Bottlenose, the department's autograding system (at https://grader.cs.uml.edu).
The autograder will assign a provisional score to your work, based on determining that your functions produce the proper outputs given particular test inputs. Then, your work will be reviewed by a course assistant, and the score will be adjusted up or down as appropriate.
Example 1. A problem requires you to write a recursive function that uses an iterative (looping) structure. You submit a function that computes the correct result, but uses a recursive implementation structure. The autograder will pass your code as correct, but the course assistant discovers that your code did not use the required approach. Thus, you lose these points.
Example 2. A problem involves you writing a narrative explanation in a comment block and setting a machine-readable flag to
Example 3. Your implementation shows significant effort and contains partially correct code structures. But, the autograder marks you as simply wrong. The course assistant reviews your work and adds points.
You can submit multiple times to the autograder without penalty. (You are encouraged to do this.)
Only the final submission will be reviewed by the course assistant.
Assignments are due at 11p on the day that is specified.
Assignments will lose 20% of their value per day that they are late. 11:01p counts as a whole day. After the fifth day, they will not receive any score. (You may still submit them to the autograder for feedback, but the grade will automatically be set to 0, and the course assistants will not review them.)
Collaboration and Academic Integrity Policy
You are welcomed and encouraged to discuss ideas in the class with your peers. However, pair programming or other side-by-side work that involves sharing of code is not allowed.
The instructors are fully aware that solutions to many of the homework problems are available on the internet.
In addition to manually inspecting your code, the course assistants will routinely submit code to the Stanford MOSS system (Measure of Software Similarity).
If your code appears to have been copied from online solutions (or another student's solutions), you will be called into office hours to defend your work in an oral examination.
In short: By turning in an assignment, you attest that you have written the new code that it includes.
No Posting of Solution Code Policy
You are not allowed to post solution code to problem sets assigned in this class in public places (e.g. Github). This includes your own solutions as well as solutions that may be provided by the instructors.
This policy is a courtesy to future students, who to the fullest extent possible should have the opportunity to struggle with the problems in the same way that you do.
Please note that this is typical policy at premier computer science departments. E.g.:
Non-compliance will be pursued rigorously per UMass Lowell's academic integrity policy.
Students are responsible for all material covered in class, and are expected to attend all class meetings. Attendance will not be taken.
Exams will be announced at least one week before they are administered. In-person participation of final project presentations is required. Make-up opportunities will be made only in the case of emergencies, not scheduled conflicts (e.g., work).
Recordings of lecture content will be available at http://echo360.uml.edu/martin201617/orgofproglanguages.html
Discussion Group / E-Mail List
We will use Google Groups for class conversation and announcements. Please request to join the group at https://groups.google.com/forum/#!forum/uml-opl-spr17.