|
Week
|
Topics
|
Study Metarials
|
|
1
|
Introduction: Programming languages paradigms and history of programming languages.
|
R1-Chapter-1
|
|
2
|
Evaluation of the Major Programming Languages. Language Definition: Syntactical and semantical definitions in programming languages. Grammars, BNF, EBNF, Semantics definition methods
|
R1-Chapter-3, R2-Chapter-2
|
|
3
|
Language Definition: Syntactical and semantical definitions in programming languages. Grammars, BNF, EBNF, Semantics definition methods
|
R1-Chapter-3, R2-Chapter-2
|
|
4
|
Language Translation: Translation process of programming languages into machine code, interpreters and compilers
|
R1-Chapter-4
|
|
5
|
Basic Programming Constructs: Variables and their properties, processors and their properties, processor loading.
|
R1-Chapter-4
|
|
6
|
Binding: Dynamic and static binding. Type, memory and scope binding.
|
R2-Chapter-4
|
|
7
|
Data Types: Data type concept. Basic and structural data types-I
|
R1-Chapter-6, R2-Chapter-6
|
|
8
|
Data Types: Data type concept. Basic and structural data types-II
|
R1-Chapter-6, R2-Chapter-6
|
|
9
|
Type checking, strong typing, type conversions, type compatibility.
|
R1-Chapter-6, R2-Chapter-7
|
|
10
|
Structured Programming: Assignment statements, conditional statements, iterative statements.
|
R1-Chapter-8, R2-Chapter-8
|
|
11
|
Subprograms, procedures and functions, parameter passing, activation records and recursive subprograms.
|
R1-Chapter-9, R2-Chapter-11
|
|
12
|
Object Oriented Programming: Object Oriented Programming concepts, abstraction, encapsulation, inheritance, polymorphism, dynamic binding. Concurrency.
|
R1-Chapter-12, R2-Chapter-10
|
|
13
|
Exception Handling: Creating and handling exceptions in various languages.
|
R1-Chapter-14
|
|
14
|
Functional Programming: Basic concepts of functional programming, Lisp and Scheme. Logic Programming and Prolog
|
R1-Chapter-15
|
|
Prerequisites
|
-
|
|
Language of Instruction
|
Turkish
|
|
Responsible
|
Asst. Prof. Dr. Selim BUYRUKOĞLU
|
|
Instructors
|
-
|
|
Assistants
|
-
|
|
Resources
|
R1.Sebesta, R. W. (2012). Concepts of Programming Languages (10th. ed.). Pearson, Londra.
R2.Appleby, D. (1991). Programming languages: paradigm and practice. McGraw-Hill, Inc., USA.
|
|
Supplementary Book
|
-
|
|
Goals
|
to teach the basic concepts of the programming languages and building a general perspective of the programming languages by inspecting various implementations of these concepts on different languages.
|
|
Content
|
Introduction: Programming languages paradigms and history of programming languages, Evaluation of the Major Programming Languages. Language Definition: Syntactical and semantical definitions in programming languages. Grammars, BNF, EBNF, Semantics definition methods, Language Translation: Translation process of programming languages into machine code, interpreters and compilers, Basic Programming Constructs: Variables and their properties, processors and their properties, processor loading, Binding: Dynamic and static binding. Type, memory and scope binding, Data Types: Data type concept. Basic and structural data types, Type checking, strong typing, type conversions, type compatibility, Structured Programming: Assignment statements, conditional statements, iterative statements, Subprograms, procedures and functions, parameter passing, activation records and recursive subprograms, Object Oriented Programming: Object Oriented Programming concepts, abstraction, encapsulation, inheritance, polymorphism, dynamic binding. Concurrency, Exception Handling: Creating and handling exceptions in various languages, Functional Programming: Basic concepts of functional programming, Lisp and Scheme. Logic Programming and Prolog
|
|
Program Learning Outcomes |
Level of Contribution |
|
1
|
To be able to apply mathematics, science and engineering theories and principles to Computer Engineering problems.
|
3
|
|
2
|
To have the ability to define, model, and solve problems related to Computer Engineering.
|
-
|
|
3
|
To be able to design and conduct experiments, as well as to analyze and interpret data.
|
-
|
|
4
|
To be able to design and analyze a process for a specific purpose within technical and economical limitations.
|
2
|
|
5
|
To be able to use modern techniques and calculation tools required for engineering applications.
|
-
|
|
6
|
To have the awareness of professional liabilities and ethics.
|
-
|
|
7
|
To be able to get involved in interdisciplined and multidisciplined team work.
|
-
|
|
8
|
To be able to declare his/her opinions orally or written in a clear, concise and brief manner.
|
3
|
|
9
|
To improve him/herself by following the developments in science, technology, modern issues, and know the importance of lifelong learning.
|
-
|
|
10
|
To be able to evaluate engineering solutions for the global and social problems especially for the health, safety, and environmental problems.
|
4
|
|
11
|
To have knowledge about of contemporary issues.
|
-
|