Instructor: | Dr. Adrienne Bloss | Office Hours: | Mon 4:00-5:00 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Office: | 365-C Trexler | Wed 2:30-3:30 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Phone: | 375-2434 | Tues, Thurs: 1:30-2:30 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
E-Mail: | bloss@roanoke.edu | Also by appointment |
Course Objectives: This course is about the design and implementation of programming languages. Topics include formal descriptions of language syntax and semantics, lexical and syntax analysis, attributes and binding, data types and data abstraction, scope and lifetime, parameter passing, memory management, and exception handling. Object-oriented concepts will be re-examined and functional and logic programming will be introduced.
Prerequisite: CPSC 270 (Algorithms).
Text: Modern Programming Languages: A Practical Introduction, by Adam Brooks Webber, Franklin, Beedle & Associates, 2003. Supplementary materials may also be provided.
Course Topics and Schedule (Tentative)
Week of | Topic | Chapter(s) in text | ||
Jan 12 | Introduction Grammars and syntax | Ch 1, 2 | ||
Jan 19 | Syntax and semantics Introduction to ML | Ch 3, 5 | ||
Jan 26 | Language systems Lexical and syntax analysis | Ch 4 | ||
Feb 2 | More ML; TEST 1 | Ch 7 | ||
Feb 9 | Types and polymorphism | Ch 6, 8, 9 | ||
Feb 16 | Scope Parameters Runtime memory models | Ch 10, 18, 12 | ||
Feb 23 | Heap management; TEST 2 | Ch 14 | ||
March 1 | !!!!!!!! Spring Break !!!!!!!! | |||
March 8 | Java revisited: object orientation and exception handling | Ch 15, 16, 17 | ||
March 15 | Introduction to Prolog | Ch 19 | ||
March 22 | More Prolog | Ch 20 | ||
March 29 | Cost Models; TEST 3 | Ch 21 | ||
April 5 | Formal semantics | Ch 23 | ||
April 12 | History of computing: oral presentations | Ch 24 | ||
April 19 | Wrap up and catch up |
Assignments: Assignments will be provided regularly to help students assimilate the material we discuss in class. Assignments will vary in size, may be theoretical or applied in nature, and may or may not include programming. Unless otherwise stated, assignments are due at the beginning of class on the specified date, and late assignments will not be accepted. Students may consult with other students in the class on assignments, but these are not group projects -- everyone's work should be substantially their own. See section on Academic Integrity below.
Oral Presentations: Each student will give an oral presenation on some aspect of the history of programming languages during the last week of class. Guidelines will be distributed and topics will be assigned shortly after spring break.
Attendance Policy: Regular class attendance is essential to success in this course. Students are expected to attend every class and are accountable for all material and assignments in any missed classes.
Grading Policy: The course grade will determined
as follows:
Grading Scale: | 93-100 | A | 83-86 | B | 73-76 | C | 63-66 | D | |||
90-92 | A- | 80-82 | B- | 70-72 | C- | 60-62 | D- | ||||
87-89 | B+ | 77-79 | C+ | 67-69 | D+ | below 60 | F |
The instructor reserves the right to modify this scale in favor of the student.
Tentative Test Dates:
Tentative Test Dates: | Test #1 | Friday, Feb 6 |
Test #2 | Friday, February 27 | |
Test #3 | Friday, April 2 | |
Final Exam | Friday, April 23 (8:30 - 11:30 am) |
Test dates are subject to change with at least one week's notice.
Make-up Policy: Everyone is expected to take tests and the exam at the scheduled time. Make-ups will be given only for legitimate, documented absences that the instructor has been notified of ahead of time. Make-up tests, if given, may be oral.
Academic Integrity: Tests and exams are to be solely the work of the individual student. Students are permitted to consult with each other on assignments, but such consultation should be limited. In particular, assignments are not to be treated as group projects, and copying someone else's work or turning in work that is substantially someone else's is NEVER allowed. This rule is meant to simulate the common real-life environment in which everyone is expected to be highly productive on an individual basis, but the occasional exchange of ideas is permitted and even encouraged. Students are always encouraged to get help from the instructor.
Computer Use Policies: All students must abide by the Computer Use policies of Roanoke College. Failure to do so will result in involuntary withdrawal from the course.