EPOKA UNIVERSITY
FACULTY OF ARCHITECTURE AND ENGINEERING
DEPARTMENT OF COMPUTER ENGINEERING
COURSE SYLLABUS
COURSE INFORMATIONCourse Title: PROGRAMMING LANGUAGES I |
Code | Course Type | Regular Semester | Theory | Practice | Lab | Credits | ECTS |
---|---|---|---|---|---|---|---|
CEN 848 | C | 99 | 3 | 2 | 0 | 4 | 7.5 |
Academic staff member responsible for the design of the course syllabus (name, surname, academic title/scientific degree, email address and signature) | NA |
Lecturer (name, surname, academic title/scientific degree, email address and signature) and Office Hours: | Elton Domnori |
Second Lecturer(s) (name, surname, academic title/scientific degree, email address and signature) and Office Hours: | NA |
Teaching Assistant(s) and Office Hours: | NA |
Language: | English |
Compulsory/Elective: | Elective |
Classroom and Meeting Time: | |
Course Description: | - |
Course Objectives: | This course reviews concepts in programming languages. Functions, types, scope, storage management, exceptions, continuations, object – orientation, and concurrency are some key subjects. To get a feeling of the basic concepts and design trade-offs of programming languages, so that one can easily learn and use different programming languages. |
COURSE OUTLINE
|
Week | Topics |
1 | The variety of programming languages. Abstraction, programming in the large, software engineering. Compilers and interpreters. Syntax and semantics. Context-free grammars. |
2 | Imperative languages. An overview of Ada95. Control structures: conditionals, loops, case statements. Data types and their representation. Strong typing. Static vs. dynamic typing. Type declarations, type equivalence. Subtypes and derived types in Ada95. Numeric types, scalar types. |
3 | Composite types: arrays, records, variants and unions. Strings. Pointers, access types and dynamic allocation. |
4 | Subprograms, functions, procedures, methods. Parameter passing, scope and visibility. Block structure and static scoping. Nested procedures, implementation issues. |
5 | Program structure: Modules, packages, and interfaces. Abstract types and information hiding. |
6 | Object oriented programming: Objects, classes, data and function members, constructors and destructors. |
7 | Language summary: C++: inheritance, dynamic dispatching, polymorphism. |
8 | Midterm |
9 | Generic programming and templates in Ada95, C++ and Java. |
10 | Exception handling. Concurrent programming: threads, tasks, synchronization, communication. Concurrency in Ada and Java. |
11 | Functional programming: LISP and Scheme. The LISP interpreter. |
12 | Functional programming in ML: type inference, first-class functions. |
13 | The interesting parts of Java: the JVM, interfaces, reflection |
14 | Course overview |
Prerequisite(s): | |
Textbook: | |
Other References: | |
Laboratory Work: | Yes |
Computer Usage: | Yes |
Others: | No |
COURSE LEARNING OUTCOMES
|
1 | Learn information on compilers, syntax and grammars. |
2 | Learn different programming models: object-oriented, functional, concurrent |
COURSE CONTRIBUTION TO... PROGRAM COMPETENCIES
(Blank : no contribution, 1: least contribution ... 5: highest contribution) |
No | Program Competencies | Cont. |
Doctorate (PhD) in Computer Engineering 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. | |
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 | |
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 | 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 | Ability of designing and conducting experiments, conduction data acquisition and analysis and making conclusions. | |
6 | Ability of identifying the potential resources for information or knowledge regarding a given engineering issue. | |
7 | The abilities and performance to participate multi-disciplinary groups together with the effective oral and official communication skills and personal confidence. | |
8 | Ability for effective oral and official communication skills in foreign language. | |
9 | Engineering graduates with motivation to life-long learning and having known significance of continuous education beyond undergraduate studies for science and technology. | |
10 | Engineering graduates with well-structured responsibilities in profession and ethics. | |
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. | |
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. |
COURSE EVALUATION METHOD
|
Method | Quantity | Percentage |
Midterm Exam(s) |
1
|
40
|
Quiz |
2
|
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) | 16 | 5 | 80 |
Mid-terms | 1 | 12 | 12 |
Assignments | 0 | ||
Final examination | 1 | 15.5 | 15.5 |
Other | 0 | ||
Total Work Load:
|
187.5 | ||
Total Work Load/25(h):
|
7.5 | ||
ECTS Credit of the Course:
|
7.5 |