Name
Office
E-mail
Office Hours
Prof. Dr. İsmail Hakkı Toroslu
A-309
toroslu[at]ceng.metu.edu.tr
Tuesday 10:40-12:30 or by appointment
Assoc. Prof. Dr. Ahmet Oğuz Akyüz
B-210
akyuz[at]ceng.metu.edu.tr
Thursday 10:40-11:30 or by appointment
Dr. Onur Tolga Şehitoğlu
B-209
onur[at]ceng.metu.edu.tr
Tuesday 10:40-11:30 or by appointment
Name
Office
E-mail
Alper Demir
A-205
ademir[at]ceng.metu.edu.tr
Merve Asiler
A-205
asiler[at]ceng.metu.edu.tr
Engin Deniz Usta
A-205
engin[at]ceng.metu.edu.tr
Çağrı Utku Akpak
B-Z19_up
cakpak[at]ceng.metu.edu.tr
Hüseyin Aydın
A-410
huseyin[at]ceng.metu.edu.tr
Name
E-mail
Göksu Güvendiren
goksuguvendiren[at]gmail.com
Mehmet Fatih Bakır
fatih.bakir[at]metu.edu.tr
Ülfet Çetin
ulfet.cetin[at]ceng.metu.edu.tr
Section 1: Monday 11:40-13:30 (2 x 50 mins) BMB1, Thursday 09:40-10:30 BMB2 (50 mins) [A. O. Akyüz]
Section 2: Thursday 13:40-15:30 (2 x 50 mins) BMB1, Tuesday 09:40-10:30 BMB1 (50 mins) [O. T. Şehitoğlu]
Section 3: Tuesday 09:15-10:30 (75 mins) BMB2, Thursday 13:45-15:00 BMB2 (75 mins) [İ. H. Toroslu]
Evolution of programming languages. Overview of language translation, virtual machines, and run time environments. Names, bindings and scopes. Values, expressions and types. Type compatibility and type checking. Storage, variables, and commands. Procedural abstraction. Generic units. Overview of functional programming paradigm. Overview of object-oriented programming paradigm: Encapsulation, classes and objects, inheritance, polymorphism, dynamic binding.
To introduce the basic concepts and features of programming languages and different programming paradigms.
Prerequisite: 5710111 and 5710213
- Watt, D. A., Programming Language Design Concepts, Wiley, 2004.
- Stroustrup, B., The C++ 3rd Ed., Addison Wesley Publishing Company, 1997.
Week | Date | Subject | |
---|---|---|---|
1 | 20/2-24/2 | Introduction (Ch. 1), Values and Types (Ch. 2) | |
2 | 27/2-03/3 | Values and Types (Ch. 2) | |
3 | 06/3-10/3 | Functional Programming (Ch. 14) | Haskell Lab Recitation: Saturday, March 11th |
4 | 13/3-17/3 | Functional Programming (Ch. 14) | Haskell HW1 posted |
5 | 20/3-24/3 | Storage, Variables, and Commands (Ch. 3) | LAB EXAM 1 - Haskell: Thursday, March 23th |
6 | 27/3-31/3 | Bindings and Declaration (Ch. 4) | |
7 | 03/4-07/4 | Abstraction and Parameter Passing (Ch. 5) | Haskell HW2 posted |
8 | 10/4-14/4 | Encapsulation (Ch. 6), Type Systems (Ch. 8) | LAB EXAM 2 - Haskell: Thursday, April 13th |
9 | 17/4-21/4 | Sequencers (Ch. 9) | MIDTERM EXAM: Thursday, April 20th, C++ HW1 posted |
10 | 24/4-28/4 | OOP [Int. to C++, Operator Overloading] (Ch 12) | |
11 | 01/5-05/5 | OOP [Complex Objects and Inheritance] (Ch. 12) | C++ HW2 posted |
12 | 08/5-12/5 | OOP [Templates and Exception Handling] (Ch. 12) | LAB EXAM 3 - C++: Thursday, May 11th |
13 | 15/5-19/5 | Logic Prg. with Prolog (Ch. 15) | Prolog HW1 posted] [Prolog Lab Recitation: Monday, May 15th |
14 | 22/5-26/5 | Logic Prg. with Prolog (Ch. 15), Syntax and Parsing | LAB EXAM 4 - Prolog: Thursday, May 25th |
- Lab Quizzes (4) (30% total, closed book and notes)
- Midterm exam (1) (20%, closed book and notes)
- Final (1) (30%, closed book and notes)
- Programming Assignments (5) (20% total, individual work required, no collaboration)
1. For programming assignments 10 late days can be distributed between all assignments. Each assignment cannot be submitted more than 3 days late.
2. Makeup exams will be possible only if a legal excuse (e.g. medical report) is provided.
3. No grouping or cooperation is allowed for the assignments or exams.
4. Unless explicitly allowed, using code from the Internet or other sources is strictly prohibited.
5. Cheating in an assignment will result in receiving 0 from all assignments.
6. All academic dishonesty will be subject to disciplinary action.
7. All exams and quizzes will be held together by all sections in evenings, dates are subject to change.
8. This syllabus is tentative and changes can be made during the semester.