COURSE INFORMATION
Course Title: PROGRAMMING LANGUAGE PARADIGMS
Code Course Type Regular Semester Theory Practice Lab Credits ECTS
SWE 211 B 4 3 0 2 4 7
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) Dr. Florenc Skuka fskuka@epoka.edu.al
Main Course Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: M.Sc. Igli Draçi idraci@epoka.edu.al , Thursday, 11:30 - 12:30
Second Course Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: M.Sc. Edlira Cani edcani@epoka.edu.al
Language: English
Compulsory/Elective: Compulsory
Study program: (the study for which this course is offered) Bachelor in Software Engineering (3 years)
Classroom and Meeting Time: E-314, Thursday 08:40 - 11:30 & 13:40 - 16:30
Teaching Assistant(s) and Office Hours: NA
Code of Ethics: Code of Ethics of EPOKA University
Regulation of EPOKA University "On Student Discipline"
Attendance Requirement:
Course Description: The course comprises the fundamental concepts in design and implementation of programming languages, including syntax, semantics, names, bindings, data types, type checking, data control, storage management, subprograms, parameter passing, operating environment. Main paradigms of programming will be carefully covered including: structured programming, object oriented programming and functional programming. An exposure to several programming languages representing procedural, object-oriented and functional programming will also be provided, where students will further develop their practical competency.
Course Objectives: The course is organized around basic concepts in the design and implementation of programming languages, including syntax, semantics, names, bindings, type checking, subprograms, etc. The main paradigms of programming will be carefully covered including procedural programming, object-oriented programming, functional programming, and logic programming.
BASIC CONCEPTS OF THE COURSE
1 Syntax and Semantics
2 Automata Theory
3 Procedural Programming
4 Object-oriented Programming
5 Functional Programming
6 Logic Programming
7 Multithreading
COURSE OUTLINE
Week Topics
1 Overview on programming language paradigms
2 Describing Syntax and Semantics
3 Automata Theory
4 Lexical and Syntax Analysis
5 Procedural Programming
6 Object-Oriented Programming Part 1
7 Object-Oriented Programming Part 2
8 Midterm Exam
9 Multithreading and Parallel Programming
10 Lambda Calculus
11 Functional Programming Part 1
12 Functional Programming Part 2
13 Functional Programming Part 3
14 Logic Programming
Prerequisite(s): C Programming, Object-Oriented Programming
Textbook(s): "Concepts of Programming Languages" by Robert Sebesta, Pearson 2019
Additional Literature: "Learn You a Haskell for Great Good!" by Miran Lipovaca "Python Object-Oriented Programming" by Steven Lott
Laboratory Work: Yes
Computer Usage: Yes
Others: No
COURSE LEARNING OUTCOMES
1 Students will gain an analytical and comparative look at programming languages and their implementations
2 Students will develop an aptitude to quickly learn new programming languages
3 Students will gain a thorough insight of imperative programming paradigm applying it in several programming languages
4 Students will gain a thorough insight of object-oriented programming paradigm applying it in several programming languages
5 Students will gain a thorough insight of functional programming paradigm applying it in several programming languages
6 Students will gain introductory knowledge on logic programming.
7 Students will gain introductory knowledge on concurrency and multithreading programming.
8 Students will gain basic concepts on how programming languages are built.
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution)
No Program Competencies Cont.
Bachelor in Software Engineering (3 years) Program
1 Engineering graduates with sufficient theoretical and practical background for a successful profession and with application skills of fundamental scientific knowledge in the engineering practice. 5
2 Engineering graduates with skills and professional background in describing, formulating, modeling and analyzing the engineering problem, with a consideration for appropriate analytical solutions in all necessary situations 5
3 Engineering graduates with the necessary technical, academic and practical knowledge and application confidence in the design and assessment of machines or mechanical systems or industrial processes with considerations of productivity, feasibility and environmental and social aspects. 5
4 Engineering graduates with the practice of selecting and using appropriate technical and engineering tools in engineering problems, and ability of effective usage of information science technologies. 5
5 Ability of designing and conducting experiments, conduction data acquisition and analysis and making conclusions. 4
6 Ability of identifying the potential resources for information or knowledge regarding a given engineering issue. 4
7 The abilities and performance to participate multi-disciplinary groups together with the effective oral and official communication skills and personal confidence. 4
8 Ability for effective oral and official communication skills in foreign language. 4
9 Engineering graduates with motivation to life-long learning and having known significance of continuous education beyond undergraduate studies for science and technology. 5
10 Engineering graduates with well-structured responsibilities in profession and ethics. 4
11 Engineering graduates who are aware of the importance of safety and healthiness in the project management, workshop environment as well as related legal issues. 4
12 Consciousness for the results and effects of engineering solutions on the society and universe, awareness for the developmental considerations with contemporary problems of humanity. 5
COURSE EVALUATION METHOD
Method Quantity Percentage
Homework
1
20
Midterm Exam(s)
1
30
Presentation
1
10
Final Exam
1
40
Total Percent: 100%
ECTS (ALLOCATED BASED ON STUDENT WORKLOAD)
Activities Quantity Duration(Hours) Total Workload(Hours)
Course Duration (Including the exam week: 16x Total course hours) 16 5 80
Hours for off-the-classroom study (Pre-study, practice) 14 2.5 35
Mid-terms 1 15 15
Assignments 3 10 30
Final examination 1 15 15
Other 0
Total Work Load:
175
Total Work Load/25(h):
7
ECTS Credit of the Course:
7
CONCLUDING REMARKS BY THE COURSE LECTURER