×
Behnam Bojnordi Arbab

Course Outline - CMPE318

Course Overview:

This course explores the fundamental principles underlying programming languages, including their formal specification through syntax, analysis, and semantics. Students will examine the historical evolution of programming paradigms and key concepts such as naming, scope, data representation, and evaluation sequences at various levels. The course covers object-oriented programming with a focus on abstraction, inheritance, polymorphism, concurrency, and exception handling, along with an introduction to alternative paradigms such as functional, logical, and scripting languages. Weekly homework and lab assignments complement lectures, reinforcing theoretical concepts through hands-on practice.

Learning Objectives:

Upon successful completion of the course, students are expected to have the following competencies:

  1. Draw an annotated parse tree for a given input and attribute grammar
  2. Have knowledge of various programming languages, their features, history and category
  3. Use LR parsing tables for bottom up parsing of a given input
  4. Work effectively with context free grammars
  5. Draw a parse tree for a sentence in a language, given its grammar
  6. Derive a sentence in a language, given its grammar
  7. Demonstrate that a specific grammar is ambiguous
  8. Write a simple lexical analyzer
  9. Write a simple top-down parser
  10. Show the contents of the system stack after several function calls
  11. Differentiate between static and dynamic scope
  12. Trace output of programs with various parameter passing methods
  13. Be familiar with the implementation techniques of object-oriented constructs
  14. Write and trace simple programs in the Haskell Functional Programming Language

Extended outline:

Visit here for more details.