Description
The course is aimed at making the student familiar with the general concepts common to all programming languages so as to facilitate learning new languages. Language paradigms (i.e., logic, functional, procedural, object-oriented) are compared and implementation strategies are discussed.
Credits: 4
01:198:112; 01:198:205 or 14:332:202.
Please note that courses for which a student has received a grade of D cannot be used to satisfy prerequisite requirements.
Semesters Offered:Spring and fall
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