Home    Course Archive    Video/Audio Library     Papers Archive    CV    My Keeper Shelf    Cultural References in Class Quotes

Home page for Professor Haynes'

COSC 341/342 Programming Languages
FALL 2015


0. Basics
  1. Required Textbooks:
  2. Languages of Implementation: Haskell, Erlang, Python
  3. Syllabus
  4. Calendar
  5. Coding Standards: coming (Keep it clean. Keep it readable. Keep it honest. Keep it simple.)
  6. Office Hours: MW 12:30 - 1:30p, T R 1:00 - 4:00 p




1. Lecture notes
Date Topic Reading Notes Assignments
Due at following class
12/9 Python: experiencing Python Click here
12/7 Erlang: continuing beginning message passing: kitchen
12/2 Erlang: beginning message passing: dolphin and
(Similar versions in Java will get posted here when completed)
Create new code (you use dolphin module as a starting point).
A process waits for a message. When it receives a message, it sends the same message back to the sender,
then waits 1 second, then sends a second message to the sender -- that message is the tuple {self(), done},
then recursively invokes itself.
Give hardcopy of source code and screen shot showing the shell sending two messages to the process.

Solution here
11/30 Erlang recursion and tail recursion: Click here
11/22 Various Erlang Examples: Click here
10/26/2015 Variables: Representation: Floating Point Examples
10/21 Variable: Lexical & dynamic scope
Position: C language, pointers and arrays Lecture notes on C
nice tutorial on C
3.4 - 3.7
10/19 Variable (3.1, 3.2) "Check your understanding" page 121
Exercise 3.1 (do for Java, C++, C)
10/14/2015 Haskell: chpt 4 recursive examples
chpt 5 currying and higher order function
chpt 5 functional programmer's toolbox: map, filter, foldl, scanl
10/12 Haskell: currying
10/7 Ambiguous grammar (see dangling else), Language hierarchy (RE < CFG < CSG < NL), Scanner (tokenizer) using state transition diagram
9/30/2015 "calculator" language and recursive descent parsing Figure 2.15, 2.16 Scott, page 104-5: 2.10, 2.12a, 2.12b, 2.13a
9/28/2015
9/23/2015 Haskell Lipovača: chpts 2-5
9/21/2015 Haskell Lipovača: chpts 1-3
9/16/2015 Haskell: chapter 1 code Lipovača: chpts 1-3
9/14/2015 Haskell basics Lipovača: chpts 1-3
9/9/2015 Course overview
    Review of basic programming language concepts:
  • Translators
  • Memory space
  • Variables and types
  • Symbol table
  • Syntax, semantics
  • Target machine, ISA
Scott chpt 1 Scott page 36, #1.1, 1.2, 1.3, 1.4






2. Projects
Project spec Distributed Due Solution
Haskell 1
operators, elementary functions, list comprehension
9/16/2015 9/23/2015 Solution
Haskell 2
list comprehension, pattern matching, functions, recursion
9/23/2015 9/30/2015 Solution
Haskell 3 10/14/2015 10/26/2015
Erlang 1 11/24/2015 11/30/2015
Erlang 2 11/23/2015 12/2/2015
Erlang 3
elementary message passing
12/7/2015 12/14/2015





3. Quizzes and Tests


4. Resources


Last changed: