Skip to main content

Course Detail

Course Description

CourseCodeSemesterT+P (Hour)CreditECTS
PRINCIPLES of PROGRAMMING LANGUAGES-Fall Semester3+036
Course Program
Prerequisites Courses
Recommended Elective Courses
Language of CourseEnglish
Course LevelFirst Cycle (Bachelor's Degree)
Course TypeRequired
Course CoordinatorProf.Dr. Selim AKYOKUŞ
Name of Lecturer(s)Prof.Dr. Selim AKYOKUŞ
Assistant(s)
AimThe 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 ContentThis 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 MethodsAssessment 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

OrderSubjectsPreliminary Work
1IntroductionSlides and Sebesta Chap. 1
2Evolution of Major Programming LanguagesSlides and Sebesta Chap. 2
3Describing Syntax and SemanticsSlides and Sebesta Chap. 3
4Lexical and Syntax AnalysisSlides and Sebesta Chap. 4
5Names, Bindings, Type Checking, and ScopesSlides and Sebesta Chap. 5
6Data TypesSlides and Sebesta Chap. 6
7Expressions and Assignment StatementsSlides and Sebesta Chap. 7
8Exam WeekAll Slides and Chapters till Week 8
9İfade-Seviyesi Kontrol Yapıları ve Altprogramlar Slides and Sebesta Chap. 8, 9
10Implementing Subprograms, Abstract Data Types and Encapsulation ConstructsSlides and Sebesta Chap. 10,11
11Support for Object-Oriented ProgrammingSlides and Sebesta Chap. 12
12ConcurrencySlides and Sebesta Chap. 13
13Exception and Event HandlingSlides and Sebesta Chap. 14
14Functional and Logic Programming LanguagesSlides 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
NoProgram QualificationContribution Level
12345
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 LevelAbsolute Evaluation
Rate of Midterm Exam to Success 30
Rate of Final Exam to Success 70
Total 100
ECTS / Workload Table
ActivitiesNumber ofDuration(Hour)Total Workload(Hour)
Course Hours31442
Guided Problem Solving000
Resolution of Homework Problems and Submission as a Report6848
Term Project000
Presentation of Project / Seminar3824
Quiz11515
Midterm Exam12525
General Exam13030
Performance Task, Maintenance Plan000
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

CourseCodeSemesterT+P (Hour)CreditECTS
PRINCIPLES of PROGRAMMING LANGUAGES-Fall Semester3+036
Course Program
Prerequisites Courses
Recommended Elective Courses
Language of CourseEnglish
Course LevelFirst Cycle (Bachelor's Degree)
Course TypeRequired
Course CoordinatorProf.Dr. Selim AKYOKUŞ
Name of Lecturer(s)Prof.Dr. Selim AKYOKUŞ
Assistant(s)
AimThe 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 ContentThis 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 MethodsAssessment 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

OrderSubjectsPreliminary Work
1IntroductionSlides and Sebesta Chap. 1
2Evolution of Major Programming LanguagesSlides and Sebesta Chap. 2
3Describing Syntax and SemanticsSlides and Sebesta Chap. 3
4Lexical and Syntax AnalysisSlides and Sebesta Chap. 4
5Names, Bindings, Type Checking, and ScopesSlides and Sebesta Chap. 5
6Data TypesSlides and Sebesta Chap. 6
7Expressions and Assignment StatementsSlides and Sebesta Chap. 7
8Exam WeekAll Slides and Chapters till Week 8
9İfade-Seviyesi Kontrol Yapıları ve Altprogramlar Slides and Sebesta Chap. 8, 9
10Implementing Subprograms, Abstract Data Types and Encapsulation ConstructsSlides and Sebesta Chap. 10,11
11Support for Object-Oriented ProgrammingSlides and Sebesta Chap. 12
12ConcurrencySlides and Sebesta Chap. 13
13Exception and Event HandlingSlides and Sebesta Chap. 14
14Functional and Logic Programming LanguagesSlides 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
NoProgram QualificationContribution Level
12345
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 LevelAbsolute Evaluation
Rate of Midterm Exam to Success 30
Rate of Final Exam to Success 70
Total 100

Numerical Data

Student Success

Ekleme Tarihi: 09/10/2023 - 10:50Son Güncelleme Tarihi: 09/10/2023 - 10:51