| Section A: |
M, W, F: 3:10 pm - 4:10 pm |
| Class Room: |
Science Annex
201 |
| Office: |
Science Annex 128 |
| Office Hours: |
M, W: 11:30 am - 12:30 pm
T, Th: 1:00 -
2:30; 4:15 - 5:45 pm
F: 11:30 am - 12:30 pm; 2:00 - 3:00 pm
And by appointment also |
| Phone: |
386-481-2689 |
| EMail: |
BethelmyD@cookman.edu |
| URL: |
www4.cookman.edu/faculty/bethelmy |
Booklist
| Programming Language Pragmatics (2nd Edition) |
Scott |
Morgan Kaufmann |
978-0-12-633951-2 |
Required Hardware:
A computer.
Course Description:
Introduction to the theory of
programming languages, formal
languages and grammars, design and
implementation of translators,
interpreters, and compilers.
Prerequisite:
At least C's in CS 231
(Programming II) and CS 333 (Data
Structures).
Course Objectives
A student who successfully completes
this course will understand why there
are so many programming languages and
how to analyze a language and its
associated development environment to
determine if that language and its tools
are the best choice for his/her
programming tasks. The student
will also understand the theoretical
foundations of programming languages and
computability and will be prepared to
pursue further studies in fields like
automata and formal languages,
computability and complexity, and
compiler construction.
Assessment of Academic Achievement:
| 10% |
5% |
15% |
15% |
20% |
35% |
| Some programming exercises will be given. |
Given at random |
2/23/07
Written |
4/11/07
Written |
Pick a programming language that you do not
already know and
present a paper on its features on the last day of class, 4/20/07. |
Written AND comprehensive
on one of the days from 4/24 - 4/26 |
Note: Graduating seniors will only have Exam I, Exam
II, and the term project. Exam II will count as the final and the
percentages will be 32.5% for each exam. Also, the project will have to be finished by 4/11/07.
|
Grading scale:
A: 90-100%, B: 80-89%, C: 70-79%, D: 60-69%, F: 0-59%
Things to note about this class
- You should be prepared to spend a lot of time outside of class on
this material. It is a 400-level course.
- You should make a supreme effort to study the textbook very carefully with the aim of understanding
the material so that you can retrieve what you have learnt without the aid of the books. (Ideally, you
should be reading ahead of me.) Try as many of the
self-test exercises at the end of each section in the text.
- You should be able to design algorithms and implement them, on your
own, in at least one higher-level language. Some of the
homework will require you to write programs.
- You should have access
to a computer on which you can install programs. You will be required
to familiarize yourself with a programming language environment that you
have NOT seen before.
- You should be prepared to deal with mathematical
abstraction as some of the theoretical parts of this subject are heavily
mathematical by nature.
- You should be prepared for closed-book exams that require you to
have memorized certain details covered in the course.
- You should attempt every
question given for homework and see
me as soon as you can't do any of them.
- You cannot pass this class by attendance only but missing classes will cause you to do poorly on my exams/quizzes.
- You may be required to write parts of a program on in-class exams.
None of the exams
is open-book.
- If you miss a class, you need to find out what assignments and reading
have been given BEFORE
coming to the next class.
- If you miss a quiz, there is no makeup.
- If you miss an exam, you will need a documented
excuse from a legally valid source (doctor, lawyer, coroner, etc.)
for me to consider
giving you a makeup.
- You cannot
survive in this class without studying the text.
(I realize that books are expensive and that you may not have the finances right away but there are other things
that can be done to ease the burden. See me for suggestions.)
- I am here to help and
I prefer that you hunt me down for such help. I know how I think better than anyone else.
- You will need to check your Cookman email daily as I will send
information to you regularly via your Cookman email accounts.
Please check daily, especially before class.
Topics that I hope to cover
The topics may not be covered in the order given and it is possible that only parts
of some chapters will be covered. You will need to stay informed of which
parts of which chapters are being covered. Some of the material is
only on the CD that accompanies the text.
- Introduction (Chapter 1)
- Programming Language Syntax (Chapter 2)
-
Automata Theory and Formal Grammars (CD and notes)
- Names, Scopes, and
Bindings (Chapter 3)
- Semantic Analysis (Chapter 4)
- Target Machine
Architecture (Chapter 5)
- Control Flow (Chapter 6)
- Data Types (Chapter 7)
-
Subroutines and Control Abstractions (Chapter 8)
- Data Abstraction and Object
Orientation (Chapter 9)
- Functional Languages (Chapter 10)
- Concurrency
(Chapter 12)
- Scripting Languages (Chapter 13)
|