|
Synopsis
Purpose. Study of the multiple forms of expression in artificial computer languages, and of the language processing machines. Books and
other resources. Evaluation. Homework/lab projects (1/3) + Midterm (1/3) + Exam (1/3)
|
Master Sorceress:
Prof. Cristina
Lopes, DBH 5076, lopes
at ics dot uci
dot edu; Office
hours: M/W/F, 11:00-noon.
Wizardry Reader/Grader:
Yassser Ganjisaffar
Lectures: Tues
& Thur 3:30-4:50p, BH 1420
Syllabus
| Week | Lecture | Date |
Topics |
Homework | Readings / Notes |
| 1 | 1 | 1/8 | Course goals and
description. Computer languages: diversity and categories. |
HW1 |
|
| 2 | 1/10 | Playing with languages: the
metacircular interpreter. Review of INF 101 in the context of
metalinguistic abstraction. |
4.1 |
||
| 2 | 3 | 1/15 | The metacircular
interpreter (cont.) |
|
|
| 4 | 1/17 | Special Class (or no class) |
|
||
| 3 | 5 | 1/22 |
Aspect-oriented programming. The aspect interpreter. |
HW2 (AOP) HW3 |
aspect-eval |
| 6 | 1/24 | AOP (cont). |
|
||
| 4 | 7 | 1/29 | Scheme interpreter in Java |
|
|
| 8 | 1/31 | (cont) |
|
||
| 5 | 9 | 2/5 | Revision. | ||
| 10 | 2/7 | Midterm | |||
| 6 | 11 | 2/12 | Dynamic OO languages: Ruby basics. | ||
| 12 | 2/14 | Ruby Objects, Classes, and Modules. Introduction to reflection and metaprogramming. | Pragmatic Ruby Poignant Ruby |
||
| 7 | 13 | 2/19 | Ruby
metaprogramming |
HW4 | Ruby reflection |
| 14 | 2/21 | Ruby metaprogramming (cont) |
Objects and Classes | ||
| 8 | 15 | 2/26 | Back to mainstream: Java reflection. | ||
| 16 | 2/28 | Java reflection (cont) |
example | ||
| 9 | 17 | 3/4 | Ruby on Rails: programming without writing code. (brief overview of 3-tier architecture, and Model/View/Controller) | HW5 | Ruby on Rails |
| 18 | 3/6 | JavaScript |
JavaScript | ||
| 10 | 19 | 3/11 | Revision: the meta-circular (human) interpreter. | |
|
| 20 | 3/13 | Revision: Ruby, reflection. | |||
| Tuesday | 3/18 | Exam starts at 4:00pm |