Com S 541 - Programming Languages 1, Fall 2002


General Info.
Course Homepage
About Com S 541
Contacting Us
Syllabus

Homework & Grades
Grading Policies
Grades
Homework Directory
Exams

Reference
Q & A
Meeting outlines
Resources
Running Smalltalk
Running Java

Links
Department Homepage
Iowa State U. Homepage

Valid HTML 4.0!
Valid CSS!
 

Course Syllabus

The table below gives the planned syllabus for the course. This syllabus is subject to change. If it becomes necessary to revise the schedule, then this page will be updated to reflect the changes.

The references in the readings are given in the bibliography below.

Dates Topics Readings Optional Readings
Aug. 27 Introduction Handouts, Course Web Site  
Aug. 27 Paradigms   [Watt90]
Aug. 27 Course Planning    
Aug. 29 Object-Oriented Paradigm   [Budd02], [Watt90]
Aug. 29-Sept. 13 Smalltalk [Goldberg-Robson89], Ch. 1-14 [Winston97], Ch. 1-31, 38-39
Sept. 17-19 Discussion of Tuples for Multiple Dispatch, as on homework 2 [Leavens-Millstein98]  
Sept. 19 Smalltalk [Goldberg-Robson89], Ch. 1-14 [Winston97], Ch. 1-31, 38-39
Sept. 24 Object-Oriented Design   [Budd02], Ch. 3
Sept. 26 Course Review and Planning    
Sept. 26-Oct. 10 Java's Design [Gosling-McGilton96] [Arnold-Gosling-Holmes00]
Oct. 10-15 AspectJ [Kiczales-etal01], [Kiczales-etal01b] [AspectJTeam02], [Kiczales-etal97] [Kiselev03]
Oct. 17 Exam 1 [Goldberg-Robson89], Ch. 1-14 [Gosling-McGilton96] [Arnold-Gosling-Holmes00] [Budd02], (esp. Ch. 3) [Leavens-Millstein98] [Watt90] [Winston97], Ch. 1-31, 38-39
Oct. 22-24 AspectJ [Kiczales-etal01], [Kiczales-etal01b] [AspectJTeam02], [Kiczales-etal97] [Kiselev03]
Oct. 29-31 Design of Aspect Smalltalk    
Nov. 5-7 Team Work on Aspect Smalltalk Implementation, Examples    
Nov. 12 Course Review and Planning    
Nov. 12 Functional Paradigm [Hudak89] [Watt90]
Nov. 12-14 Haskell [Thompson96], Ch. 1-7, 9-10, and 12-17 [Hudak-Peterson-Fasel00], [Hudak00], [Peyton-Jones-Hughes99], [Peyton-Jones-Hughes99b], [Thompson96], Ch. 8, 11, and 18-20
Nov. 19 Monads and their relation to Aspects [Thompson96], Ch. 18  
Nov. 21 Exam 2    
Nov. 26-Nov. 28 Thanksgiving Break, no class    
Dec. 3-12 Haskell [Thompson96], Ch. 1-7, 9-10, and 12-17 [Hudak-Peterson-Fasel00], [Peyton-Jones-Hughes99], [Peyton-Jones-Hughes99b], [Thompson96], Ch. 8, 11, and 18-20
Dec. 12 Course Summary    
Dec. 12 Course Evaluations    
Fri., Dec. 20, 9:45-11:45a.m. Final Exam    

Return to top

Bibliography

[Arnold-Gosling-Holmes00]
Ken Arnold and James Gosling and David Holmes. The Java Programming Language Third Edition. Addison-Wesley, Reading, Mass., 2000.
[AspectJTeam02]
The AspectJTeam. The AspectJ(TM) Programming Guide. http://aspectj.org/doc/dist/progguide/index.html
[Budd02]
Timothy Budd. An Introduction to Object-oriented Programming, Third edition. Addison-Wesley, Boston, Mass, 2002.
[Goldberg-Robson89]
Adele Goldberg and David Robson. Smalltalk-80: The Language. Addison Wesley, 1989. ISBN 0201136880.
[Gosling-McGilton96]
James Gosling and Henry McGilton. The Java Language Environment: A White Paper. Sun Microsystems, June 1996. http://java.sun.com/docs/white/langenv/.
[Hennessy90]
Matthew Hennessy. The Semantics of Programming Languages. Wiley, New York, NY, 1990.
[Hudak89]
Paul Hudak. Conception, Evolution, and Application of Functional Programming Languages. ACM Computing Surveys 21(3):359-411, Sep. 1989.
[Hudak00]
Paul Hudak. The Haskell School of Expression: Learning Functional Programming through Multimedia. Cambridge University Press, New York, NY, 2000.
[Hudak-Peterson-Fasel00]
Paul Hudak, John Peterson, and Joseph Fasel. A Gentle Introduction to Haskell: Version 98. June 2000. http://www.haskell.org/tutorial/
[Kiczales-etal01]
Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. An Overview of AspectJ. In J. Lindskov Knudsen (ed.), ECOOP 2001 --- Object-Oriented Programming 15th European Conference, Budapest Hungary, pages 327-353. Volume 2072 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, June, 1997. http://aspectj.org/documentation/papersAndSlides/ECOOP2001-Overview.pdf
[Kiczales-etal01b]
Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and William G. Griswold. Getting started with AspectJ. Communications of the ACM 44(10):59-65, Oct. 2001. http://doi.acm.org/10.1145/383845.383858
[Kiczales-etal97]
Gregor Kiczales, John Lamping, Anurag Menhdhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-Oriented Programming. In Mehmet Aksit and Satoshi Matsuoka (eds), ECOOP '97 --- Object-Oriented Programming 11th European Conference, Jyväskylä, Finland, pages 220-242. Volume 1241 of Lecture Notes in Computer Science, Springer-Verlag, New York, NY, June, 1997.
[Kiselev03]
Ivan Kiselev. Aspect-Oriented Programming with AspectJ. Sams Publishing, 2003.
[Leavens-Millstein98]
Gary T. Leavens and Todd D. Millstein. Multiple Dispatch as Dispatch on Tuples. In OOPSLA '98 Proceedings, pages 374-387 (Volume 33, number 10 of ACM SIGPLAN Notices October 1998).
Also Department of Computer Science, Iowa State University, TR #98-03b, April 1998, Revised May 1998, July 1998. [abstract] [postscript].
[Liskov01]
Barbara Liskov with John Guttag. Program Development in Java. Addison-Wesley, Boston, Mass, 2001.
[Peyton-Jones-Hughes99]
Simon Peyton Jones, John Hughes, et al. Haskell 98: A Non-strict, Purely Functional Language. February 1999. http://www.haskell.org/definition/
[Peyton-Jones-Hughes99b]
Simon Peyton Jones, John Hughes, et al. Standard Libraries for Haskell 98. February 1999. http://www.haskell.org/definition/
[Thompson96]
Simon Thompson. Haskell: The Craft of Functional Programming, Second Edition. Addison-Wesley Longman, 1996. ISBN 0-201-34275-8.
[Schmidt94]
David A. Schmidt. The structure of typed programming languages. MIT Press, Cambridge, Mass., 1994.
[Watt90]
David Watt. Programming language concepts and paradigms. Prentice-Hall, New York, NY, 1990.
[Winston97]
Patrick Henry Winston. On To Smalltalk. Benjamin Cummings, New York, NY, 1997.
[Wand-Kiczales-Dutchyn02]
Mitchell Wand, Gregor Kiczales, and Chris Dutchyn. A Semantics for Advice and Dynamic Join Points in Aspect-Oriented Programming. In Gary T. Leavens and Ron Cytron (eds), FOAL 2002 Proceedings: Foundations of Aspect-Oriented Languages Workshop at AOSD 2002, pages 1-8. Department of Computer Science, Iowa State University, Technical Report #02-06, April 2002. http://www.cs.iastate.edu/~leavens/FOAL/papers-2002/wand-kiczales-dutchyn.pdf

Return to top

Course Content and Policies

The course's content and grading polices are described on separate web pages. See the links on the top left of this page.

Return to top

Last modified Thursday, December 12, 2002.

This web page is for the Fall 2002 offering of Com S 541 at Iowa State University. The details of this course are subject to change as experience dictates and are still in draft form. Once the semester starts, students will be informed of any changes. Please direct any comments or questions to Gary T. Leavens at leavens@cs-DOT-iastate-DOT-edu.