- Description:
-
CS208 is an introduction to the principles which underlie
the definition and implementation of programming languages.
Topics include syntax, semantics, types, and the theory behind
and structure of imperative and functional programming
languages.
- Instructor:
-
Jerry Mead
212 Dana Engineering
Tel: x 71392
email: mead@bucknell.edu
Office Hours: 1:30-2:30 MW, 3-4 Tue, 11-12 Thr
- Required Text:
-
Programming Languages: Principles and Practice,
2nd Edition,
by Kenneth C. Louden
What's in a Compiler: A Tutorial View of Compiler Construction, by Jerry Mead
- Course Schedule
-
- Course Objectives:
-
- To know the basic syntactic structure of a programming
language in terms of lexical and grammatical levels.
- To know how to formally state the operational semantics
of basic imperative language structures.
- To understand the theory and practice of a declarative
programming paradigm.
- To know how to apply theory in order to structure and
implement a simple language translator.
- Academic Conduct:
-
It should go without saying that what you hand in must be your own
work. The class project will be extensive and it is recommended that
you discuss design issues with others in the class. But the
programming must be your own.
- Assessment:
- Attendance:
- Daily attendance will be taken. Poor attendance
can impact your final grade (see Course Requirements).
- Quizes:
- A weekly quiz will be given so students can
assess their progress on the material covered during the week.
- Laboratories (Collaborative Work, Individual Writeup):
- There are weekly laboratories during which
students will learn about langauge translators and about
functional programming.
Problems will be set each week and these problems will be marked
to give students feedback on their understanding of the material.
Note that work for Lab x is due by the following Monday at 4. It
can be turned in late for a 2 point penalty before the next lab.
Note that most labs have a prelab assignment. The assignment is due
at the beginning of the corresponding lab. If the prelab is not turned
in there is a 2 point penalty.
- Project (Individual Work):
- There is a 5-part course project the goal of which
is to give students experience with applying the theory discussed
in class. These projects will be marked to give students feedback
on their work.
- Mid-term Exams:
- There will be two exams during the term at
approximately 5-week intervals so that students and the instructor
can assess how well they are meeting course objectives.
- Final Exam:
- There will be a comprehensive final exam so
the instructor can assess how well the students met the course
objectives.
- Course Requirements:
-
- All students are expected to attend class and
scheduled labs. You are given three unexcused absences during
the semester. Each day you miss class, after the three, will
result in a 1/3 grade reduction in the final course grade.
[ Students should save their free days for those situations during the term when they need to be away -- interview, home for a weekend, etc. ]
A note from Student Health is required for an excused (not one of the three) absence.
- All assigned work is due on the date specified (see the
Late/Early policy below).
- There will be a short quiz most Fridays (10 minutes max) covering
material since the previous quiz.
- All course requirements must be satisfied to pass the course.
- The course grade will be based on the following:
- Exams (60% total)
- 2 1-hour Exams (count 17.5% each)
- A Comprehensive Final (counts 25%)
- Course Project (20% total)
- Labs (10% total)
- Quizes and Homework(10% total)
- Late (Early) Policy for Projects
-
- Late work will be accepted for 3 days after the due date, with
a 2/3 grade reduction (e.g., B+ -> B-) for each day
late. Weekends count one day.
- Work will not be accepted after the third late day.
- Each student is given 3 free late days to spend as needed
during the term. A late day changes the grade you get on
something, it does not change the due date!
It is best to save the late days for unforeseen
circumstances -
``My car broke down and I couldn't get back in time!''
``The printer wasn't working Sunday night!!''
``I had four exams last week!!!''
- Late days must be requested and cannot be converted at the
end of the term.
- As an extra inducement to complete work on time, any project
handed in at or before class time two days early will get a one
step grade increase
(e.g., B -> B+) on that part of the project.
[E.g., a project due on Friday must be handed in no later than
class time on Wednesday.]
- N.B.:
- It is important to note that, though a particular piece of work
may count only a small part of the final grade, it must receive
a grade to satisfy the course requirement.
- File Security
-
You are strongly encouraged to set the permissions
on your cs208 course directory (for lab and project work) so that only
you have access (700). You are also strongly encouraged to set your
file creation permission mask so that newly created files give access
to only you.