Official 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.
My description:
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.
Textbook: TBA.
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.
Programming load:
The course is not intended to be a heavy load. There will be
programming assignments and group projects, but no exams.
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.
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.
Coursework and grading: TBA
Assignment submission and late work policy:
Since the courseload is modest, and since much work is team-based,
no late submissions will be accepted except for medical emergencies
that are substantiated.
Email policy:
No debugging by email. Stop by in person - it's much easier that way.
Academic Integrity policy:
In this course, you will be expected to work on all assigned
coursework by yourself, unless otherwise specified by me.
If you have any questions whatsoever regarding these
policies, see me during office hours.
You may not, without my permission,
exchange course-related code with anyone (including
anyone not registered in the course), or download code for use
in your coursework, or use material from books other than the textbook.
Likewise, you may not look
at anyone else's code or show your code to anyone else. Protect
your work: for example, be careful not to leave your printouts around.
I can't imagine you'll be using a tutor in this course, but
if you do,
All tutors for this class need to first register with me, by meeting
me during office hours.
If you use material in your assignments that are from
outside the course material, then you should be prepared
to explain that material. The instructor and TA's reserve
the right to question you on your use of extraneous material.
Failure to answer such questions might be viewed as
grounds for an integrity violation.
Penalties for violating the code or the policies described here
include failing this course, and are elaborated in the Academic Integrity Code.
If you have a disability that may
effect your participation in this course and wish to discuss academic acommodations,
please contact me as soon as possible.
Attitude:
We need to touch upon two attitude-related issues.
One, since this is an elective, project-oriented course,
you ought to take this opportunity to learn by plunging into the material
and by taking on an interesting project that could become
a research project, or your senior design project.
Second, if you are a math-phobe, you should not let that
get in the way of appreciating the material, much of which
is based on continuous mathematics but much of which we
will cover computationally. More about this in class.