Go to:
Logótipo
You are here: Start > PRODEI018

Programming Paradigms

Code: PRODEI018     Acronym: PP

Keywords
Classification Keyword
OFICIAL Science and Technology Programming

Instance: 2012/2013 - 2S

Active? Yes
Web Page: http://www.fe.up.pt/~rcamacho/cadeiras/PP/
E-learning page: https://moodle.fe.up.pt/
Responsible unit: Department of Informatics Engineering
Course/CS Responsible: Doctoral Program in Informatics Engineering

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
PRODEI 7 Syllabus 1 - 6 54 162

Teaching language

Portuguese

Objectives

This course aims at giving the students a global view of the different paradigms with the emphasis on concepts, implementation and suitability to solve the different classes of problems, leading to the understanding of the trade-offs in language design and the advantages and disadvantages of the main languages.

After completing this course, students should be able to:
1. Distinguish the role of the higher level programming languages
2. Distinguish the various programming paradigms
3. Describe the problems associated with the implementation of programming languages
4. List the innovations associated with the LISP language
5. Describe characteristics and problems of the imperative language Algol 60: type system, rich and structured, anomalies in "Pass-by-name", goto and memory management, the principle of orthogonality (assignment of variables procedure)
6. Describe characteristics and limitations of imperative language Pascal: array limits are part of the type
7. Describe characteristics and limitations of the imperative language C: arrays vs. pointers
8. Describe characteristics of ML, such as: garbage collection, high order functions, partial functions, curried functions, patterns, cell reference
9. Describe the use of types in programming languages
10. Describe the algorithm for type inference of ML
11. Describe implementations of polymorphism
12. Describe the need for memory management placed by calling functions and passing parameters in its various forms
13. Describe key concepts related to control program execution
14. Describe the purpose and semantics of exceptions in ML and C++
15. Describe the support for the modularity of programs
16. Describe the support for abstraction in programs
17. Describe the main concepts of the paradigm of Object-Orientation
18. Describe the main features of the programming language Simula.
19. Describe the main features of the Smalltalk programming language
20. Describe the characteristics of the programming language C++
21. Describe the features of the Java programming language
22. Describe some features of the programming language Prolog
23. Describe some features of scripting programming languages like Perl and Python
24. List advantages of using concurrent programming

Program

1. Introduction and the role of programming languages.
2. Functions, recursion, lists and Lisp.
3. Compilers and syntax,lambda-calculus and denotational semantics.
4. The Algol family and ML.
5. Type systems and type inference.
6. Scope, functions and memory management.
7. Data abstraction and modularity.
8. Concepts in Object-oriented languages, Simula and Smalltalk.
9. Objects and runtime execution in C++.
10. Portability and security in Java.
11. Logic programing and Prolog.
12. Concurrency and distribution.
13. scripting programming languages

Mandatory literature

Mitchell, John C.; Concepts in programming languages. ISBN: 0-521-78098-5

Complementary Bibliography

Thompson, Simon; Haskell the craft of functional programming. ISBN: 0- 201-34275-8
Arnold, Ken; The Java programming language. ISBN: 0-201-70433-1
Sterling, Leon; The Art of Prolog. ISBN: 0-262-69163-9
Springer, George; Scheme and the art of programming. ISBN: 0-07-060522-X
Sethi, Ravi; Programming languages. ISBN: 0-321-21074-3

Teaching methods and learning activities

Lectures include theoretical presentation of the course subjects, discussions and examples of computer programs.

keywords

Physical sciences
Physical sciences > Computer science > Programming
Physical sciences > Computer science

Evaluation Type

Distributed evaluation without final exam

Assessment Components

Description Type Time (hours) Weight (%) End date
Attendance (estimated) Participação presencial 0,00
Total: - 0,00

Eligibility for exams

The students will do a project along the entire semester. The work will be reported in scientific paper format. There will be an oral presentation and discussin of the work at the end of the semester.

Calculation formula of final grade

Classification = 50% Quality of the work + 30% Paper + 20% presentation and discussion

Examinations or Special Assignments

There are no special works.

Special assessment (TE, DA, ...)

Students taking exams under special regimes are expected to previously submit the practical work required for this course as ordinary students.

Classification improvement

Students may improve the mark obtained in the practical component in the subject's next edition.
Recommend this page Top
Copyright 1996-2025 © Faculdade de Engenharia da Universidade do Porto  I Terms and Conditions  I Accessibility  I Index A-Z  I Guest Book
Page generated on: 2025-06-26 at 14:28:23 | Acceptable Use Policy | Data Protection Policy | Complaint Portal