I. Preliminaries for the first meeting A. staff introductions ------------------------------------------ WELCOME TO COP 4020 PROGRAMMING LANGUAGES I Professor Gary T. Leavens 437D Harris Center (Bldg. 116) Phone: (407)823-4758 Email: leavens@eecs.ucf.edu Office Hours: URL: http://www.eecs.ucf.edu/~leavens/COP4020 Pick up handouts: ( of them) ------------------------------------------ B. staff introductions C. student introductions How is a programming language like a religion? II. the course itself A. What is a programming language? ------------------------------------------ PROGRAMMING LANGUAGE def: a *programming language* is a language that is def: a *general-purpose langauge* is one that is not tailored to some particular application area. Examples: def: an *special-purpose language* is a language that is designed to support some particular application. Examples: ----------------------------------------- Others? Others? B. objectives What are your objectives for this course? How do you want this course to help you in 5 years? C. plan for the course ------------------------------------------ PLAN FOR THE COURSE Use the textbook Concepts, Techniques, and Models of Computer Programming by Peter Van Roy and Seif Haridi (MIT Press, 2004). Broadly: - Different programming models esp. declarative declarative concurrent message passing relational - Kernel language approach Uses the language Oz ------------------------------------------ ------------------------------------------ REASONS FOR LEARNING DECLARATIVE MODELS - Makes certain programs clearer - can see all inputs eval(exp, env) - functions as arguments helps in: abstraction modularization - cleaner concurrency (stateless) - gives you more ways to solve problems - ideas important for: - algorithm design - specification - describing programming languages - web services - it's interesting and fun ------------------------------------------ D. outcomes How should we test for the objectives? E. syllabus 1. textbook ------------------------------------------ REQUIRED TEXTBOOK Concepts, Techniques, and Models of Computer Programming by Peter Van Roy and Seif Haridi (MIT Press, 2004) ------------------------------------------ 2. grading ------------------------------------------ GRADING + No curve grading + Your grade is 65% based on tests 35% on homework ------------------------------------------ 3. cooperation and cheating ------------------------------------------ COOPERATION Can talk with others about homework - but must cite them Can cooperatively do homework - but must carefully certify (see grading policy for details) CHEATING Exchange of finished answers - without cooperation in solving them - without certification Using ideas of others - without citation Copying answers from the web - without citation ------------------------------------------ 4. plan for class meetings 5. ask for questions/concerns