345: Programming Language Paradigms

Spring 2012
MWF 2:15pm - 3:20pm HR509

Instructor: Terence Parr

TA: Tim Likarish likarish at gmail
Office hours: Any time HR531 door is open or by appointment
First day of class: Monday,January 23, 2012
Last day of class: Wednesday, May 9, 2012
Exam 1: March 9, 2012 (Friday)
Spring break: 312-16 M-F
Exam 2: May 9 (last day of class)

Abstract

Requirements

CS245 is required background and is critical to the successful completion of the class. Undergraduates will have had some Python (CS110) and more in-depth C (CS220). Students must be comfortable with: Your first project will test your knowledge of C and data structures using a simple algorithm to traverse a graph. Either you must have sufficient knowledge of C to do the project or learn it quickly.

Topics

Lecture notes

Projects

See CS345 Projects

There are no late projects.

I will deduct 10% if your program is not executable exactly in the fashion mentioned in the project.

Instruction Format

Class periods of 1:05min each 3 times per week for 15 weeks. Instructor-student interaction during lecture is encouraged. We will have weekly online quizzes.

Expect projects and other outside work in this class to be a minimum of 8 hours per week.

Grading

Your grade will be computed according to the following relationship:
10%Labs/Quizzes/Class participation
60%Projects
15%Exam 1 (March ?)
15%Exam 2 (May 9)

Please note that class participation is part of your grade. You must learn to interact with other developers and come up with solutions.

In general, I will read all papers, projects, quizzes etc... two times. Once to evaluate the average and a second time to assign scores. In the first pass, I also come up with a scoring strategy for each question.

I consider an "A" grade to be above and beyond what most students have achieved. A "B" grade is an average grade or what you could call "competence" in a business setting. A "C" grade means that you either did not or could not put forth the effort to achieve competence. An "F" grade implies you did very little work or had great difficulty with the class compared to other students.

I will be very strict and set a high standard in my grading, but I will work hard to help you if you are having trouble. Some of you may not get the grade you were hoping for in this class, but I will do everything I can to make sure you learn a lot and have a satisfying educational experience!

Misc

Unless you are sick or have a family emergency, I will not change deadlines for projects nor exam times. For example, I will not give you a special final exam just because you want to fly home early. Consult the university academic calendar before making travel plans.

If you have special needs, I am happy to accommodate.

In any emergency or special needs situation, I will need formal acknowledgment from the Dean's office before I can make allowances.

Books and resources

We will be using my Language Implementation Patterns book for its content on parsing, static type computations, simultaneously, and interpreters.

No doubt that you'll find the following resource useful: Compiling, Executing, and Jar'ing Java Code.

jclasslib Java .class file viewer

We have academic licenses (so far) for:

CS345 Mailing List

I will be sending important information to this mailing list. You are required to sign up for this list. To sign up:

CS345 mailing list.

To post, email cs345@cs.usfca.edu.

Miscellaneous

Tardiness. Please be on time for class. It is a big distraction if you come in late.

Academic honesty. You must abide by the copyright laws of the United States and academic honesty policies of USF. If told you may for a particular project, use any code from the net that you find as long as it does not violate the software's license. You may not borrow code from other current or previous students. All suspicious activity will be investigated and, if warranted, passed to the Dean of Sciences for action.

Official text from USF: As a Jesuit institution committed to cura personalis- the care and education of the whole person- USF has an obligation to embody and foster the values of honesty and integrity. USF upholds the standards of honesty and integrity from all members of the academic community. All students are expected to know and adhere to the University’s Honor Code. You can find the full text of the code online at honor code.

The golden rule: You must never represent another person's work as your own.