BBM 301 - Programming Languages (Fall 2021)

Lectures: Fridays 14:00-16:45 @D8, @D9, @D10 (Section 1, 2, 3)

Languages Arranged by Difficulty © xkcd



Instructor:   

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

Prof. Pinar Duygulu Sahin (Sec 2)      

Assoc. Prof Lale Ozkahya (Sec 3)

nazli-at-cs.hacettepe.edu.tr

pinar-at-cs.hacettepe.edu.tr

ozkahya-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

25%

Midterm Exam 2

25%

Final Exam

50%


Important Note about Fall 2021 semester:

The teaching will consist of online lectures, and in-class Q/A sessions. 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/fall2021/bbm301


Important Dates:

Midterm exam 1 (Online)

November 12

Midterm exam 2 (Online)

To be announced later.

Final

To be announced later.


Tentative Schedule: (Subject to change)


Week  

Date    

Topic  

Additional Readings  


1

01/10

Introduction to programming languages

2

8/10

Describing syntax and semantics

3

15/10

Lex

4

22/10

Yacc

5

05/11

Name, Bindings and scopes

6

12/11

Midterm Exam 1

7

19/11

Functional Languages

8

26/11

Functional Languages(Cont'd)

9

03/12

Logic Languages

10

10/12

Midterm Exam 2

11

17/12

Subprograms

12

24/12

Implementing Subprograms

13

31/12

Review



Resources