Course Syllabus:
- Principles of Functional Languages
- Computer Science 2322
- 10:30-11:20 Halsell 340
Instructor:
Office:
Fall 2005 Office Hours:
- MWF 8:00 - 8:30
- MWF 1:30-4:30
- Others by appointment
Course
- This course is an introduction to functional languages and functional programming.
Course topics include functional computation, recursion and iteration, procedural and data
abstraction, managing state, streams, delayed evaluation and continuations. We will also
study using functional languages as an analytic notation for reasoning about the programming
process. Prerequisite: none. May be taken concurrently with CSCI 1320, 1321.
Course Goals and Objectives:
- Learning problem solving methodology
- Learning functional language programming
- Applying functional programming techniques to problem solving
- Learning functional abstraction
- Learning procedural abstraction
- Modeling
Laboratory problems:
- Several homework laboratory problems will be
required for successful completion of this class including a significant
final project, which will be discussed and assigned in class. Problems
will be coded in a suitable functional programming language on the departmental
UNIX(LINUX) network. These problems are to be completed on an individual
basis. Solutions turned in for grading must represent your own individual
effort. Each problem submission must include a printed listing of the
programs as well as documentation for the programs submitted. Detailed
requirements for problem submission will be given in class. Each
laboratory problem will have a due date. Homework is due at the beginning
of the period on the day assigned. Late work will not be accepted.
Grades:
- The grades in this class will be determined by the results of three major
examinations, given at approximately equal intervals in the semester, by the
results of several laboratory assignments, and by the results of periodic
quizzes. Each of the three examinations will be approximately equally
weighted, including the final, which will be given during the final
examination week, and will serve as the third examination. Each examination is
comprehensive, emphasizing the most recent material, but covering the entire
semester. Each of the laboratory assignments will be worth a variable number
of points, depending on difficulty. Averages will be calculated as a simple
percentage, points earned divided by points possible.
- Letter grades will be assigned according to the following scale:
- 90-100 -- A
- 80-89 -- B
- 70-79 -- C
- 60-69 -- D
- Plus and minus grades assigned in marginal cases. I advise you to keep
a track of your scores so you know where you stand in the class at any time.
Examination Dates Fall 2005
- Examination One: October 5. 2005
- Examination Two: November 9, 2005
- Final Examination (Examination three) As scheduled, final examination week
- Final Examination for this class is Friday, December 9, 2:00-5:00.
Important Dates:
Click Here for Important Dates
Academic Honor Code
All students are covered by a policy that prohibits dishonesty in
academic work. The Academic Integrity Policy (AIP) covers all students
who entered Trinity before the fall of 2004. The Academic Honor Code
covers all those who entered the fall of 2004 or later.
The Integrity Policy and the Code share many features: each asserts that
the academic community is based on honesty and trust; each contains
the same violations; each provides for a procedure to determine if a
violation has occurred and what the punishment will be; each provides
for an appeal process.
The main difference is that the faculty implements the AIP while the
Code is implemented by the Academic Honor Council. Under the
Integrity Policy, the faculty member determines whether a violation has
occurred as well as the punishment for the violation (if any) within
certain guidelines. Under the Code, a faculty member will (or a student
may) report an alleged violation to the Academic Honor Council. It is
the task of the Council to investigate, adjudicate, and assign a
punishment within certain guidelines if a violation has been verified.
Students who are under the Honor Code are required to pledge all
written work that is submitted for a grade: "On my honor, I have neither
given nor received any unauthorized assistance on this work" and their
signature. The pledge may be abbreviated "pledged" with a signature.
Some Notes of Importance:
- Regular class attendance is required. Each unexcused absence may deduct one
percentage point from your final average. Excessive absences will be reported
to appropriate university officials and may cause you to be (involuntarily)
withdrawn from the class. Homework assignments are expected complete and on
time. If you keep up you will have a better chance to be successful in this
class, but if you fall behind you will have difficulty catching up. Make sure
to contact your instructor if you are having difficulty.
- Discussion of the homework assignments between students is encouraged, but
when it comes time for the final submission, make sure it is your own work.
You are cheating yourself if you get the program from some source other than
creating your own.
- Expect a quiz once per week. Quizzes will usually be given on Mondays and
will cover the previous week's work. Quizzes will be taken when scheduled and
will not be made up. Examinations will be taken when scheduled and will not be
made up. The only exceptions to these policies is for University sanctioned
activities or illness and require a note from your supervising professor,
coach, or doctor. If you have unusual circumstances (as we all sometimes do)
please discuss these with your instructor in advance.
References
- Manis and Little, The Schematics of Computation Prentice Hall, 1995
- Smith, An Introduction to Scheme Prentice Hall, 1988
- Harvey and Wright, Simply Scheme, Introducing Computer Science MIT Press, 1994
- Friedman, Wand and Haynes, Essentials of Programming Languages McGraw Hill, 1992
- Sedgewick, Algorithms in C, Addison Wesley, 1990
- Scheme and the Art of Programming by Springer and Friedman, McGraw Hill,
Ninth Printing 1997
- Structure and Interpretation of Computer Programs by Abelson and Sussman, McGraw Hill, 1996