CS494/CS594 - Advanced Programming and Algorithms
James S. Plank
Fall, 2017 - Tuesday/Thursday, 9:40 - 10:55 in MK 406
The size of this class has been capped at 30. I would love to have exactly 30 students.
Unlike last year, registration will go to the first 30 students to register.
I may allow 35 in, figuring that a few will drop. If you aren't allowed to register,
you may want to come to class and squat, and I'll probably let you in.
I am happy to have anyone sit in this class, unregistered. Every year, we have
a few students who come to every class, unregistered.
This class has four goals:
- To teach you more algorithms.
- To give you more practice with problem solving via computer programming.
- To teach you some alternative programming paradigms, and explore how the
memory hierarchy affects the programs that you write.
- To give you practice in presenting topics in computer science.
- 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, there will be one or two rounds
of presentations, where in each round, each student will give a 5-10 minute presentation of
a Topcoder problem. That means 60 presentations, which will be time consuming.
This is part of the reason why I want to cap
- 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,
Bloom Filters, General Matching, and potentially
hashing and compression.
- Vector instructions.
- Interaction of programs and the caches.
This is a lecture class, which will have programming assignments and presentations.
Class attendance will be mandatory.