BBM 301 - Programming Languages

Languages Arranged by Difficulty © xkcd



Instructor:   

Assoc. Prof. Nazli Ikizler-Cinbis (Sec 1)      

Prof. Pinar Duygulu Sahin (Sec 2)      

nazli-at-cs.hacettepe.edu.tr

pinar-at-cs.hacettepe.edu.tr



Course Description:

The subject matter of this third-year undergraduate course is the programming language pragmatics. The course is structured around basic concepts in design and implementation of programming languages, including syntax, semantics, names, bindings, type checking, subprograms, etc. The students will also be introduced to the tools for designing lexical and syntactical analyzers, in particular lex and yacc.

The main aim of the course is to help students to gain an analytical and comparative look at programming languages and their implementations.


Textbook:

Concepts of Programming Languages, Robert W. Sebesta, Pearson, Eleventh Edition.


Grading Policy:

Midterm Exam 1

30%

Midterm Exam 2

30%

Final Exam

40%


Important Notes:

All the course material will be shared online.
More details will be provided via Piazza.


Communication:

All the communications will be carried out through Piazza. Please enroll it by following the link https://piazza.com/hacettepe.edu.tr/fall2025/bbm301


Tentative Schedule: (Subject to change)



Introduction to programming languages

Decribing syntax and semantics - Regular Expressions

Describing Syntax and Semantics - BNF

Name, Bindings and scopes

Functional Languages

Logic Languages

Subprograms

Implementing Subprograms



Resources