CS494/CS594 -- Advanced Programming and Algorithms
Fall, 2020 -- Tuesday/Thursday, 11:30 AM - 12:45 AM -- Online, Synchronous
MK320. jplank@utk.edu. Office hours by appointment only.
TA:
Canvas
I will use Canvas this year 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.
- As you can imagine, we will delve into the higher level of Topcoder problems -- all
the way to the D1 1000-point problems.
- There will be a presentation component. In particular,
each student will give a 5-10 minute presentation of
a Topcoder problem.
- There will be more focus on data structures and algorithms that we didn't cover in
CS140/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 CS360, 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 on a harder topcoder problem, 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. This year, attendance will be taken by clicker questions and zoom
screen shots.
- 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 2: 50 points off.
- You cannot submit any work after 12:01 AM, December 2.
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 at
12:01 AM December 2, you'll
still get a C (70 points).