Course Details
Course Code (English)
*
Semester
*
Title (English)
*
Lecture Hours (Weekly)
ECTS Credits
*
Course Type (English)
Prerequisites (English)
- Programming - Data structures
Course URL (e.g., on e-class)
Learning Outcomes (English)
Upon completion of the course, students will be able to: - Understand the fundamental concepts and principles of programming languages. - Explore the different programming paradigms and their applications. - Evaluate various programming languages based on their design features and trade-offs. - Develop practical skills in selecting and using programming languages. - Enhance their problem-solving ability through the study of different programming languages.
General Competencies (English)
- Search, analysis and synthesis of data and information with the use of the assorted technologies - Independent work - Adaptation in new conditions - Promoting free, creative and deductive reasoning
Course Content (English)
- Overview of programming languages and their significance. The evolution of programming languages, levels of programming languages, programming paradigms, procedural and declarative programming languages. - Syntax and syntactic analysis. - Names and scopes, subprograms and parameter passing, activation records. - Introduction to the functional programming paradigm: recursion and recursive functions, functions without side effects and referential transparency. - Data types: primitive and constructed types, tuples, unions, subtypes. Type formats and pattern matching. Recursive type definitions. Type polymorphism. Type inference. - Functions as data: anonymous functions, functions as parameters and higher-order functions, map and reduce operators. Functions as return values and partially applied functions. - Introduction to the logic programming paradigm: terms and rules, unification and resolution, lists, backtracking and search.
Use of ICT (English)
- Dissemination and organization of course material using e-class
Is it elective?
Άγνωστο
Ναι
Όχι
Load within semester (Hours)
Lecture Hours
Lab Hours
Independent Study
*
Project Work
*
Lab Report
*