CNG242 PROGRAMMING LANGUAGE CONCEPTS

Course Code:3550242
METU Credit (Theoretical-Laboratory hours/week):4 (3.00 - 2.00)
ECTS Credit:7.0
Department:Computer Engineering
Language of Instruction:English
Level of Study:Undergraduate
Course Coordinator:Prof.Dr. ENVER EVER
Offered Semester:Spring Semesters.

Course Objectives

  • Introduce the basic concepts and features of programming languages and different programming paradigms by providing examples.

  • Introduce students to the use of various concepts and structures for programming.

  • Provide the skills and knowledge to select the best language to solve a particular problem with respect to program design and development.


Course Content

Evolution of programming languages. Overview of language translation, virtual machines, and run-time environments. Names, bindings and scopes. Values, expressions and types. Type CNGatibility and type checking. Storage, variables, and commands. Procedural abstraction. Generic units. Overview of functional programming paradigm. Overview of object-oriented programming paradigm: Encapsulation, classes and objects, inheritance, polymorphism, dynamic binding.


Course Learning Outcomes

Student, who passed the course satisfactorily, will:

  • Understand the concepts of programing languages, and understand the different programming language paradigms.
  • Differentiate various programming language paradigms.
  • Understand and apply a language from a suitable programming language paradigm for a given problem.
  • Understand the executions of programs from different programming language paradigms
  • Critique different programming languages for the same computational problem.
  • Understand and gain necessary skills related to storage, variables, commands, bindings, abstraction and encapsulation.
  • Have a good understanding and skills related to object oriented programming concepts in details.

Relationship of Course to Student Outcomes: Satisfies the following student outcomes (SOs) via the following Performance Indicators:

  • SO (k) – PI-k1.
    • Use a widely accepted high-level programming language, e.g. Java, C# and C++.
  • SO (k) – PI-k3.
    • Use a well-known machine-oriented programming language, e.g. C and assembly languages
  • SO (k) – PI-k4.
    • Use a programming language in non-imperative paradigm, e.g. functional and logic.