View Source of syllabus.php
In the interest of open source, and in the interest of keeping Mr. Webmaster honest, here is the PHP source of syllabus.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 = "syllabus.php"; ?>
<title>COMP 524, Spring 2008 - Syllabus</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: Programming Language Concepts</h1>
<h3>Spring, 2008</h3>
<ul>
<li><strong>Location:</strong> Sitterson 014</li>
<li><strong>Time:</strong> Tues/Thurs 3:30-4:45</li>
<li><strong>Webpage:</strong> <a href="http://cs.unc.edu/~jsterrel/courses/proglang">http://cs.unc.edu/~jsterrel/courses/proglang</a></li>
<li><strong>Instructor:</strong> <a href="http://cs.unc.edu/~jsterrel/">Jeff Terrell</a></li>
<li><strong>Email:</strong> jsterrel at cs.unc.edu</li>
<li><strong>Office:</strong> Sitterson 138</li>
<li><strong>Phone:</strong> 962-1791</li>
<li><strong>Office Hours:</strong> Tues/Thurs 10:20-12pm, lower lobby</li>
</ul>
<h3>Course Objective</h3>
<p>This is an upper-division undergraduate course on programming language concepts and their realization in specific languages. The objective is the study of <em>how programming languages work</em>. In particular, we will emphasize practical experience with programming language concepts and the different programming language paradigms through several programming assignments.</p>
<p>(view the <a href="http://www.cs.unc.edu/Admin/Courses/descriptions/144.html">official course description</a>)</p>
<h3>Prerequisite</h3>
<p>COMP 410 (Data Structures)</p>
<h3>Textbook</h3>
<p>The textbook is not required. However, I strongly recommend you buy it. It's only <a href="http://www.amazon.com/exec/obidos/tg/detail/-/0126339511/qid=1130701185/sr=12-1/104-8101672-8695123?v=glance&s=books">$62 on Amazon</a>, and it is a thorough and well-written book. I will endeavor to provide links to freely available articles on each topic as we cover them, but they will lack the quality, clarity, and cohesiveness of this book. The book is <a href="http://www.cs.rochester.edu/~scott/pragmatics/"><em>Programming Language Pragmatics</em></a>, 2nd edition, by <a href="http://www.cs.rochester.edu/u/scott/">Michael L. Scott</a>.</p>
<h3>Assignments</h3>
<p>Assignments will be of two types. <em>Exercises</em> will give you practice using the variety of languages that you will learn. I expect to assign 4-6 exercises. <em>Programs</em> will reinforce your understanding of programming language concepts. For example: build a parse tree for this grammar. I expect to assign 2-3 programs. Programs will be written in Python, which you will learn early in the course. Collaboration is not allowed on either type of assignment.</p>
<h3>Assignment submission policy</h3>
<p>Assignments should be emailed to me at jsterrel at cs.unc.edu. If an assignment is due on, say, February 5th, that means I will accept it until 11:59 p.m. on the 5th. Assignments submitted late will be automatically docked 5%. If I finish grading assignments and you still have not submitted yours, I will begin docking 10% per day. I make no guarantees about when I will finish grading assignments, but be warned that I intend to grade them quickly.</p>
<h3>Exams</h3>
<p>There will be 3 exams: 2 mid-term and 1 final. The final will be cumulative. All exams will be closed book and closed notes.</p>
<h3>Grading</h3>
<ul>
<li>30% - Exercises</li>
<li>25% - Programs</li>
<li>20% - Midterm exams (10% each)</li>
<li>25% - Final exam</li>
<li>5% - Class participation (swing)</li>
</ul>
<h3>Class participation</h3>
<p>Please help to maintain an environment conducive to learning by refraining from:</p>
<ul>
<li>making a habit of arriving late or leaving early</li>
<li>talking, sleeping, reading, etc.</li>
<li>leaving cellphone ringers on</li>
<li>using a laptop except for note-taking</li>
</ul>
<p>I reserve the right to reward individuals who regularly participate in class discussion by adjusting their overall grade by as much as 5%. Conversely, I reserve the right to <em>penalize</em> those who regularly disrespect classroom etiquette by as much as 5%.</p>
<h3>Topics</h3>
<ul>
<li>syntax and syntax analysis</li>
<li>name binding and environments</li>
<li>scope</li>
<li>data types</li>
<li>data abstraction (objects)</li>
<li>control flow</li>
<li>control abstraction (subroutines)</li>
<li>scripting languages with Python</li>
<li>functional languages with Scheme</li>
<li>logic languages with Prolog</li>
<li>concurrency</li>
</ul>
<?php include("footer.php"); ?>

