CS A331 - Programming Languages

Class: Mon/Wed 4:00-5:15PM, ENGR218

Engineering Building, 2nd Floor, Office 227C
Phone: 907-786-6756
Cell: 303-641-3999
E-mail: ssiewert@uaa.alaska.edu

Office Hours:
Mon & Wed @ 1:00-3:30PM
Tues @ 1:00-5:00PM
Or by Appointment (e-mail ssiewert@uaa.alaska.edu)
Please note that all course materials should be consulted on Blackboard at http://uaa.alaska.edu/classes
If for some reason you can't access BB, this page is provided as a backup.


Course Description: The course includes study of the theoretical foundations to design and implement modern programming languages, including syntax, type systems, semantics, and memory structures. Comparison of several programming languages in different paradigms such as procedural, functional, logic, and scripting languages. Programming assignments will be given in each language studied.

Important Course Links
  1. REQUIRED TEXT: Michael L. Scott, "Programming Language Pragmatics, 3rd Ed.", Morgan Kaufman, 2009., Companion Materials, Author Website
Link to Example Code for CS A331
Labs
Docs
Grading Policies
Dr. Kenrick Mock's materials.

Syllabus (See Blackboard for Definitive Copy)
Week-1 [1/13, 15]:

    Read: PLP (Programming Language Pragmatics), Chapter 1
    Read: Big Data in the Cloud

    Lecture: What Defines a Programming Language and Why So Many, Lecture-1

    Start Lab #1 

    NO CLASS on 1/15 - Dr. Siewert at AIAA SciTech


Week-2 [1/20 - no class, 22]: 

    NO CLASS on 1/20 - Holiday, Campus Closed

    Read: PLP (Programming Language Pragmatics), Chapter 2

    Lecture: Programming Language Syntax Lecture-2


Week-3 [1/27, 29]:

    Read: PLP (Programming Language Pragmatics), Chapter 3

    Mon: Finish Lecture: Programming Language Syntax Lecture-2

    Start Lab #2

    Wed: Lecture: Names, Scope and Binding Lecture-3


Week-4 [2/3, 5]:


    Read: PLP (Programming Language Pragmatics), Chapter 4 & 5

    Lecture: Semantic Analysis and Code Generation Lecture-4


Week-5 [2/10, 12]:

    2/10: BLACBOARD QUIZ - No Class, Please Log on and Complete QUIZ (Chapters 1-5, Part-1 on Foundations) During class time

    2/13: Discuss Quiz and Lab #3

    Start Lab #3

Week-6 [2/17, 19]:

    Read: PLP (Programming Language Pragmatics), Chapter 6

    Lecture: Core Language - Control Flow Lecture-6

Week-7 [2/24, 26]:

    Read: PLP (Programming Language Pragmatics), Chapter 7

    Lecture: Core Language - Data Types Lecture-7

Week-8 [3/3, 5]:

    EXAM-1: Chapters 1 to 7


SPRING BREAK - 3/10 to 3/14


Week-9 [3/17, 19]:

    EXAM-1: Solutions and Results

    Read: PLP (Programming Language Pragmatics), Chapter 8

    Lecture: Core Language - Subroutines, Calling Conventions Lecture-9-A
    Lecture: Core Language - Subroutines, Nesting and More Lecture-9-B
    Start Lab #4


Week-10 [3/24, 26]:

    Read: PLP (Programming Language Pragmatics), Chapter 9
    Lecture: OO Programming (Review of C++ and Java Goals) Lecture-10-A
    
    Read: PLP (Programming Language Pragmatics), Chapter 10
    Lecture: Functional Programming with LISP Lecture-10-B
    

Week-11 [3/31, 4/2]:

    Read: PLP (Programming Language Pragmatics), Chapter 11
    Lecture: Logic Programming with PROLOG and Other Alternate PLs (e.g. Halide)Lecture-11

    Start Lab #5

Week-12 [4/7, 9]:


    Read: PLP (Programming Language Pragmatics), Chapter 12
    Lecture: Concurrency Programming with Library vs. Built-in Concurrency Lecture-12
    

 
Week-13 [4/14, 16]:


    QUIZ - 4/14 on Blackboard to Warm-up for Exam #2
    4/16 - REVIEW for EXAM #2 


Week-14 [4/21, 23]:

    EXAM-2: Chapters 8, 10, 11, 12, 13
    Start Lab #6

Week-15 [4/28, 30]:

    EXTRA CREDIT PRESENTATIONS on ALTERNATIVE PLs on 4/28 4:00-5:15pm
    EXTRA CREDIT PRESENTATIONS on ALTERNATIVE PLs on 4/30 4:00-5:15pm
    FINAL QUIZ - 4/30 5:30-6:45 pm (or Blackboard before Midnight)