Instructor: | Dr. Adrienne Bloss | Office Hours: | Mon, Wed 10:00-11:00 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Office: | 110 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, and memory management. Imperative and object-oriented concepts will be re-examined and functional and logic programming will be introduced.
Course Structure: This course is not a spectator sport. Much of the course will be driven by the homework assignments, in which students will be expected to read, digest and apply new material. The instructor will introduce and motivate new topics, but students will take an active role in learning the material. Students are strongly encouraged to work together, both in and out of class, in mastering new concepts. See section below on Academic Integrity for important guidelines on working together.
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 Approximate Schedule
In this course I expect to cover the topics below in roughly the order given here. The exact amount of time spent on each topic will be determined by the needs and interests of the students in the class, so this schedule should be taken as approximate.
Week of | Topic | Chapter(s) in text | ||
Jan 14 | Course introduction Introduction to ML | Ch 1, 5 | ||
Jan 21 | More ML Grammars and syntax | Ch 5, 7, 2 | ||
Jan 28 |
Syntax and semantics Lexical and syntax analysis | Ch 4 | ||
Feb 4 | Wrap up syntax analysis TEST 1 | |||
Feb 11 | Types and polymorphism; higher-order functions in ML | Ch 6, 8, 9 | ||
Feb 18 | Scope; data types in ML | Ch 10, 11 | ||
Feb 25 | Parameters | Ch 18 | ||
March 3 | !!!!!!!! Spring Break !!!!!!!! | |||
March 10 | Memory locations for variables | Ch 12 | ||
March 17 | Memory management; TEST 2 | Ch 19 | ||
March 24 | Introduction to Prolog | Ch 19 | ||
March 31 | More Prolog; cost models | Ch 20, 21, 22 | ||
April 7 | Oral presentations | |||
April 14 | Finish oral presentations 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 write a short paper and give an oral presentation on an interesting programming language that he or she did not already know. 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 and write about at least three 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 and responding to the discussion.
: 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:
Test #1 | Thursday, Feb 7 | |
Test #2 | Thursday, March 20 | |
Final Exam | Thursday, April 24 (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 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.