Instructor:† Dr. David E. Woolbright
Office:† CCT 439
Phone:† (706) 507-8179
Web Site:† http://webct.columbusState.edu
M-Th† 10-12 am
M-W†† 2-3 pm
And also by appointment
CPSC 6129. Advanced Programming Languages (3-0-3) Prerequisite: CPSC 5135. A study of the principles, concepts, and mechanisms of computer programming languages-their syntax, semantics, and pragmatics; the processing and interpretation of computer programs; programming paradigms; and language design. Additional topics will include language design principles and models of language implementation.
Programming Languages: Application and Interpretation by Shrirarm Krishnamurthi.†
The text is also available free or with a contribution to the author, online at http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/.
After successfully completing this class:
1) You will have written a variety of interpreters in Scheme/Racket.
2) You will have written a variety of parsers in Scheme/Racket.
3) You will implemented a language with symbols using substitution.
4) You will have implemented a language with functions.
5) You will have implemented a language with first-class functions.
6) You will have explored the idea of programming with laziness in the Haskell programming language.
7) You will have explored the idea of continuations in Scheme and how it can be applied to the problem of web programming.
Midterm Exam:† 25%
Programming Assignments:† 50%
Final Exam:† 25%
The main web site for this course is http://csc.columbusstate.edu/woolbright/CPSC6129.xml .† This is the site that will contain the content of the course.
We will also use http://webct.columbusstate.edu as a place to drop assignments, and as a place where I can post your grades.†† You can send me e-mail through webct, but the fastest way to contact me is at my regular address:† email@example.com.† Beware!† I have a son who is currently a CSU student and whose name is David Bret.† Donít send your mail to him by mistake.
∑ I will post a weekly reading assignment for the book.
∑ I will post a weekly comment or question in a webct discussion.† You can post questions or replies.† The discussion area will be an opportunity for me to gauge how the class is doing, and also an opportunity for you to get answers to specific questions.† This will be an open forum for discussion, and is is not for a grade.†
∑ Occasionally Iíll post a video for you to watch or point you to one on the web that is relevant to our study.
∑ Occasionally Iíll ask you to implement an interpreter for a language in Scheme/Racket.†
∑ Iíll post a review for the midterm and the final exams.
Students are encouraged to study together; however, each student must individually prepare his/her own submission. Cheating or plagiarism is not permitted and will be sanctioned according to the CSU policy on academic standards. You should carefully read the section on Academic Misconduct in the Student Handbook. Your continued enrollment in this course implies that you have read it, and that you subscribe to the principles stated therein.
As your instructor, one of my responsibilities is to treat all students fairly and equally and to abide by the policies and procedures governing faculty/student relationships, including those concerning sexual harassment as stated in the Faculty Handbook.
Students with a documented disability as described by the Rehabilitation Act of 1973 (P.L. 933-112 Section 504) and Americans with Disabilities Act (ADA) that affect their ability to participate fully in class or to meet all course requirements are encouraged to bring this to the attention of the instructor so that appropriate accommodations can be arranged. Further information is available from the Office of Disability Services in the Center for Academic Support and Student Retention, Tucker Hall (706) 568-2330. Course requirements will not be waived but reasonable accommodations may be provided as appropriate.