I. Preliminaries for the first meeting A. staff introductions ------------------------------------------ WELCOME TO Com S 541 PROGRAMMING LANGUAGES 1 Professor Gary T. Leavens 229 Atanasoff Hall Phone: 294-1580 Email: leavens@cs.iastate.edu Office Hours: Class URL: http://www.cs.iastate.edu/ ~leavens/ComS541/index.shtml Pick up handouts: ( of them) ------------------------------------------ B. student introductions ------------------------------------------ INTRODUCE YOURSELF 1. On the board write your: a. name b. email address 2. Pronounce your name 3. Programming Languages you know well? 4. Previous classes in this area? 5. Reason for taking 541? ------------------------------------------ II. the course (can omit) A. prerequisites ------------------------------------------ PREREQUISITES Com S 440 + context-free grammars + compiler data structures + run-time costs of various features + large software programming experience OR Com S 342 + basic constructs of languages + interpreters + interpreter data structures + design alternatives for features + functional programming ------------------------------------------ B. plan for the course ------------------------------------------ PLAN FOR THE COURSE We will negotiate this. Beginning (see HW 0): - read 2 papers on language design, discuss next time - presentations on overview topics - decide on syllabus ------------------------------------------ 1. description ------------------------------------------ COURSE DESCRIPTION Survey of the goals and problems of language design. Formal and informal studies of a wide array of programming language features including type systems, naming, state, and control. Creative use of functional, object-oriented, declarative, concurrent and other progamming paradigms. ------------------------------------------ 2. potential topics ------------------------------------------ POTENTIAL TOPICS I. paradigms A. object-oriented with Smalltalk, Java, or C++... OO design multi-methods formal semantics B. functional with Haskell, ML, or Scheme... streams and lazy data structures C. declarative with lambda Prolog, Prolog, OBJ3 or AKL, Prolog(R) D. parallel programming distributed programs SR programming language II. Semantics A. Syntax B. Static Semantics 1. Axiomatic Semantics 2. Types (polymorphism,...) C. Dynamic Semantics 1. Operational Semantics 2. Denotational Semantics state, recursion, etc. D. Algebraic semantics E. Action semantics ------------------------------------------ III. discussion of course policies (can omit if no time, in the handouts) A. Grading ------------------------------------------ GRADING + No Curve Grading + Your grade is 50% based on homework 50% based on tests ------------------------------------------ B. Course texts IV. group work (can omit) A. motivation ------------------------------------------ COOPERATIVE LEARNING BENEFITS + active learning + academic achievement + higher-level thinking skills + attitudes, motivation + teamwork, interpersonal skills + communication skills + understanding of work environment + self-esteem + level of anxiety + race, gender relations + class attendance + better questions in class ------------------------------------------ B. policies ------------------------------------------ HOW TO WORK IN GROUPS 1. For each group problem, You handwrite your own plan or get stuck and write why. 2. Your group meets, compares plans, helps those stuck, decides on plan, carries it out (however you like) 3. Group leader assembles work and writes Leader: I.A. Leader I. Did Work M.E. Too to certify who participated 4. Discuss what worked, didn't, changes; add summary of that to the homework 5. Group leadership rotates ------------------------------------------ ------------------------------------------ DON'T DO THIS 1. Go to the meeting without writing a plan or getting stuck 2. Your group meets, divides up problems, you do 1 out of 3. 3. Group leader assembles work, writes Leader: I.A. Leader I. Did Work M.E. Too to certify who participated 4. Group leader writes that all went well. 5. Group leader is always I.A. ------------------------------------------ C. form groups ------------------------------------------ PICKING GROUPS 1. meet other interested parties 2. exchange contact information email, phone, address 3. (later) send mail to leavens@cs.iastate.edu telling: names, e-mail, phone ------------------------------------------