Course Description:
In this course we study techniques
for designing,
validating, and analyzing algorithms to solve problems in a
wide range
of different problem domains. In particular, we look at ways
of solving
problems in pattern matching, cryptography, computational geometry,
and
networks. We also look at how to utilize external memory and
parallel
processing to make algorithms more efficient and flexible.
A highlight of this course is the chance to exercise your creative
side
by coming up with unique approaches to solving problems. You
will also
be given the opportunity to analyze the efficiency of algorithms
through
experiments that you design and compare your results to theoretical
expectations.
This couse is one that our graduates often say is the course
that has
been the most valuable to them in their careers. One student
in the last
offering of this course said "The algorithms class is
one of my best
memories from my undergraduate career. I LOVED this class!
I am still
struggling to understand why it is not a required class."
Offerings:
Offered spring semester in even numbered years.
Instructor:
This course is usually taught by Dr. Dershem.
Prerequisites:
CSCI 112 or 114, CSCI 235, CSCI 241 and CSCI 250.
See the department
policy on prerequisites.
Comments from Previous Students:
- " This
class really helped push my understanding of the subject
matter."
- " It
taught me new ways to approach problems and boosted my
programming
confidence."
- " It
was very challenging and made me learn a lot."
- " Very
essential knowledge for future work in computer science."
- " Caused
me to think 'outside the box.'"
- " Information
was presented in a fun manner."
- " This
showed me new ways of thinking about problems."
- " I
liked learning the more advanced algorithms."
- " I
liked that we had to think. This course was very applicable
to life."
Catalog
Description:
Study of classical
algorithms of computer science, techniques for algorithm
design, and analysis of algorithms. Topics include search
tree construction, tree balancing techniques, algorithms
from graph theory and computational geometry, string matching
algorithms, skip lists and hash tables, and techniques for
parallel algorithms. Prerequisites: 112 or 114, 235, 241 and 250. Offered even years.
Four Credits Cusack Spring Semester
|