Course Details

  • Instructor Profile: Menendez, David, Zhang, Zheng
  • Prerequisite Information:
    01:198:211 or 14:332:331; 01:198:205 or 14:332:312.

    - A grade below a "C" in a prerequisite course will not satisfy that prerequisite requirement.

  • Course Links: 01:198:205 - Introduction to Discrete Structures I, 01:198:211 - Computer Architecture
  • Topics:

    BNF and context free grammars; Data visibility (i.e., lexical and dynamic scoping);  Procedures and  parameter passing techniques; Types, type checking and type equivalence; Functional programming paradigm: higher-order functions, recursive data structures, programming with recursion (i.e., without iteration);  Logic programming paradigm:  unification, generate and test;  Programming with pointers in C.

  • Expected Work: There are three graded programming projects and textbook homework assignments.
  • Exams: 1 hourly, Final Exam
  • Learning Goals:

    Computer Science majors ...

    • will be prepared to contribute to a rapidly changing field by acquiring a thorough grounding in the core principles and foundations of computer science (e.g., techniques of program design, creation, and testing; key aspects of computer hardware; algorithmic principles).
    • will acquire a deeper understanding on (elective) topics of more specialized interest, and be able to critically review, assess, and communicate current developments in the field.
    • will be prepared for the next step in their careers, for example, by having done a research project (for those headed to graduate school), a programming project (for those going into the software industry), or some sort of business plan (for those going into startups).