COS 301: Programming Languages Fall 2011

Instructor: Curtis Meadow

University of Maine Department of Computer Science

Syllabus
Course description, grading policy, broad outline, general class policies
ABET syallabus - includes specific goals and contributions to outcomes
Project
Language selection form. Please download this form, and fill it out using a word processor.
This will be graded as HW1.
Policies and Format
Scoring Rubric for Writing
Specific Project Assignments
Presentation Option An in-class presentation in lieu of one paper.
Paper Format Checklist Use this before submitting your paper.
Project Paper #1: Overview and History
Project Paper #2: Syntax, Scope and Primitive Types Due date changed to Tuesday Oct 18th
Project Paper #3: Data Types and Expression
Project Paper #4: Control Flow and Exception Handling
Project Paper #5: Functions, Parameters and Conclusions
Homework Assignments
Assignment 1. See Language selection form above. Due Sept 6.
Assignment 2 Due Tues Sept. 27
Assignment 3 Due Oct 6
Prelim 1 Essay Due Oct 20
Assignments 4-5 Due Nov 10
Prelim 2 Essay Due Nov 22
Assignment 6 Due Dec 6
 
Obfuscated Code Contest
 
Lecture Notes
These notes are from Fall 2010 and may be revised over the course of the semester. Do not print until just before class coverage.
Preliminaries
Technical Writing Updated Sept 7 2011
History and Evolution of Programming Languages
Syntax and Semantics
Lexical and Syntactic AnalysisRev. Sept 2011
Names and Binding
Data Types
More Data Types and Garbage Collection
Expressions and Assignment
Statement Level Control Structures
Subprograms
Exceptions
Stack Frames
Smalltalk (Part of Ch 12)

Technical Writing Resources
   Mayfield Handbook-TOC
   UMaine Writing Center
   IEEE Citation Examples - Monash University Library
   IEEE Citation Examples - University of Toronto Engineering Communication Centre

Recommended Reading
   A Brief, Incomplete, and Mostly Wrong History of Programming Languages
   Mother Tongues Computer Language Chart
   Google Chrome Development (in cartoons!)
   Revised Report on the Algorithmic Language Algol 60
   Unicode.org Unicode Tutorial
   The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)
   UTF-8 and Unicode FAQ for Unix/Linux
   Catch as Catch can: A light-hearted look at exception handling
    An Expert System for Raising Pigs (Prolog)
   Java theory and practice: A brief history of garbage collection
   Java theory and practice: Garbage collection in the HotSpot JVM
   .NET Garbage collection - MSDN documentation
   Garbage collection in .NET

Other Points of Interest
If happen across any items that you think might be particularly interesting and/or entertaining for the class, please email me
   99 Bottles of Beer -- in 1,348 Programming Languages
   Ranking the popularity of programming languages
   Periodic Table of Perl Operators
   PHP contrasted to Perl (PHP - it's "training wheels without the bike" - Randal L. Schwartz)
      Showing that language rants are still very much alive
   JavaScript: The World's Most Misunderstood Programming Language
   The World's Most Misunderstood Programming Language Has Become the World's Most Popular Programming Language
      If you do anything on the Web, then sooner or later you will use Javascript. Read these first.