CS494/CS594 -- Advanced Programming and Algorithms
Spring, 2024 -- Tuesday/Thursday, 11:20 AM - 12:35 AM -- Min Kao 525.
MK320. jplank@utk.edu. Office hours by appointment.
TA:
- Jacob Malloy: jmalloy1@vols.utk.edu. Office hours TBA.
Canvas
I use Canvas for
announcements, assignments (which point back here), lab submission, quizzes and grading.
Lecture notes and labs will remain posted here.
Links
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.
Goals
This class has four goals:
- To teach you more algorithms.
- To give you more practice with problem solving via computer programming.
- To give you practice in presenting topics in computer science.
- To teach you some alternative programming paradigms (well, at the moment, just SIMD).
Topics
- We will program in C++ and C.
- We will go over some topcoder problems.
- There will be a presentation component. In particular,
each student will give a 5-15 minute presentation.
- There will be more focus on data structures and algorithms that we don't cover in
CS202/CS302, such as B-Trees, A-Star, Page Rank, Min-Hash,
Bloom Filters, General Matching and Erasure Coding.
- Vector instructions.
Prerequisites
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:
Difficulty
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.
Grading
There will be no exams in this class. Your grade will be composed of three
components:
- Attendance: 20%. Yes, 20%. You start with 20% and lose 2% with every class
that you miss. I'll take attendance with either clicker questions or QR codes.
- Programming assignments: 60%.
- Presentation: 20%.
Lateness policy: Read this one carefully:
- Up to 24 hours late: 10 points off.
- Between 24 and 72 hours late: 20 points off.
- Between 72 hours late, and 12:01 AM, December 3: 50 points off.
- You cannot submit any work after 12:01 AM, December 7.
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).