SI333 - Algorithms and Functional Languages
Dr. Christopher W. Brown
- Course Goals
- To introduce Midshipmen to the paradigm of Functional
Programming, including familiarity with and
significant programming experience in at least one functional language.
- To familiarize Midshipmen with a variety of standard
algorithms - the ``classics''.
- To provide Midshipmen with the skills needed to compare and
analyze the performance of algorithms.
- To enable Midshipmen to employ a variety of standard
techniques to devise efficient algorithms of their own.
- Program Outcomes
This course contributes to many of the Department's
Outcomes for the CS majors, including that they be able to:
- solve problems using the procedural, functional and
object-oriented programming paradigms,
- differentiate among the classic algorithms and data
- evaluate some contemporary legal, social and ethical issues in
- Associate Professor Christopher W. Brown,
- Introduction to Algorithms, Cormen, Leiserson, Rivest and Stein,
McGraw Hill, 2001.
- Extra Instruction
- You are encouraged to come in for
extra instruction (EI) when you are having trouble. EI can be
scheduled in advance, or you can drop by and, if I am
available, I'll help you. I'm willing to try to answer
questions via e-mail, but for many problems face-to-face is
more appropriate, so my response to an e-mail question may
be "Come in and see me."
The break-down on your final grades will be:
- 35%: Final Exam. The final exam will be cumulative,
but will emphasize the last five weeks of the course.
- 15%: Exam 1 There will be one exam
covering algorithms content.
- 20%: Practica. There will be four programming
practicum quizzes. These replace exams
in the functional languages portion of the course.
- 15%: Projects. There will be two programming
projects, the first counts for 5% the second for 10%.
- 15%: Homeworks. Expect a small assignment after
every class. Assignments will be due at the beginning of
the class following the assignment. Homeworks will be
graded simply as 100, 50, or 0. If each problem has been
attempted in a reasonable way - i.e. not necessarily
correct but, in my estimation, attempted, and if the
homework is legibly written (better yet typed), you will
receive 100 for it.
If part of the assignment has been attempted in a
reasonable way, then you will receive a 50.
Otherwise, you'll be
given a zero.
Please look at
for CS Department honor information, as well as Academy honor
information. In this course we will follow the guidelines given
there, with the following clarification/caveats:
- Exams and Quizzes:
All work on exams and quizzes must be
completely your own. No references are allowed unless explicitly specified by me.
You may collaborate as much as you like on
homework, but the actual pencil-to-paper or fingers-to-keyboard
effort must be your own.
Programming projects are expected to be your own work. The
department honor information page describes precisely what that
means. However, I want to make perfectly clear that looking at
another students code is not allowed!
Christopher W. Brown