You need to activate javascript for this site.
Menu Conteúdo Rodapé
  1. Home
  2. Courses
  3. Computer Science and Engineering
  4. Programming Paradigms

Programming Paradigms

Code 11484
Year 1
Semester S2
ECTS Credits 6
Workload PL(30H)/T(30H)
Scientific area Informatics
Mode of delivery - Face-to-face.
Work placements - N/A.
Learning outcomes - To provide an overview of paradigms / programming languages??.
- To provide a historical perspective of the evolution of paradigms and programming languages??.
- To improve the student skills in object oriented programming.
- To introduce the paradigm of logic programming. At the end of the course unit the student should be able to:
- Understand the basic principles of logic programming theory and symbolic reasoning.
- Demonstrate good knowledge of the basic Prolog language by constructing small/medium programs, and predict and describe what they do.
- Modify existing code to perform a similar task.
- Identify the advantages/disadvantages of declarative programming in comparison with imperative languages.
- Comprehend the basic principles of programming languages, like procedural abstraction, program design and development, parameter passing, recursion, etc.
- Adapt declarative programming techniques to other programming paradigms.
Syllabus - Programming paradigms: imperative, logical, functional and object-oriented.
- Object-oriented languages ??derived from imperative languages??, logical and functional. Historical perspective.
- Advanced topics in object oriented programming. Metrics development: cohesion, coupling, sufficiency, completeness, and primitive operations. Hierarchies of prototypes versus class hierarchies. Reflective systems. Mechanisms of inheritance: public inheritance, protected and private, multiple inheritance and multiple instantiation. Code reuse by inheritance, by the composition of objects and composition of components. Design Patterns.
- Logic Programming. Propositional logic, first order predicate logic and principle of the resolution. Knowledge representation and inference mechanisms. The programming language Prolog. Technical programming and debugging programs.
Main Bibliography - Peter H. Salus (ed.). Handbook of Programming Languages (Volumes I, II, III e IV). Macmillan Technical Publishing.
- W. F. Clocksin and C. S. Mellish. Programming in Prolog. Springer-Verlag.
- Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional Computing Series.
- Delfim F. M. Torres. Introdução à Programação em Lógica Ed. Universidade de Aveiro, 2000 (in Portuguese).
- C. McDonald. Prolog Programming: A Tutorial Introduction. Blackwell Scientific Publications Ltd.
- P. Deransart, A. Ed-Dbali, L. Cervoni. Prolog: The Standard: Reference Manual. Springer.
Planned learning activities and teaching methods - Theoretical classes in which one challenges students to present their ideas and solutions to the problems posed by the teacher.
- Practical laboratory classes in which students are led to develop algorithms and techniques learned in lectures.
- Follow-up tutorial where students request to develop their projects or to consolidate their knowledge.
- The development of an individual project serves above all to develop in students the ability to solve problems and consolidate their knowledge in programming paradigms.
Language Portuguese. Tutorial support is available in English.
Last updated on: 2014-08-07

The cookies used in this website do not collect personal information that helps to identify you. By continuing you agree to the cookie policy.