EPOKA UNIVERSITY
FACULTY OF ARCHITECTURE AND ENGINEERING
DEPARTMENT OF COMPUTER ENGINEERING
COURSE SYLLABUS
2023-2024 ACADEMIC YEAR
COURSE INFORMATIONCourse Title: PROGRAMMING LANGUAGES I |
Code | Course Type | Regular Semester | Theory | Practice | Lab | Credits | ECTS |
---|---|---|---|---|---|---|---|
CEN 328 | B | 6 | 2 | 2 | 0 | 3 | 6 |
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) | Dr. Erind Bedalli ebedalli@epoka.edu.al |
Main Course Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: | Dr. Erind Bedalli ebedalli@epoka.edu.al |
Second Course Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: | M.Sc. Ari Gjerazi agjerazi@epoka.edu.al |
Language: | English |
Compulsory/Elective: | Elective |
Study program: (the study for which this course is offered) | Bachelor in Software Engineering (3 years) |
Classroom and Meeting Time: | |
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: | N/A |
Course Description: | - |
Course Objectives: | Students will demonstrate an understanding of the main models for parallel hardware and parallel software; and will apply techniques for decomposing problems into smaller tasks and assigning them into computing units. To know the basic constructs for building parallel programs with Java multi-threading, POSIX threads, OpenMP, MPI. |
BASIC CONCEPTS OF THE COURSE
|
1 | Parallel programming design principles |
2 | Shared-memory parallel programming |
3 | Distributed-memory parallel programming |
4 | Java multithreading |
5 | POSIX threads |
6 | OpenMP parallel programming |
7 | MPI parallel programming |
COURSE OUTLINE
|
Week | Topics |
1 | Introduction and motivation for parallel programming. |
2 | Parallel hardware. Flynn's taxonomy. |
3 | Parallel software. Performance metrics. |
4 | Algorithms and constructs for collective communication. |
5 | Analytical modelling of parallel programs. |
6 | Shared-memory parallel programming (in POSIX and OpenMP). Threads, their life cycles. |
7 | Critical sections, race conditions and thread synchronization. |
8 | Midterm exam. |
9 | Distributed memory programming (in MPI). Principles of message passing, send and receive operations. |
10 | Overlapping communication and computation, collective operations. |
11 | Parallel programming approach on dense matrix algorithms. |
12 | Parallel sorting algorithms. |
13 | Parallel graph algorithms. |
14 | An overview of state-of-the-art applications of parallel programming. |
Prerequisite(s): | C Programming, Object-oriented programming |
Textbook(s): | "An Introduction to Parallel Programming", Peter Pacheco "An introduction to parallel computing" (2nd edition) Ananth Grama , Vipin Kumar, George Karypis, Anshul Gupta |
Additional Literature: | |
Laboratory Work: | |
Computer Usage: | Yes |
Others: | No |
COURSE LEARNING OUTCOMES
|
1 | To know the fundamental parallel architecture models. |
2 | To know and apply the principles of parallel algorithm design. |
3 | To design and implement programs in shared-memory programming model using POSIX threads, OpenMP, Java multi-threading etc. |
4 | To design and implement programs in distributed-memory programming model using MPI . |
5 | To know and be able to apply parallel approaches on significant problems like dense matrix operations, sorting, graphs etc. |
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. | 4 |
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. | 5 |
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. | 4 |
COURSE EVALUATION METHOD
|
Method | Quantity | Percentage |
Homework |
2
|
7.5
|
Midterm Exam(s) |
1
|
25
|
Presentation |
1
|
5
|
Project |
1
|
10
|
Final Exam |
1
|
40
|
Attendance |
5
|
|
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 | 4 | 64 |
Hours for off-the-classroom study (Pre-study, practice) | 14 | 2.5 | 35 |
Mid-terms | 1 | 10 | 10 |
Assignments | 2 | 8 | 16 |
Final examination | 1 | 15 | 15 |
Other | 1 | 10 | 10 |
Total Work Load:
|
150 | ||
Total Work Load/25(h):
|
6 | ||
ECTS Credit of the Course:
|
6 |
CONCLUDING REMARKS BY THE COURSE LECTURER
|
The students comprehended well various forms of parallel programming, especially the shared-memory model. |