BÄ°L603 - PROGRAMMING LANGUAGE THEORY

Course Name Code Semester Theory
(hours/week)
Application
(hours/week)
Credit ECTS
PROGRAMMING LANGUAGE THEORY BÄ°L603 Any Semester/Year 3 0 3 8
Prequisites
Course languageTurkish
Course typeElective 
Mode of DeliveryFace-to-Face 
Learning and teaching strategiesLecture
Preparing and/or Presenting Reports
Problem Solving
Project Design/Management
 
Instructor (s)Department Responsible (bbm-bologna@cs.hacettepe.edu.tr) 
Course objectiveStudents learn programming language syntax ans semantics.  
Learning outcomes
  1. Exploring and understanding of main methods for describing programming language syntax and semantics with particular emphasis on abstract systax, axiomatic semantics and denotational semantics.
Course Content? Conceptual study of programming language syntax, semantics and implementation,
? Lamda calculus and functional languages,
? fundamentals and language features of denotational semantics,
? mathematics of recursion,
? first order logic and declerative languages,
? axiomatic semantics and consistency of semantic definitions. 
References? Bertrand Meyer, Introduction to the Theory of Programming Languages, Prentice Hall, 1990.
? Comparative Programmin Languages, Leslie B. Wilson ve Robert G. Clark, Addison-Wesley, 2001.
? Concepts in Programming Languages, John C. Mitchell, Cambridge University Press, 2002.
? Programming Languages: Principle and Practice Second Edition, Kennith C. Louden, PWS Publishing Company, 2004.
? Foundations for Programming Languages, John C. Mitchell, The MIT Press, 1996. 

Course outline weekly

WeeksTopics
Week 1Language Design Principles
Week 2Syntax
Week 3Syntax
Week 4Basic Semantics
Week 5Data Types
Week 6Expressions and Statements
Week 7Procedures and Environments
Week 8Midterm
Week 9Abstract Data Types and Modules
Week 10Object-Oriented Programming
Week 11Functional Programming
Week 12Formal Semantics
Week 13Formal Semantics
Week 14Parallel Programming
Week 15Final Exam Preparation
Week 16Final Exam

Assesment methods

Course activitiesNumberPercentage
Attendance00
Laboratory00
Application00
Field activities00
Specific practical training00
Assignments315
Presentation00
Project00
Seminar00
Midterms135
Final exam150
Total100
Percentage of semester activities contributing grade succes450
Percentage of final exam contributing grade succes150
Total100

WORKLOAD AND ECTS CALCULATION

Activities Number Duration (hour) Total Work Load
Course Duration (x14) 14 3 42
Laboratory 0 0 0
Application000
Specific practical training000
Field activities000
Study Hours Out of Class (Preliminary work, reinforcement, ect)14570
Presentation / Seminar Preparation000
Project000
Homework assignment32060
Midterms (Study duration)12020
Final Exam (Study duration) 12525
Total Workload3373217

Matrix Of The Course Learning Outcomes Versus Program Outcomes

D.9. Key Learning OutcomesContrubition level*
12345
1. Graduates should have a mastery of computer science as described by the core of the Body of Knowledge.    X
2. Graduates need understanding of a number of recurring themes, such as abstraction, complexity, and evolutionary change, and a set of general principles, such as sharing a common resource, security, and concurrency.     X
3. Graduates of a computer science program need to understand how theory and practice influence each other.    X
4. Graduates need to think at multiple levels of detail and abstraction.    X 
5. Students will be able to think critically, creatively and identify problems in their research.   X 
6. Graduates should have been involved in at least one substantial project.   X  
7. Graduates should realize that the computing field advances at a rapid pace.   X  
8. Graduates should conduct research in an ethical and responsible manner.   X  
9. Graduates should have good command of technical terms in both Turkish and English.   X 
10. Graduates should understand the full range of opportunities available in computing.    X
11. Graduates should understand that computing interacts with many different domains.     X
12. Graduates should develop the knowledge acquired at master level and be able to apply scientific methods in order to solve scientific problems. Graduates should be able to identify and conduct independent original research.  X  
13. Graduates should develop the knowledge acquired at master level and apply scientific methods in order to solve scientific problems. X    

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest