CS365 -- Programming Languages and Systems

Brad Vander Zanden


Instructor

Professor: Brad Vander Zanden

TAs


Class Attendance

You are welcome to take the class entirely online via Zoom or by watching the lectures off-line. There will be times later in the semester when I may try to "flip" the class and have you do homework assignments in class. This has proven to be especially effective with the Scheme and concurrent programming assignments as many students have trouble with them and I can often find mistakes quickly and get you moving along. I am not sure how Covid/Covid vaccinations will affect these plans so I will make decisions about how to handle these classes when the time comes.


Masks Are Required!!!

  1. If you come to class then you are required to wear a mask over both your mouth and nose per UTK policy.
  2. Also per UTK policy there is to be no food and drink consumed in the classroom because that would require removing your mask.
  3. Your mask protects me and your fellow students, not necessarily yourself. I understand that wearing a mask may not be comfortable but it is vital to the safety of me and your fellow students. If you have Covid, you will be infectious to others before you start experiencing symptoms, so you may think you are healthy when you are instead infected and spreading Covid. Additionally, a significant number of people in your age group will have Covid but never experience symptoms (i.e., you will be asymptomatic). You will also spread Covid even though you think you are healthy. The reason you wear a mask is to stop you from spreading the Covid virus if you are infected but seem healthy. If you do not feel as though you can tolerate wearing a mask for 1:15 then please take the course online. Wearing a mask is the price of in-person admission.

Textbooks and Reference Materials

Required : Programming in Java. Zyante.com.

This book is an ebook and you should be able to access it through the Canvas account for this course.

Useful Websites : : We will be using Java Version 8 in this course because that is the version used on the Hydra machines. Feel free to write your programs on your home machine but make sure they work on the Hydra machines as those are the machines on which your code will be tested.

  1. I 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.

  2. Java tutorials: https://docs.oracle.com/javase/tutorial/ is a good place to find Oracle's tutorials on a variety of concepts associated with Java. We will be using some of these tutorials later in the course when the book does not have coverage of something.


What's My Grade?

Grades will be calculated as a weighted average of the following five items. These weights are subject to change at the instructor's discretion:
        Pre-class Zybook Activities      5%
        Quizzes                         10%
	Homework Assignments		35%
	Midterm 			25%
	Final				25%
The grading scale:
     A: 90-100
     B: 80-90
     C: 70-80
     D: 60-70
     F: < 60
    
The quizzes will be blackboard quizzes that cover material presented in either tthe class notes or the lectures. Quizzes will become available at 2:30pm the day of class and will be due by 1pm on Thursdays for Tuesday quizzes and 1pm 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 come to lectures and read the class notes 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 class lectures/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 either attend class or else watch the video lectures.

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 and if you submit your homework more than 48 hours in advance of the deadline you will receive 10 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)