Course Detail
Course Description
Course | Code | Semester | T+P (Hour) | Credit | ECTS |
---|---|---|---|---|---|
PRINCIPLES of PROGRAMMING LANGUAGES | - | Fall Semester | 3+0 | 3 | 6 |
Course Program |
Prerequisites Courses | |
Recommended Elective Courses |
Language of Course | English |
Course Level | First Cycle (Bachelor's Degree) |
Course Type | Required |
Course Coordinator | Prof.Dr. Selim AKYOKUŞ |
Name of Lecturer(s) | Prof.Dr. Selim AKYOKUŞ |
Assistant(s) | |
Aim | The objective of this course is to study the properties of programming languages in general, learn syntax and semantics of programming languages, learn basic constructs that are common to all languages, examine some of these constructs and concepts for specific languages, introduce the main paradigms of computation, languages representative of these paradigms, techniques of implementing various programming language constructs, as well as basic concepts relating to the specification of programming languages. |
Course Content | This course contains; Introduction,Evolution of Major Programming Languages,Describing Syntax and Semantics,Lexical and Syntax Analysis,Names, Bindings, Type Checking, and Scopes,Data Types,Expressions and Assignment Statements,Exam Week,İfade-Seviyesi Kontrol Yapıları ve Altprogramlar ,Implementing Subprograms, Abstract Data Types and Encapsulation Constructs,Support for Object-Oriented Programming,Concurrency,Exception and Event Handling,Functional and Logic Programming Languages. |
Dersin Öğrenme Kazanımları | Teaching Methods | Assessment Methods |
Understand syntax, semantic, lexical and syntax analysis | ||
Understand and Discuss about evolution of programming languages and the role of procedural, object-oriented, functional, declarative, scripting languages. | ||
Describe in detail the design issues for the primary constructs of the imperative languages | ||
Understand and Describe control statements, discuss subprograms and their implementations, describe the principles and constructs of object-oriented languages. | ||
Have the ability to learn and choose new languages for an area of application easily. | ||
Have ideas about features that should be included in the design of a new language. |
Teaching Methods: | |
Assessment Methods: |
Course Outline
Order | Subjects | Preliminary Work |
---|---|---|
1 | Introduction | Slides and Sebesta Chap. 1 |
2 | Evolution of Major Programming Languages | Slides and Sebesta Chap. 2 |
3 | Describing Syntax and Semantics | Slides and Sebesta Chap. 3 |
4 | Lexical and Syntax Analysis | Slides and Sebesta Chap. 4 |
5 | Names, Bindings, Type Checking, and Scopes | Slides and Sebesta Chap. 5 |
6 | Data Types | Slides and Sebesta Chap. 6 |
7 | Expressions and Assignment Statements | Slides and Sebesta Chap. 7 |
8 | Exam Week | All Slides and Chapters till Week 8 |
9 | İfade-Seviyesi Kontrol Yapıları ve Altprogramlar | Slides and Sebesta Chap. 8, 9 |
10 | Implementing Subprograms, Abstract Data Types and Encapsulation Constructs | Slides and Sebesta Chap. 10,11 |
11 | Support for Object-Oriented Programming | Slides and Sebesta Chap. 12 |
12 | Concurrency | Slides and Sebesta Chap. 13 |
13 | Exception and Event Handling | Slides and Sebesta Chap. 14 |
14 | Functional and Logic Programming Languages | Slides and Sebesta Chap. 15,16 |
Resources |
- Sebesta, Robert W. Concepts of Programming Languages, 11th ed, Addison-Wesley, 2017. |
- Michael Scott. Programming Language Prgramatics, 4th edition, Morgan Kaufmann, San Francisco, California, 2015. - R. Toal, R. Rivera, A. Schneider, and E. Choe, Programming Language Explorations, CRC Press, 2017. - Pratt, T.W. & M.V.Zelkowitz. Programming Languages, Design and Implementation. Prentice Hall, 4th ed., 2001. |
Course Contribution to Program Qualifications
Course Contribution to Program Qualifications | |||||||
No | Program Qualification | Contribution Level | |||||
1 | 2 | 3 | 4 | 5 | |||
1 | 1. An ability to apply knowledge of mathematics, science, and engineering | ||||||
2 | 2. An ability to identify, formulate, and solve engineering problems | X | |||||
3 | 3. An ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability | X | |||||
4 | 4. An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice | X | |||||
5 | 5. An ability to design and conduct experiments, as well as to analyze and interpret data | ||||||
6 | 6. An ability to function on multidisciplinary teams | ||||||
7 | 7. An ability to communicate effectively | ||||||
8 | 8. A recognition of the need for, and an ability to engage in life-long learning | ||||||
9 | 9. An understanding of professional and ethical responsibility | ||||||
10 | 10. A knowledge of contemporary issues | ||||||
11 | 11. The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context |
Assessment Methods
Contribution Level | Absolute Evaluation | |
Rate of Midterm Exam to Success | 30 | |
Rate of Final Exam to Success | 70 | |
Total | 100 |
ECTS / Workload Table | ||||||
Activities | Number of | Duration(Hour) | Total Workload(Hour) | |||
Course Hours | 3 | 14 | 42 | |||
Guided Problem Solving | 0 | 0 | 0 | |||
Resolution of Homework Problems and Submission as a Report | 6 | 8 | 48 | |||
Term Project | 0 | 0 | 0 | |||
Presentation of Project / Seminar | 3 | 8 | 24 | |||
Quiz | 1 | 15 | 15 | |||
Midterm Exam | 1 | 25 | 25 | |||
General Exam | 1 | 30 | 30 | |||
Performance Task, Maintenance Plan | 0 | 0 | 0 | |||
Total Workload(Hour) | 184 | |||||
Dersin AKTS Kredisi = Toplam İş Yükü (Saat)/30*=(184/30) | 6 | |||||
ECTS of the course: 30 hours of work is counted as 1 ECTS credit. |
Detail Informations of the Course
Course Description
Course | Code | Semester | T+P (Hour) | Credit | ECTS |
---|---|---|---|---|---|
PRINCIPLES of PROGRAMMING LANGUAGES | - | Fall Semester | 3+0 | 3 | 6 |
Course Program |
Prerequisites Courses | |
Recommended Elective Courses |
Language of Course | English |
Course Level | First Cycle (Bachelor's Degree) |
Course Type | Required |
Course Coordinator | Prof.Dr. Selim AKYOKUŞ |
Name of Lecturer(s) | Prof.Dr. Selim AKYOKUŞ |
Assistant(s) | |
Aim | The objective of this course is to study the properties of programming languages in general, learn syntax and semantics of programming languages, learn basic constructs that are common to all languages, examine some of these constructs and concepts for specific languages, introduce the main paradigms of computation, languages representative of these paradigms, techniques of implementing various programming language constructs, as well as basic concepts relating to the specification of programming languages. |
Course Content | This course contains; Introduction,Evolution of Major Programming Languages,Describing Syntax and Semantics,Lexical and Syntax Analysis,Names, Bindings, Type Checking, and Scopes,Data Types,Expressions and Assignment Statements,Exam Week,İfade-Seviyesi Kontrol Yapıları ve Altprogramlar ,Implementing Subprograms, Abstract Data Types and Encapsulation Constructs,Support for Object-Oriented Programming,Concurrency,Exception and Event Handling,Functional and Logic Programming Languages. |
Dersin Öğrenme Kazanımları | Teaching Methods | Assessment Methods |
Understand syntax, semantic, lexical and syntax analysis | ||
Understand and Discuss about evolution of programming languages and the role of procedural, object-oriented, functional, declarative, scripting languages. | ||
Describe in detail the design issues for the primary constructs of the imperative languages | ||
Understand and Describe control statements, discuss subprograms and their implementations, describe the principles and constructs of object-oriented languages. | ||
Have the ability to learn and choose new languages for an area of application easily. | ||
Have ideas about features that should be included in the design of a new language. |
Teaching Methods: | |
Assessment Methods: |
Course Outline
Order | Subjects | Preliminary Work |
---|---|---|
1 | Introduction | Slides and Sebesta Chap. 1 |
2 | Evolution of Major Programming Languages | Slides and Sebesta Chap. 2 |
3 | Describing Syntax and Semantics | Slides and Sebesta Chap. 3 |
4 | Lexical and Syntax Analysis | Slides and Sebesta Chap. 4 |
5 | Names, Bindings, Type Checking, and Scopes | Slides and Sebesta Chap. 5 |
6 | Data Types | Slides and Sebesta Chap. 6 |
7 | Expressions and Assignment Statements | Slides and Sebesta Chap. 7 |
8 | Exam Week | All Slides and Chapters till Week 8 |
9 | İfade-Seviyesi Kontrol Yapıları ve Altprogramlar | Slides and Sebesta Chap. 8, 9 |
10 | Implementing Subprograms, Abstract Data Types and Encapsulation Constructs | Slides and Sebesta Chap. 10,11 |
11 | Support for Object-Oriented Programming | Slides and Sebesta Chap. 12 |
12 | Concurrency | Slides and Sebesta Chap. 13 |
13 | Exception and Event Handling | Slides and Sebesta Chap. 14 |
14 | Functional and Logic Programming Languages | Slides and Sebesta Chap. 15,16 |
Resources |
- Sebesta, Robert W. Concepts of Programming Languages, 11th ed, Addison-Wesley, 2017. |
- Michael Scott. Programming Language Prgramatics, 4th edition, Morgan Kaufmann, San Francisco, California, 2015. - R. Toal, R. Rivera, A. Schneider, and E. Choe, Programming Language Explorations, CRC Press, 2017. - Pratt, T.W. & M.V.Zelkowitz. Programming Languages, Design and Implementation. Prentice Hall, 4th ed., 2001. |
Course Contribution to Program Qualifications
Course Contribution to Program Qualifications | |||||||
No | Program Qualification | Contribution Level | |||||
1 | 2 | 3 | 4 | 5 | |||
1 | 1. An ability to apply knowledge of mathematics, science, and engineering | ||||||
2 | 2. An ability to identify, formulate, and solve engineering problems | X | |||||
3 | 3. An ability to design a system, component, or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability | X | |||||
4 | 4. An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice | X | |||||
5 | 5. An ability to design and conduct experiments, as well as to analyze and interpret data | ||||||
6 | 6. An ability to function on multidisciplinary teams | ||||||
7 | 7. An ability to communicate effectively | ||||||
8 | 8. A recognition of the need for, and an ability to engage in life-long learning | ||||||
9 | 9. An understanding of professional and ethical responsibility | ||||||
10 | 10. A knowledge of contemporary issues | ||||||
11 | 11. The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental, and societal context |
Assessment Methods
Contribution Level | Absolute Evaluation | |
Rate of Midterm Exam to Success | 30 | |
Rate of Final Exam to Success | 70 | |
Total | 100 |