CENG242 PROGRAMMING LANGUAGE CONCEPTS

Course Code:5710242
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. İSMAİL HAKKI TOROSLU
Offered Semester:Spring Semesters.

Course Objectives

To introduce the basic concepts and features of programming languages and different programming paradigms.


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 compatibility 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

At the end of this course, students will be able to:

1.       Understand the concepts of programing languages, and understand the different programming language paradigms.

2.    Differentiate various programming language paradigms.

3.    Understand and apply a language from a suitable programming language paradigm for a given problem.

4.    Understand the executions of programs from different programming language paradigms, and predicting the quality of programs implemented by using different paradigms.

5.    Check the syntax and semantical correctness of a program written in different programming languages.

6.    Remember and use various programming language concepts.

7.    Critique different programming languages for the same computational problem.

8.    Interpret a computational problem specification and implement a solution in a programming language to solve that problem

9.    Construct new data types, abstractions, encapsulations in various languages.

10.   Modify an existing program to solve a similar but different problem.

11.   Design a modular solution to a problem by decomposing it into smaller sub-problems.


Program Outcomes Matrix

Contribution
#Program OutcomesNoYes
1An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
2An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors
3An ability to communicate effectively with a range of audiences
4An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts
5An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives
6An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions
7An ability to acquire and apply new knowledge as needed, using appropriate learning strategies