CS365 -- Programming Languages and Systems

Brad Vander Zanden


Instructor

Professor: Brad Vander Zanden

TAs

NameOfficeemailOffice Hours
Sagarvarma SayyaparajuMK 348ssayyapa@utk.eduT 11-12, R 2-3
Michael PriceMK 313mprice35@utk.eduMW 10-11


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 concurrency, and other times you will be working on homework assignments or challenge activities from the Zybook 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 and Reference Materials

Required : Programming in Java. Zyante.com.

This book is an ebook and you can subscribe to it as follows:

  1. Sign up at zyBooks.com
  2. Enter zyBook code UTKCOSC365VanderZandenSpring2019
  3. Click Subscribe
  4. Complete the questions in "How to Use zyBooks," found in everyone's library
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.

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 four items. These weights are subject to change at the instructor's discretion:
        Attendance			 5%
        Pre-class Zybook Activities      5%
        Quizzes                         10%
	Homework Assignments		30%
	Midterm 			25%
	Final				25%
The quizzes will be blackboard quizzes that cover material presented in either tthe class notes or the lectures. Quizzes will become available at 2pm the day of class and will be due by 12:30am on Thursdays for Tuesday quizzes and 12:30am 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.


What Topics Does The Course Cover?

  1. New Language Paradigms

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

  3. Information Management and Retrieval

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