Вы находитесь на странице: 1из 2

CSI 2120 Programming Paradigms

(3 hours of lecture, 1.5 hours of tutorial, 1.5 hours of lab per week, 3 credits)

Winter 2010 Course Outline


Calendar Description: Presentation of the major programming paradigms: object-oriented, imperative, logic, functional. Related programming languages, their essential properties and typical applications. Programming in imperative, logic and functional languages. Inuence of programming paradigms on problem solving and program design strategies. An overview of other paradigms, such as constraint-based, rule-based and event-driven programming. Prerequisite: CSI2110 or CSI2210. Course Objectives: To acquire an in-depth knowledge of the Prolog and Scheme programming languages and a basic knowledge of the Python language, which will provide insight into logic programming, functional programming, and scripting language paradigms. To compare these paradigms to each other and to other known paradigms such as objectoriented and imperative. To gain a more thorough understanding of paradigms and their comparison by briey studying other paradigms such as such as constraint-based, rule-based, event-driven, and concurrent languages. Professor: Dr. Amy Felty SITE 5-068 afelty@site.uottawa.ca Lectures: Monday 10:00-11:30, MCD 121 Wednesday, 8:30-10:00, MCD 121 Oce Hours: Tuesday 10:3012:30 Required Textbooks: Programming in Prolog, William F. Clocksin and Christopher S. Mellish, Springer, 5th edition, 2003. The Scheme Programming Language, R. Kent Dybvig, MIT Press, 4th edition, 2009. (The third edition is available on the web.) These textbooks are available at Benjamin Books, 122 Osgoode Street. Course Web Page: http://www.site.uottawa.ca/afelty/csi2120/ (All assignments and information for the course will be posted here.)

Labs: LAB/DGD: Thursday, 16:00 - 19:00 The class will be split into two equal size lab sections, which will take place in SITE 0130 and 0131. See the web page for scheduled times and topics. Assignments, Quizzes, and Midterm: There will be 6 or 7 assignments. Assignments must be submitted electronically as a ZIP le using your Virtual Campus account. See the course web site for details. All assignments will be done individually. Programming assignments will be developed using PLT Scheme, SWI Prolog, and Python, all available from Windows XP in the SITE 0110 Computer Lab. The midterm exam will take place during class time sometime in mid to late February. Evaluation: Assignments Midterm Exam Final Exam 40% (or less, see below) 15% (or more, see below) 45% (or more, see below)

To pass the course, you must obtain at least 50% on the exam component (which includes the midterm and nal exam). For those who get at least 50% on the exam component, your mark will be calculated by adding your exam component to your assignment component using the calculation below. Note that the maximum you can get in the assignment component is 20% more than the exam component. Exam component = (Midterm out of 15 + Final out of 45) * 100/60 Assignment component = minimum of: (Assignments out of 40) * 100/40 (Exam component) * 1.2 Important Notes: Information about plagiarism and academic fraud can be found on the course web page. Class attendance is mandatory. As per academic regulations, students who do not attend 80% of the class will not be allowed to write the nal examinations. All components of the course (i.e laboratory reports, assignments, etc.) must be fullled otherwise students may receive an EIN (incomplete) as a nal mark (equivalent to an F). Course Outline: An introduction to programming paradigms Prolog Scheme Python A comparison of paradigms

Вам также может понравиться