CSCE 4430: Programming Languages - Fall 2018

Instructor: Paul Tarau, Professor - see my home page for contact info and office hours.


Pravallika Gangumalla and Sandeep Neupane, you can contact them via Canvas

Please complete the following:

Exit surveys for ABET SPOT course evaluation

course directory

Final exam: Saturday, Dec. 8, 8:00am-10:00am cumulative, open net

Midterm exam: Oct 10, 10:30-11:10, open net

Description and Objectives:

A comprehensive programming language course, with emphasis on programming paradigms and language processors - and some of their formal models like Predicate Logic  and Lambda Calculus. Hands-on work with implementations of key concepts (recursion, inheritance, unification, backtracking, type inference, infinite and  lazy data objects, threads. The course also provides a glimpse at salient features of  modern object oriented languages and an overview of language implementation techniques, run-time systems and memory management in an efficient procedural language.



Functional Programming (with Python and Haskell)

Logic Programming (with Prolog)

Object Oriented Programming (with Python and Java)

Low Level Imperative Programming (C)

Concurrent Programming

Future Trends in Programming Language Design

Prerequisites: Data Structures, Algorithms, Solid Coding Experience

Recommended books and online materials:


Software, tutorials and related links:

  1. Understand foundational concepts of programming languages, with emphasis on programming paradigms and language processors.                     
  2. Have a practical understanding of commonalities and differences between major programming paradigms.   
  3. Understand key object oriented, logic and functional programming concepts.
  4. Understand key concepts of event driven and concurrent programming.
  5. Understand the use and implementation of modern programming language concepts like recursion, inheritance, reflection, unification, backtracking, type inference, infinite data objects and threads.