CS494/CS594 -- Advanced Programming and Algorithms

Spring, 2024 -- Tuesday/Thursday, 11:20 AM - 12:35 AM -- Min Kao 525.

Professor: James S. Plank

MK320. jplank@utk.edu. Office hours by appointment.



I use Canvas for announcements, assignments (which point back here), lab submission, quizzes and grading. Lecture notes and labs will remain posted here.


Registration Issues

I am happy to have anyone sit in this class, unregistered. Every year, we have a few unregistered students who come to every class.


This class has four goals:
  1. To teach you more algorithms.
  2. To give you more practice with problem solving via computer programming.
  3. To give you practice in presenting topics in computer science.
  4. To teach you some alternative programming paradigms (well, at the moment, just SIMD).



For undergraduates, you must have taken CS302. It's a really good idea to have taken CS360, because two of the labs are in C, and you will definitely benefit from having taken CS360.

For graduates, go ahead and look over my web pages for CS302 and CS360 -- that's the material that you should know:


I have been told by students that this class and CS360 are pretty similar in terms of their level of difficulty. This class doesn't have exams and there are fewer assignments, than CS360. Moreover, the load lightens later in the class, because the hardest assignment by far (B-Tree) falls in the middle of the semester.

If you are a graduate student, and you haven't taken CS302, just be forewarned that the class involves a lot of programming in C++. If you don't know C++, you'll have to learn it quickly.

The Difference between CS594 and CS494

Your presentation will be more in-depth (and longer), and you will have an extra lab, due at the end of the semester.


There will be no exams in this class. Your grade will be composed of three components: Lateness policy: Read this one carefully: Please do not ask me for extensions -- the above grading policy is very lenient. I want to reward people who get their work done on time. However, I also want everyone who is in this course to actually do the labs. You'll note, if you come to every class, do a good job on your presentation, and then submit all of your labs on the last day of class, you'll still get a C (70 points).