Home   Video/Audio Library     Course Archive   Papers Archive   Beyond the Box   CV   Service My Keeper Shelf   Cultural References in Class

Home page for Professor Haynes'

COSC 341/342 Programming Languages
WINTER 2015


Office hours Winter 2015

M 1 - 2 pm
T 1 - 2 pm
W 1 - 2pm, 3:30 - 4:30pm
T 1 - 2pm


Textbooks and Resources:




1. Lecture notes
Date Topic and Links Reading
4/14 Erlang concurrency - beginning: Do this: (1) extend dolphin, (2) extend ping pong
4/7 Erlang day 1
4/2 JVM bytecode, Java -> bytecode
Interpreter -- read-eval loop
JVM : bytecode-basics from javaworld
Wikipedia list of JVM byte code and description
Wikipedia example of Java code and resulting byte code
Java -> bytecode -> interpretation
3/31 BACKUP! Another look at recursion
Haskell code examples
3/26 Introduction to concurrency using examples from Java
list of Java code
Lipovaca: chapter 12 -- 12 (12.0), 12.1.1, 12.2.0, 12.2.1, 12.2.4
3/19 Recursion, currying
ch4.hs
ch5.hs
Lipovaca: chpt 4, 5
3/17 Parameter passing Scott: section 8.3
3/12 Haskell part 2: chapter 2 examples
chapter 3 examples
Lipovaca: Chapter 2 and 3
3/10 Binding Time
Lexical scope
Scott: Section 3.1, 3.2.2, 3.3.1, 3.3.2, 8.4
3/5 Test 1:
8-1/2 X 11 inch 'crib sheet' both sides. Otherwise closed book
3/3 Intro to Haskell (Haskell #1) Chapter 1 of Haskell book
2/18 See your email. You are directed to view videos on grammars, dangling else, ...
2/12 Pointers in C
2/5 Python #3. Code snippets located here
1/29 Review machine cycle, stack ops;
Object lifetime -- use of run time stack
Scott: 3.1, 3.2 -- especially 3.2.2
1/27 Scanner; Regular Expression grammar; RE -> NFA -> DFA; DFA -> pseudocode
  • DFA --> pseudo -- see Scott: 2.2
Scott: 2.1, 2.2, 2.3.1
1/15 Recursion -- the basics (See write-up on recursion )
BNF -- Expression grammar: deriving, parsing
1/8 Python 1 Download Python 3.4.2
Intro to shell
Python intro, strings, lists
Google's Python Class, lessons 1 - 3 (Intro, Strings, Lists)
Head first Java, chapters 1, 2
1/6/2015 Assembler: http://users.cis.fiu.edu/~downeyt/cop3402/two-pass.htm
and http://users.cis.fiu.edu/~downeyt/cop3402/listing.htm
Basic compiler:
Basic interpreter:





2. Assignments
Date assigned Date Due Assignment
1/27 N/A Scott pp50-51 "Check your understanding"
Scott p60 "Check your understanding"
Scott pp102-105: 2.1(a, b), 2.2(a, b), 2.10, 2.12(a, b), 2.13(a, b).
1/15/2015 N/A HW0115.pdf




3. Projects
Date Assigned Date Due Project Comments/Notes
4/9 4/14 4/20 before 5pm. Erlang mini project 1
3/31 4/8 4/9 Haskell mini project 4
3/24 3/31 4/8 4/9 Haskell mini project 3 Bad example for gather is fixed
3/12 3/19 Haskell mini project 2
3/3 3/12 Haskell mini project
1/22 2/5/2015 2/12/2015 Python project: Build a symbol table
  • Anything that is not spec'ed is left to your judgement (e.g., output file versus console for symbol table)
  • Be sure to display the final symbol table from each programs
1/8/2015 1/15/2015 1/20/2015 Python mini: count elements Here is the recursive function developed in Head First Java
for a very heavy hint to code the Python mini project





4. Quizzes and Tests



5. General (Syllabus, Calendar, etc.)




6. Resources


Last changed: