You are on page 1of 1

Course Code: CEN 332 Course Name: PROGRAMMING LANGUAGES

Level: Undergraduate Year: 3 Semester: 1 ECTS Credits: 5


Status: Elective Hours/Week: 2+2 Total Hours: 30+30
In this course, students will be taught about object-oriented, functional and logic programming languages, as well as hybrid
Course Description programming language. Furthermore, they will learn about syntax and semantics of programming languages, lexical analysis,
parsing and data types.
The objectives of this course are to develop a basic understanding of programming concepts and using these programming
concepts in multiple programming languages. Furthermore, we will provide the students with the tools necessary for the critical
Course Objectives evaluation of existing and future programming languages and prepare them for the study of compiler design. Additionally, we
will teach formal methods of describing the syntax and semantics of programming languages
Lecture 1: Introduction to course; Evolution of Major Lecture 7: OOP in Python
Programming Languages Midterm exam
Lab 1: Functional, logic, scripting, OOP and markup Lecture 9: Compiler Design and Lexical Analysis
languages examples Lab 9: DFA examples
Lecture 2: Functional and Logic Programming Languages Lecture 10: Lexical Analysis and DFA
Lab 2: Function and Logic PL examples Lab 10: DFA examples
Lecture 3: Python Language Basics and Built-in Data Types; Lecture 11: NFA
Course Content NumPy library Lab 11: NFA examples
Lab 3: Python examples Lecture 12: Parsing (CFG, BNF, EBNF)
Lecture 4: Pandas library Lab 12: Parse tree and CFG examples
Lab 4: Pandas examples Lecture 13: Names, Bindings, Type Checking, and Scopes, Data
Lecture 5: Python Regex Types
Lab 5: Regex examples Lab 13: Data Types lab
Lecture 6: Concurrency in PLs (Python, Java) Preparation for Final Exam
Lab 6: Concurrency examples

Teaching Methods  Interactive lectures


Description  Tutorial

Quiz 20 % Lab/Practical Exam 0%


Homework 0% Term Paper 0%

Assessment Methods Project 10 % Attendance 0%


Description (%) Midterm Exam 30 % Class Deliverables 0%
Presentation 0% Final Exam 40 %
Total 100 %
After completion of this course, students should be able to:
1. Provide the students with the tools necessary for the critical evaluation of existing and future programming languages
2. Design a compiler
Learning Outcomes 3. Comprehend the methods of describing the syntax and semantics of programming languages
4. Differentiate implementation techniques for various language constructs
5. Comprehend functional and logic programming.

Prerequisite Course(s) -

Language of Instruction English

Mandatory Literature  R. W. Sebesta, Concepts of Programming Languages, ANY Edition, Addison Wesley,

Recommended Literature
ECTS (ALLOCATED BASED ON STUDENT’S WORKLOAD)
Activities Quantity Duration Workload
Lecture (15 weeks x Lecture hours per week) 15 2 30
Laboratory / Practice (15 weeks x Laboratory / Practice hours per week) 15 2 30
Midterm Examination (1 week) 1 2 2
Final Examination (1 week) 1 2 2
Preparation for Midterm Examination 1 15 15
Preparation for Final Examination 1 25 25
Assignment / Homework / Project 1 21 21
Seminar / Presentation 0 0
Total Workload 125
ECTS Credit (Total Workload / 25) 5

You might also like