- What is CS-3212 all about?
CS-3212 covers core computer science material which, along
with the material in CS-3313,
constitutes a great deal of the science in computer science.
It's hard to imagine an intellectual area that is more central to CS
than algorithms. We will study classic algorithms and problems
in CS - these algorithms will teach us about key problem-solving
techniques such as divide-and-conquer.
- Who should take this course?
The course is required for students in the B.S. program.
B.A. students are
welcome to take the course, as are EMSE students or others
who've had the pre-requisites.
- I haven't taken CS-2113. Can I take this course?
You will need a working knowledge of objects in Java
to handle the programming assignments. And you will need
the skill-level that comes with completing CS-2113.
Thus, if you've done CS-1112 but not CS-2113 but have
had considerable programming experience or other
programming courses, you ought to be able to take CS-3212.
Talk to me about it.
- I've taken CS-2113, but in another language. Can I take this course?
If you're not comfortable with Java, this course
might be exceptionally challenging. We are not going to teach
Java in the course.
- Is this a programming-intensive course?
Yes. Many universities teach their algorithms course without
much programming, focusing instead on the mathematical
analysis of their complexity. This course, on the other hand, introduces
you to algorithmic concepts with a strong focus on
implementation, based on the belief that there's nothing
like coding an algorithm to force one to understand the details.
- Is this a math-intensive course?
Not really. We will only reason about algorithmic
complexity at the high-level. There is some math involved
in understanding the basic terminology and definitions.
Your CS-1311 background is more than adequate for this course.
- Will I be able to work at home?
Absolutely. If you have Java working, you can download
the test environment (which is itself written in Java)
and run that at home.
- What's covered in the labs? Is attendance mandatory?
The labs are often for extra help, but we will cover additional,
new material as well.
We will take attendance, but if you're doing
really well in the course, we won't worry about
your lab attendance record, except for the new material
covered in the lab.
- What's the difference between an in-class exercise and an
exercise with a due date?
The in-class or module exercises
are embedded in the course material (modules),
some of which we will try to complete in class. Those that we can't
should be done the same day preferably, and will be due soon
after the class. You need to keep
your answers to the module exercises carefully organized,
to be ready to show that you've been keeping up with them.
These module exercises will be submitted as zip files
Regular exercises and
assignments (described in their own pages)
are to be submitted formally using our
- What does "commitment" mean, and how do I earn those points?
Experience shows that students who aren't scoring well fall
into two categories: those who put in the time (are committed) and
those who don't. If you're doing well and are attending and
participating in your team, you won't have to worry about these
points; you'll get them automatically.
If you fall behind but are nonetheless committed (strong attendance
in class and lab, strong participation in teams,
completing assignments ahead of time, showing up at office hours),
you'll get some of these commitment points.
Questions about the (algtest) test environment (for those in the