Türkçe | English
FACULTY of ENGINEERING / DEPARTMENT of COMPUTER ENGINEERING
(30%) English
Course Catalog
https://www.ktu.edu.tr/bilgisayar
Phone: +90 0462 377 2080
MF
FACULTY of ENGINEERING / DEPARTMENT of COMPUTER ENGINEERING / (30%) English
Katalog Ana Sayfa
  Katalog Ana Sayfa  KTÜ Ana Sayfa   Katalog Ana Sayfa
 
 

COM2002Programming Languages3+0+0ECTS:5
Year / SemesterSpring Semester
Level of CourseFirst Cycle
Status Compulsory
DepartmentDEPARTMENT of COMPUTER ENGINEERING
Prerequisites and co-requisitesNone
Mode of DeliveryFace to face, Practical
Contact Hours14 weeks - 3 hours of lectures per week
LecturerDoç. Dr. Hüseyin PEHLİVAN
Co-LecturerASSIST. PROF. DR. Hüseyin PEHLİVAN,
Language of instruction
Professional practise ( internship ) None
 
The aim of the course:
The course aims to present the basic principles of modern programming languages through source code written in a variety of languages such as C, Java and Haskell, examining the execution models of major programming paradigms (imperative, object-oriented, functional and logical) , the language structures at different layers (lexical, syntactic, contextual and semantic) and other important programming language issues (types, polymorphism, overloading, scopes, activation records and parameter passing) .
 
Learning OutcomesCTPOTOA
Upon successful completion of the course, the students will be able to :
LO - 1 : use the formal techniques to define programming language syntax and semantics.2,3,41,3
LO - 2 : quickly begin to write programs in new languages given basic outlines of syntax and semantics.2,3,41,3
LO - 3 : analyse and evaluate new programming languages.2,3,41
LO - 4 : apply the functional programming style and write Haskell programs requiring multiple functions.2,3,41,3
LO - 5 : distinguish the differences between statically and dynamically typed languages.2,3,41
LO - 6 : apply the imperative and object-oriented features such as polymorphism, typing, overloading, early versus late binding.2,3,41,3
CTPO : Contribution to programme outcomes, TOA :Type of assessment (1: written exam, 2: Oral exam, 3: Homework assignment, 4: Laboratory exercise/exam, 5: Seminar / presentation, 6: Term paper), LO : Learning Outcome

 
Contents of the Course
Language paradigms: Imperative, object-oriented, functional and logic programming. Program syntax: Backus Naur form, grammars, lexical and phrase structures, other grammar forms. Syntax and semantics: Operators, precedence, associativity, other ambiguities, parse trees. Language systems: Classical sequence, interpreters, virtual machines, delayed linking, profiling, dynamic compilation, binding times. A first look at Haskell: Hugs system, types, classes. Types: Primitive and constructed types, enumerations, arrays, unions, subtypes, uses for types. A second look at Haskell: Defining functions, list comprehensions. Polymorphism: Overloading, parameter coercion, parametric and subtype polymorphism. A third look at Haskell: High-order functions, functional parsers. Scope: Definitions, scoping with blocks, scoping with labeled namespace, scoping with primitive namespace, dynamic scoping. A fourth look at Haskell: Interactive programs, declaring types and classes. Memory locations for variables: activation-specific variables, activation records, static allocation, dynamic stacks, handling nested functions, functions as parameters, long-lived functions. Memory management: A memory model, stacks, heaps, fragmentation, current heap links. Object-orientation: Classes, prototypes, inheritance, encapsulation, polymorphism. Parameters: Correspondence, parameter-passing methods. Cost models: a cost model for lists, a cost model for function calls, a cost model for arrays.
 
Course Syllabus
 WeekSubjectRelated Notes / Files
 Week 1Language paradigms Determination of multidisciplinary project teams and subjects
 Week 2Program syntax
 Week 3Syntax and Semantics
 Week 4Language Systems
 Week 5A First Look at Haskell
 Week 6Types
 Week 7A Second Look at Haskell
 Week 8Polymorphism and Scope
 Week 9Mid-term exam
 Week 10A Third Look at Haskell
 Week 11Memory Locations for Variables
 Week 12A Fourth Look at Haskell
 Week 13Memory management and Object-orientation
 Week 14Parameters Proje sunumları
 Week 15Cost Models
 Week 16End-of-term exam
 
Textbook / Material
1Webber, A. B., 2011, Modern Programming Languages: A Practical Introduction, Franklin Beedle & Associates, 572 p.
 
Recommended Reading
1Sebesta, R. W., 2019, Concepts of Programming Languages, Pearson, 784 p.
2Hutton, G., 2016, Programming in Haskell, 2nd ed., Cambridge University Press, 272 p.
 
Method of Assessment
Type of assessmentWeek NoDate

Duration (hours)Weight (%)
Mid-term exam 9 2 50
End-of-term exam 16 2 50
 
Student Work Load and its Distribution
Type of workDuration (hours pw)

No of weeks / Number of activity

Hours in total per term
Yüz yüze eğitim 3 14 42
Sınıf dışı çalışma 3 14 42
Arasınav için hazırlık 10 1 10
Arasınav 2 1 2
Uygulama 1 14 14
Proje 1 12 12
Dönem sonu sınavı için hazırlık 15 1 15
Dönem sonu sınavı 2 1 2
Total work load139