INTERNATIONAL BURCH UNIVERSITY
Faculty of Engineering and Natural Sciences
Department of Information Technologies
2017-2018

SYLLABUS
Code Name Level Year Semester
CEN 212 Programming Languages Undergraduate 2 Spring
Status Number of ECTS Credits Class Hours Per Week Total Hours Per Semester Language
Compulsory 5 2 + 2 136 English

Instructor Assistant Coordinator
Zerina Mašetić, Assist. Prof. Dr. Zerina Mašetić, Assist. Prof. Dr.
[email protected] no email

In this course, students will be taught about object-oriented, functional and logic programming languages, as well as hybrid programming language. Furthermore, they will learn about syntax and semantics of programming languages, lexical analysis, parsing and data types.

COURSE OBJECTIVE
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 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

COURSE CONTENT
Week
Topic
  1. Introduction and History of Programming Languages
  2. Object Oriented Programming and Functional Programming Languages (Java and Lisp)
  3. Other language paradigms(hybrid) (Python: object-oriented interpreted, scripting language)
  4. Other language paradigms(hybrid) (Python: object-oriented interpreted, scripting language)
  5. Python Regex
  6. Python Libraries: numpy, pandas
  7. Determining Syntax and Semantics: Compilers & Interpreters
  8. Midterm Exam
  9. Lexical Analysis (Regular Expressions, Finite State Automata)
  10. Lexical Analysis (Regular Expressions, Finite State Automata)
  11. Parsing (CFG, BNF, EBNF)
  12. Parsing (CFG, BNF, EBNF)
  13. Names, Bindings, Type Checking, and Scopes, Data Types
  14. Names, Bindings, Type Checking, and Scopes, Data Types
  15. Preparation for Final Exam

LABORATORY/PRACTICE PLAN
Week
Topic

    TEACHING/ASSESSMENT
    Description
      Description (%)
      Method Quantity Percentage (%)
      Quiz315
      Homework420
      Midterm Exam(s)125
      Final Exam140
      Total: 100
      Learning outcomes
      • Evaluate existing and future programming languages
      • Design a compiler
      • Comprehend the methods of describing the syntax and semantics of programming languages
      • Differentiate implementation techniques for various language constructs
      • Comprehend functional and logic programming.
      TEXTBOOK(S)
      • R. W. Sebesta, Concepts of Programming Languages, ANY Edition, Addison Wesley,

      ECTS (Allocated based on student) WORKLOAD
      Activities Quantity Duration (Hour) Total Work Load
      Lecture (14 weeks x Lecture hours per week)15230
      Laboratory / Practice (14 weeks x Laboratory/Practice hours per week)15230
      Midterm Examination (1 week)122
      Final Examination(1 week)122
      Preparation for Midterm Examination11010
      Preparation for Final Examination12020
      Assignment / Homework/ Project7642
      Seminar / Presentation 0
      Total Workload: 136
      ECTS Credit (Total workload/25): 5