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)…