View Source of lectures.php
In the interest of open source, and in the interest of keeping Mr. Webmaster honest, here is the PHP source of lectures.php. (This encourages him to write clean, easy-to-understand code...well, relatively clean and easy-to-understand, that is.) If you become interested in PHP, you can read more about it at PHP: Hypertext Preprocessor. You will also see plenty of HTML code, which is what makes the World Wide Web go 'round. You can read more about HTML (and CSS, another technology used on this site) here, at the official page of the very official World Wide Web Consortium (W3C). Anyway, enough rambling, here's the code!
<?php include("header1.php"); ?>
<?php $THIS_FILE = "lectures.php"; ?>
<title>COMP 524, Spring 2008 - Lecture Notes</title>
<link rel="stylesheet" href="local.css" type="text/css" charset="iso-8859-1" title="Default" />
<?php include("header2.php"); ?>
<?php include("localheader.php"); ?>
<h1>COMP 524, Spring 2008 - Lecture Notes</h1>
<p>Here I will post my lecture notes after I use them.</p>
<h3>Unit 1</h3>
<table>
<tr><th>Date</th><th>Topics</th></tr>
<tr class="thu"> <td><a href="notes/notes-0110.html"><nobr>Thu Jan 10</nobr></a></td> <td>course expectations; why study programming languages, brief history of PL's, intro to Python</td></tr>
<tr class="tue"> <td><a href="notes/notes-0115.html"><nobr>Tue Jan 15</nobr></a></td> <td>Python: flow control, functions, built-in data structures, list comprehensions, modules, input & output</td></tr>
<tr class="thu"> <td><a href="notes/notes-0117.html"><nobr>Thu Jan 17</nobr></a></td> <td>Compilers, interpreters, virtual machines, preprocessors, etc. Tombstone diagrams. Bootstrapping a compiler - example with Pascal. Overview of compilation.</td></tr>
<tr class="tue"> <td><a href="notes/notes-0122.html"><nobr>Tue Jan 22</nobr></a></td> <td>Lexical analysis, a.k.a. scanning: tokens, regular expressions (formal and practical), scanner implementation</td></tr>
<tr class="thu"> <td><a href="notes/notes-0124.html"><nobr>Thu Jan 24</nobr></a></td> <td>Context-free grammars: derivations, parse trees, syntactic and semantic ambiguity, precedence, eliminating left recursion</td></tr>
<tr class="tue"> <td><a href="notes/notes-0129.html"><nobr>Tue Jan 29</nobr></a></td> <td>Eliminating common prefixes, recursive descent parsers (with example)</td></tr>
<tr class="thu"> <td><a href="notes/notes-0131.html"><nobr>Thu Jan 31</nobr></a></td> <td>Scheme: basics, special forms, procedures, iterative processes and tail recursion</td></tr>
<tr class="tue"> <td><a href="notes/notes-0205.html"><nobr>Tue Feb 5</nobr></a></td> <td>Scheme 2: higher-order procedures, functions as first-class objects, anonymous functions, pairs, lists</td></tr>
<tr class="thu"> <td><a href="notes/notes-0207.html"><nobr>Thu Feb 7</nobr></a></td> <td>Scheme 3: lists and recursion, mapping over lists, trees, lists as conventional interfaces</td></tr>
<tr class="tue"> <td><a href="notes/notes-0212.html"><nobr>Tue Feb 12</nobr></a></td> <td>Names; binding; binding vs. object lifetimes; storage mechanisms (static, stack, heap) and object lifetimes; garbage collection</td></tr>
<tr class="thu"> <td><a href="notes/notes-0214.html"><nobr>Thu Feb 14</nobr></a></td> <td>Static and dynamic scope; symbol tables; closures; shallow vs. deep binding</td></tr>
</table>
<h3>Unit 2</h3>
<table>
<tr><th>Date</th><th>Topics</th></tr>
<tr class="tue"> <td><nobr>Tue Feb 26</nobr></td> <td>test review (no notes)</td></tr>
<tr class="thu"> <td><a href="notes/notes-0228.html"><nobr>Thu Feb 28</nobr></a></td> <td>Control flow: expression evaluation, sequencing, unstructured flow, selection, iteration & recursion</td></tr>
<tr class="tue"> <td><a href="notes/notes-0304.html"><nobr>Tue Mar 4</nobr></a></td> <td>Type systems: defining and using types; rules for inference, equivalence, and compatibility; casting and coercion</td></tr>
<tr class="thu"> <td><a href="notes/notes-0306.html"><nobr>Thu Mar 6</nobr></a></td> <td>Strong vs. weak typing; case studies on C-style arrays and strong typing in ML</td></tr>
<tr class="tue"> <td><nobr>Tue Mar 11</nobr></td> <td>No notes--spring break.</td></tr>
<tr class="tue"> <td><nobr>Thu Mar 13</nobr></td> <td>No notes--spring break.</td></tr>
<tr class="tue"> <td><nobr>Tue Mar 18</nobr></td> <td>No notes--class cancelled.</td></tr>
<tr class="thu"> <td><a href="notes/notes-0320.html"><nobr>Thu Mar 20</nobr></a></td> <td>Evaluation, with Pseudo-C example. Implementing namespaces and scope.</td></tr>
<tr class="tue"> <td><a href="notes/notes-0325.html"><nobr>Tue Mar 25</nobr></a></td> <td>Introduction to Prolog: knowledge bases, queries, terms, variables, matching.</td></tr>
<tr class="thu"> <td><a href="notes/notes-0327.html"><nobr>Thu Mar 27</nobr></a></td> <td>Proof search, tic-tac-toe game, not operator.</td></tr>
<tr class="tue"> <td><a href="notes/notes-0401.html"><nobr>Tue Apr 1</nobr></a></td> <td>Clarifying addendum to type systems (half lecture).</td></tr>
</table>
<h3>Unit 3</h3>
<table>
<tr><th>Date</th><th>Topics</th></tr>
<tr class="thu"> <td><a href="notes/notes-0410.html"><nobr>Thu Apr 10</nobr></a></td> <td>Classes as data abstraction; object-oriented paradigm; inheritance and initialization of objects; reference vs. value model; static vs. dynamic binding; polymorphism.</td></tr>
<tr class="tue"> <td><a href="notes/notes-0415.html"><nobr>Tue Apr 15</nobr></a></td> <td>Classes 2: member lookup; dynamic aspects of OO interpretation; generics (a.k.a. templates); function parameter passing.</td></tr>
<tr class="thu"> <td><a href="notes/notes-0417.html"><nobr>Thu Apr 17</nobr></a></td> <td>Python's parameter-passing semantics; Normal vs. applicative order in Scheme (enrichment: infinite streams)</td></tr>
</table>
<?php include("footer.php"); ?>

