CPSC425 Principles of Programming Languages
Spring 2006

MWF 1:10-2:10 Trexler 271

Instructor:Dr. Adrienne Bloss Office Hours: Mon, Wed 2:15-3:00
Office: 201 Admin Bldg Tues, Thurs 2:00-3:00
Phone: 375-2434 Also by appointment
E-Mail: bloss@roanoke.edu

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 16 Introduction
Grammars and syntax
Ch 1, 2
Jan 23 Syntax and semantics
Lexical and syntax analysis
Language systems
Ch 3, 5
Jan 30 Introduction to ML
Ch 4
Feb 6 Types
More ML
Ch 6, 7
Feb 13 Polymorphism Ch 8, 9
Feb 20 Scope
Runtime memory models
Ch 10, 18, 12
Feb 27 Heap management; TEST 2 Ch 14
March 6 !!!!!!!! Spring Break !!!!!!!!
March 13 Java revisited:
object orientation and exception handling
Ch 15, 16, 17
March 20 Introduction to Prolog Ch 19
March 27 More Prolog Ch 20
April 3 Cost Models; TEST 3 Ch 21
April 10 Formal semantics Ch 23
April 17 History of computing: oral presentations Ch 24
April 24 Wrap up and catch up  

Homework Assignments: Homework assignments help students assimilate the material covered in the text and discussed in class. Homework will be assigned frequently, will vary in weight and difficulty, may be theoretical or applied in nature, and may or may not include programming. Unless otherwise stated:

Oral Presentations: Near the end of the semester, each student will turn in a short paper (approximately five pages) and give an oral presenation on some aspect of the history of programming languages. Guidelines will be distributed and topics will be assigned in class.

MCSP Colloquium Series: The Math, Computer Science and Physics department offers a series of discussions that appeal to a broad range of interests related to these fields of study. These sessions will engage the community to think about ongoing research, novel applications and other issues that face our disciplines. Students in this class are required to participate in at least two of these sessions this semester. Within one week of each discussion the student attends, he or she will submit a one-page paper reflecting on the discussion. This semester's schedule is as follows:

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:

HW assignments.....25%     paper and oral presentation.....15%     MCSP colloquia.....2%     tests.....38%     final exam......20%

Grading Scale: 93-100A        83-86B        73-76C        63-66D
90-92A-        80-82B-        70-72C-        60-62D-
87-89B+        77-79C+        67-69D+        below 60F

The instructor reserves the right to modify this scale in favor of the student.

Tentative Test Dates:

Test #1 Friday, Feb 3
Test #2 Friday, March 3
Test #3 Friday, April 7
Final Exam Wednesday, April 26 (2:00-5:00 pm)

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 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 the exchange of ideas is encouraged but everyone is expected to be productive on an individual basis. 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.