Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
CSI 2120
[go: Go Back, main page]

CSI 2120 Programming Paradigms
Winter 2011

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. Influence 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 Outline

    Details will be filled in as the term progresses.
    Topic Reading (See "Required Textbooks" and "Other References" above) Notes and Examples Date
    An introduction to programming paradigms Required: Chapter 13, Gabbrielli and Martini
    Optional: "Programming Paradigms for Dummies" article
    Lecture Notes (pdf) January 5
    Prolog: Introduction Required: Programming in Prolog Chapter 1 likes.pl, victoria.pl, family.pl, vices4.pl January 10-12
    Prolog: Syntax and Lists Required: Programming in Prolog
    Chapter 2, Sections 2.1, 2.2, 2.3, 2.4
    Chapter 3, Sections 3.2, 3.3
    examples1.pl January 12-17
    Prolog: Satisfying Goals and Backtracking Required: Programming in Prolog
    Chapter 2, Section 2.6
    siblings.pl January 17
    Prolog: Arithmetic, More on Lists Required: Programming in Prolog
    Chapter 2, Section 2.5
    examples2.pl, prince.pl, power.pl January 19
    Prolog: More on Lists, Structures, and Recursion Required: Programming in Prolog
    Chapter 3, Sections 3.4, 3.5, 3.6
    insert.pl, bicycle.pl January 24
    Prolog: Input/Output Required: Programming in Prolog
    Chapter 5, Section 5.1
    examples3.pl January 24
    Prolog: Trees and Databases   trees.pl, empl.pl January 24-26
    Tutorial on the Relation between Logic and Prolog, taught by TA   Tutorial Notes (pdf) January 31
    Tutorial on Lists, taught by TA   Tutorial Notes (text file) February 2
    Prolog: Databases continued   dbs.pl February 7
    Prolog: The cut operator Required: Programming in Prolog
    Chapter 4, Sections 4.1, 4.2, 4.4
    pairs.pl, examples4.pl February 7-9
    Prolog: More on Built-Ins Required: Programming in Prolog
    Chapter 6, Sections 6.1, 6.2, 6.3, 6.4, 6.5
    examples5.pl February 9
    Prolog: Grammars and Parsing Required: Programming in Prolog
    Chapter 9, Sections 9.1, 9.2, 9.3, 9.4, 9.5, 9.6
    parserNL.pl, grammarNL.pl, grammarNLwithTrees.pl, ifStmt.pl, ifStmtsT.pl February 14
    Midterm Review   sisters.pl, flights.pl, treequery.pl, sets.pl February 16
    Paradigms Again Optional: Chapter 1, Tucker and Noonan   February 28
    Scheme: Getting Started Required: The Scheme Programming Language
    Chapter 1
      February 28
    Scheme: Simple Expressions, Evaluation, Arithmetic, Lists, Conditional Expressions, Simple Recursion Required: The Scheme Programming Language
    Chapter 2, Sections 2.1 through 2.8
    examples1.scm, examples2.scm, examples3.scm, examples4.scm February 28-Mar 9
    Scheme: I/O, Assignment, Vectors, Trees Required: The Scheme Programming Language
    Chapter 2, Sections 2.9 (up to page 53)
    Chapter 3, Sections 3.2
    Chapter 4, Sections 4.1, 4.2, 4.4, 4.7
    Chapter 6, Sections 6.9
    Chapter 7, pages 284-285
    examples5.scm, trees.scm March 14-21
    Scheme: Functions as First-Class Data Values   examples6.scm, examples7.scm, examples8.scm March 21-28
    Python Required: Python Tutorial
    Chapters 1 and 3
    Chapter 4, Sections 4.1, 4.2, 4.3, 4.6
    Chapter 6, Sections 6.1, 6.2
    Chapter 7, Section 7.2
    Optional: Chapter 13, Section 13.5, Tucker and Noonan
    Lecture Notes (pdf),
    examples1.py, examples2.py, sum_prod.py
    March 28-30
    Other Paradigms: Imperative Revisited (Pascal), Constraint Programming, Optional: Gabbrielli and Martini, Chapter 12, Section 12.5.3 example1.p, example2.p, pascal.txt, clp.txt April 4
    Other Paradigms: Concurrent Programming Optional: Tucker and Noonan, Chapter 17, Section 17.1 Lecture Notes (pdf) April 6