I. Preliminaries for the first meeting A. staff introductions ------------------------------------------ WELCOME TO COP 4020 PROGRAMMING LANGUAGES I Instructor: Faraz Hussain 354 Harris Center (Bldg. 116) Email: fhussain@eecs.ucf.edu Office Hours: TBD URL: http://www.eecs.ucf.edu/~fhussain/cop4020 ------------------------------------------ B. staff introductions 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 - 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 70% based on tests 30% on homework ------------------------------------------ 3. cooperation and cheating ------------------------------------------ COOPERATION Can talk with others about homework - but must cite them Cooperative homework NOT allowed (see grading policy in syllabus) CHEATING Exchange of finished answers Using ideas of others - without citation Copying answers from the web - without citation ------------------------------------------ 4. plan for class meetings 5. ask for questions/concerns