CS365 -- Programming Languages and Systems

Brad Vander Zanden


Instructor

Professor: Brad Vander Zanden

TAs

NameOfficeemailOffice Hours
Tapajit DeyMK 620tdey2@utk.eduR 10:00-11:00
Colin BirdMK 416cbird7@utk.eduMF 3:30-4:30
Elvis OfforMK 416eoffor@vols.utk.eduMW 1:30-2:30


Class Attendance

There will be times later in the semester when class attendance is mandatory, because I know from past experience that students struggle on the material. Some of the time I will be simply lecturing or going over examples, for example on interfaces, inheritance, and the MVC model, and other times you will be working on homework assignments while in class. On those days when I have you working on homework assignments, you will be required to work on the assigned homework during that time and you will receive a 0 for that day if I catch you working on an assignment for another course. This may sound harsh but the past few times I've taught the course I've discovered that students have started to flounder on some of the later topics in the course, such as Python, concurrent programming, and functional languages and the primary reason seems to be that students are skipping class in order to catch up on assignments in other classes. By mandating attendance later in the semester and requiring you to work on the homework assignments, I can at least guarantee that you spend some time working on the homework assignments and getting some practice with the programming concepts they involve.

In the first half of the semester when we're covering Java I won't require attendance as many of you are already somewhat familiar with Java and its concepts.


Textbooks

Optional : Programming Language Pragmatics, 3rd Ed. or 4th Ed. Michael L. Scott. I don't think this textbook is necessary but if you feel more comfortable with a reference text, then this is the one I recommend.

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:
	Attendance			 5%
        Quizzes                         15%
	Homework Assignments		30%
	Midterm 			25%
	Final				25%
The 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 and that are further expounded upon in class. Quizzes will become available at 12:30pm the day of class and will be due by 11:00am on Thursdays for Tuesday quizzes and 11am on Tuesdays for Thursday quizzes. The quizzes are designed as quick homework exercises that force you to quickly review the material after class.

If you have watched the video lectures and come to class then 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 problems if you do not watch the videos.

In computing your quiz grades I throw out your 3 lowest quiz grades. Because I have built in a 3 quiz cushion, please do not ask for any extensions. 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)