Public View

You are viewing the public version of the syllabus. If you have a SUNet account, you can view the richer version of the syllabus after logging in.

Programming Languages
CS 305

Faculty: Faculty of Engineering and Natural Sciences
Semester: Fall 2025-2026
Course: Programming Languages - CS 305
Classroom: UC-G030
Level of course: Undergraduate
Course Credits: SU Credit:3.000, ECTS:6, Engineering:6
Prerequisites: CS 204
Corequisites:
Course Type: Lecture

Instructor(s) Information

Hüsnü Yenigün

Course Information

Catalog Course Description
This course discusses the concepts underlying the design, definition, implementation, and use of modern programming languages for a variety of programming paradigms, such as imperative, functional, logic and concurrent programming paradigms. The syntax and semantics of programming languages are described using formal approaches, and basic concepts of language analysis and compilation are covered using modern tools.
Course Learning Outcomes:
1. The students are expected to have basic information for the implementation of programming languages.
2. The students are expected to have some experience to apply techniques of language implementation by using tools for language implementation.
3. The students are expected to have basic information for the common concepts in programming languages.
4. The students are expected to have introductory information on programming language paradigms such as functional programming, logic programming, and parallel programming.
Course Objective
To give the students the basic principles of various programming language paradigms and implementation of these languages.

Course Materials

Resources:
Technology Requirements:
You will need to have SSH access to cs305.sabanciuniv.edu server for homeworks. SU-Net users of the students will be activated on this server after the course starts. All the software packages you need for homeworks are already installed on this server.