CS365 -- Programming Languages and Systems

Brad Vander Zanden


Instructor

Professor: Brad Vander Zanden

TAs

Ryhan Pathan


Class Attendance

Class attendance is mandatory and attendance will be taken. You may miss up to three classes without penalty and you should use those absences for things like illness, conference presentations, conference participation, emergencies, etc. If you have a contagious illness (e.g., the flu) please do not come to class--that is what the absences are for. Should you miss more than 3 classes, you will lose 5 cumulative points, or half a letter grade, from your final class average. The reason for this policy is twofold. First, we will be experimenting with a flipped classroom arrangement whereby you often work problems in class while the instructors circulate and help you get over both conceptual and technical hurdles, and it is essential that you be in class in order to benefit from this type of instruction. Second, I will be giving in-class quizzes on blackboard and you will need to be present in order to take the quiz. The quizzes will be closed note, which means you cannot get credit for them if you skip class.


Textbooks

Required : Programming Language Pragmatics, 3rd Ed. Michael L. Scott.

Optional : Any reference book on Java. If you want suggestions I would try either Java2: A Beginner's Guide or Java2: The Complete Reference, both of which are written by Herbert Schildt.

If you're looking to save money and want an online source check out the Java tutorial site. I also make extensive use of the Java API site. It's next to impossible to remember all the methods that each of Java's classes offers and it's typically easier to click to the API rather than reach for a book.


What's My Grade?

Grades will be calculated as a weighted average of the following four items. These weights are subject to change at the instructor's discretion:
        In Class Quizzes                20%
	Homework Assignments		30%
	Midterm (Mar. 11)		25%
	Final				25%
The in class quizzes will be blackboard quizzes that cover material presented in the video lectures/class notes that you are expected to have reviewed before coming to class. If you have watched the video lectures you should find the quizzes relatively easy to complete. If you simply read the class notes, there is a good chance you will be able to complete the quizzes, but the video lectures will often add additional details, so you may not be able to answer every question by simply reading the notes. Additionally, you will probably find it problematic to answer the in-class problems if you do not watch the videos. The quizzes will be closed note to prevent you from skipping the review of material before class and then simply skimming the notes hoping to find the answers. I have found this skimming procedure to be a problem in the past when I gave open-note quizzes.

Since you are allowed 3 missed classes, your 3 lowest quiz scores will be dropped. Please do not ask to make-up quizzes that you miss. The answer will be no.

Unless otherwise instructed, you are allowed to submit homework assignments up to 2 days late, but will receive a deduction of 10 points for each day late that you submit. Hence if you submit 1 day late you can only get a maximum of 90 points and if you submit 2 days late you can only get a maximum of 80 points. Conversely, if you submit your homework more than 24 hours in advance of the deadline, you will receive 5 points of extra credit.


What Topics Does The Course Cover?

  1. New Language Paradigms

  2. Programming Language Design (e.g., exceptions, modules, generics)

  3. Implementation issues (e.g., garbage collection, virtual methods)