CMPS 203 Tentative Schedule
|
Week |
Topic |
Reading |
Programs |
|
Mar 27-31 |
Overview and Imperative Programming |
Sethi C1, S3.1, S3.5, S4.9 Hankin97, Williams99 |
|
|
Apr 3-7 |
Procedures and Object Oriented Programming |
Sethi C5 Hatton98 |
Prog1 due Wed 8am |
|
Apr 10-14 |
Object Oriented Programming |
Sethi C6, C7 Myers97 |
|
|
Apr 17-21 |
Functional Programming |
Sethi C8, C9 Reynolds97, Harper97 |
Prog2 due Mon 8am |
|
Apr 24-28 |
Functional Programming |
Sethi C10 Longley99 |
|
|
May 1-5 |
Logic Programming |
Sethi C11 |
Prog3 due Mon 8am |
|
May 8-12 |
Parallel Programming |
Sethi C12 Skillicorn98 |
|
|
May 15-19 |
Distributed Programming |
Cardelli97, Guerraoui99, Haridi98 |
Prog4 due Mon 8am |
|
May 22-26 |
Component Models |
||
|
May 29-Jun 2 |
TBA |
Prog5 due Mon 8am |
Papers
Cardelli97, "Global Computation", L. Cardelli, ACM SIGPLAN Notices, January 1997 (
http://www.acm.org/pubs/articles/journals/surveys/1996-28-4es/a163-cardelli/a163-cardelli.html)Gartner99, "Fundamentals of Fault-Tolerant Distributed Computing in Asynchronous Environments", ACM Computing Surveys, March 1999 (
http://www.acm.org/pubs/articles/journals/surveys/1999-31-1/p1-gartner/p1-gartner.pdf)Guerraoui99, "OO distributed programming is not distributed OO programming", CACM April 1999, (
http://www.acm.org/pubs/articles/journals/cacm/1999-42-4/p101-guerraoui/p101-guerraoui.pdf).Hankin97 "Position Statements on Strategic Directions for Research on Programming Languages", C. Hankin, H. R. Nielson, and J. Palsberg, ACM SIGPLAN Notices, January 1997 (
http://www.daimi.aau.dk/~hrn/SDPL/foreword.ps.Z).Haridi98, "Programming Languages for Distributed Applications", S. Haridi, P. Van Roy, P. Brand, and C. Schulte, New Generation Computing, V16n3 1998.
Harper97, "ML and Beyond", R. Harper and J. C. Mitchell, ACM SIGPLAN Notices, January 1997 (
http://www.acm.org/pubs/articles/journals/surveys/1996-28-4es/a219-harper/a219-harper.ps)Hatton98 "Does OO Sync with How We Think?", L. Hatton, IEEE Software, May/June 1998.
Longley99, "When is a functional program not a functional program?", J. Longley, ICFP99 in ACM SIGPLAN Notices, September 1999 (
ftp://ftp.dcs.ed.ac.uk/pub/jrl/whenfun.ps.Z).Myers97 "Parameterized Types for Java", A. C. Myers, J. A. Bank, and B. Liskov, POPL97 (
http://www.pmg.lcs.mit.edu/papers/popl97/)Reynolds97 "Beyond ML", J. C. Reynolds, ACM SIGPLAN Notices, January 1997 (
http://www.acm.org/pubs/articles/journals/surveys/1996-28-4es/a172-reynolds/a172-reynolds.ps).Skillicorn98, "Models and Languages for Parallel Computation", D. B. Skillicorn and D. Talia, ACM Computing Surveys, June 1998.
Williams99, "All I really need to know about pair programming I learned in Kindergarten", CACM May 2000 (
http://www.cs.utah.edu/~lwilliam/Papers/Kindergarten.PDF )
Required Reading
You are expected to complete all required reading before the material is discussed in class. To help motivate you to complete the reading and to demonstrate that you have done the reading, you must do the following.
Text book reading
You will be expected to complete short written exercises from the text from time to time. These will be assigned in class the class meeting before they are due.
Other reading
For reading assignments outside of the text (i.e. technical papers), you must prepare comments or two questions with answers, based on the paper. If there is more than one paper assigned for a specific day, then prepare one comment or question/answer from each of the papers. Each comment or question and answer should be about a half page in length. Suitable questions are those that you or someone reading the paper for the first time might have to stop and study, look elsewhere or reread to find an answer. Suitable comments include comparison and/or evaluation of the work in comparison with other work reported either in the textbook or in other papers. Also, see "How to Read an Engineering Research Paper" by Bill Griswold (
http://www-cse.ucsd.edu/users/wgg/CSE210/howtoread.html) for additional ideas. The questions or comments will be graded (each question or comment) on the following scale (0:not received, 1:marginal, 2:what was expected, 3:outstanding). You must accumulate an average of 1.5 points per question or comment to pass this class REGARDLESS of other evaluation criterion. In general, to receive a score greater than 2 you will have to incorporate material from sources other than the current reading assignment (e.g. from the textbook or from papers read at other times during the quarter).Give Credit Where Credit Is Due
If you paraphrase a source other than the one you are writing about then you must indicate this with a citation footnote. If you quote any source, including the one you are writing about, you must use quotation marks and include a citation footnote. Failure to follow these requirements will be considered a serious breach of academic integrity (
http://oasas.ucsc.edu/avcue/integrity ).
Programs
Program 1: Write a program that can print itself. You may use any language you choose.
Program 2: Write a program in C++ to …
Program 3: Write a program in ML to …
Program 4: Write a program in Prolog to …
Program 5: Write a program in Java to (distributed application)…