CS-173 / CS-227: Continuous Algorithms
NOTE: The course title shown in banner for the moment
is different: it is the old name "Numerical Methods"
- Instructor:
Prof. Rahul Simha
- Office Hours:
TBA
- Class Time/Place: TBA
- Prerequisites: CS-123, CS-143
- Course description:
Overview of structures in continuous mathematics from
a computational viewpoint. Main topics include simulation,
computational modeling, machine learning, neural networks, decision trees,
text classification, statistical
language processing, robot control algorithms.
- What the course is about:
To understand what this course is about and why you should
consider taking it, let's first examine the standard CS algorithms
course. What do we learn in that course? We cover topics such
as data structures (trees, tries, hashing), graph algorithms
(DFS, BFS, Dijkstra), discrete optimization and NP-completeness.
Almost any textbook on algorithms has these topics at its core.
The problem-solving paradigms we learn have to do with
divide-and-conquer, dynamic programming, recursion and
the use of appropriate data structures.
Yet, there is a whole world of algorithms that are both
important and are fundamentally different. These algorithms
include:
- Algorithms that simulate physical reality, for example
the motion of objects or interactions between chemicals,
or complex systems such as transportation networks.
- Algorithms that reason about probability, or that
work with probabilistic quantities (We call them
simulations).
- Algorithms that control robots, both at the low level
(controlling movement) as well as at the high level
(planning a path).
- Algorithms that involve learning or recognition,
for example, face-recognition or handwriting recognition.
- Algorithms that involve understanding natural languages.
What is common to all these algorithms, and what differentiates
them from algorithms in the standard course, is that they are
all based on continuous structures or continuous
mathematics. Thus, while graph algorithms are based on
discrete structures (graphs), a simulation involves real numbers.
The purpose of this course is to give you an overview of
this area, introduce you to key ideas, and along the way,
stimulate interest in the very different types of problems
you can solve with this approach.
- A note about grads vs. undergrads.
Undergrads will be graded on a different scale, and will
possibly work in teams. Yes, we recognize
that you are taking an elective course.
- Textbooks:
There is no single book that covers all the material we need.
We will go with these:
- Pattern Classification. By R.O.Duda, P.E.Hart and D.G.Stork.
- Neural Networks: Algorithms, Applications and
Programming Techniques. By J.A.Freeman and D.M.Skapura.
- Statistical Language Learning. By E.Charniak.
- Coursework:
This will be a project-oriented course. The idea is to see
if we can apply the concepts learned to some practical problem.
Students may potentially propose projects, and may choose to
participate in a robot-control competition.