Accreditations
The 1st cycle course in Computer Engineering is a 3 year programme awarding 180 ECTS credits, divided among 174 credits in mandatory course units and 6 credits in transversal skills course units.
Programme Structure for 2024/2025
Curricular Courses | Credits | |
---|---|---|
Linear Algebra
6.0 ECTS
|
Mandatory Courses | 6.0 |
Calculus I
6.0 ECTS
|
Mandatory Courses | 6.0 |
Fundamentals of Computer Architecture
6.0 ECTS
|
Mandatory Courses | 6.0 |
Introduction to Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
Algorithms and Data Structures
6.0 ECTS
|
Mandatory Courses | 6.0 |
Calculus II
6.0 ECTS
|
Mandatory Courses | 6.0 |
Mechanics and Electricity
6.0 ECTS
|
Mandatory Courses | 6.0 |
Microprocessors
6.0 ECTS
|
Mandatory Courses | 6.0 |
Operating Systems
6.0 ECTS
|
Mandatory Courses | 6.0 |
Databases
6.0 ECTS
|
Mandatory Courses | 6.0 |
Probabilities and stochastic processes
6.0 ECTS
|
Mandatory Courses | 6.0 |
Object Oriented Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
Theory of Computation
6.0 ECTS
|
Mandatory Courses | 6.0 |
Mathematical methods for computation
6.0 ECTS
|
Mandatory Courses | 6.0 |
Information System Design and Development
6.0 ECTS
|
Mandatory Courses | 6.0 |
Algorithm Design and Analysis
6.0 ECTS
|
Mandatory Courses | 6.0 |
Fundamentals of Computer Networks
6.0 ECTS
|
Mandatory Courses | 6.0 |
Artificial Intelligence
6.0 ECTS
|
Mandatory Courses | 6.0 |
Multiparadigm Programming Project
6.0 ECTS
|
Mandatory Courses | 6.0 |
Autonomous Agents
6.0 ECTS
|
Mandatory Courses | 6.0 |
Network Architectures
6.0 ECTS
|
Mandatory Courses | 6.0 |
Information Processing
6.0 ECTS
|
Mandatory Courses | 6.0 |
Concurrent and Parallel Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
Development for Internet and Mobile Apps
6.0 ECTS
|
Mandatory Courses | 6.0 |
Software Engineering
6.0 ECTS
|
Mandatory Courses | 6.0 |
Human-Computer Interaction
6.0 ECTS
|
Mandatory Courses | 6.0 |
Distributed Information Systems Integration Project
6.0 ECTS
|
Mandatory Courses | 6.0 |
Linear Algebra
At the end of this course the student should be able to:
LG1. Perform computations using vector and matrix algebra.
LG2. Apply the Gram-Schmidt Process.
LG3. Solve and classify systems of linear equations.
LG4. Perform matrix operations.
LG5. Compute, interpret and apply determinants.
LG6. Identify, construct and analyse linear transformations.
LG7. Compute eigenvalues and eigenvectors. Diagonalize a matrix.
LG8. Classify quadratic forms.
1. Vectors and Systems of linear equations
1.1 The vector space R^n.
1.2 Inner product and norm.
1.3 Linear combination and independence.
1.4 Basis and dimension.
1.5 Coordinates of a vector.
1.6 Gram-Schmidt process.
1.7 Systems of linear equations.
1.8 Gaussian elimination. Classification.
2. Matrices
2.1 Elementary and permutation matrices.
2.2 Matrix operations.
2.3 Transpose and inverse of matrices. Properties.
2.4 LU factorization.
3. Determinants. Definition. Properties.
4. Linear maps
4.1 Matrix of a linear map.
4.2 Rotation, reflection and projection matrix.
4.3 Kernel and range.
4.4 Null and column space. The rank theorem.
4.5 Base change.
5. Eigenvalues and eigenvectors
5.1 Definition. Eigenspaces.
5.2 Diagonalization.
5.3 Quadratic forms.
5.4 Singular Value Decomposition.
Students may choose one of the following assessment schemes:
- Periodic assessment:
- 6 mini-tests (25%): tests performed in a class, during the semester, lasting 15 minutes;
- final exam (75%): written exam in the first examination period; the minimum grade is 8.0 pts (out of 20).
The missing tests will be graded 0 pts.
Students must take the mini-tests in the class in which they are enrolled.
To calculate the final grade in this component, the 5 best grades will be considered.
The final grade is the best between Periodic Assessment and Exam Assessment.
- Exam assessment: a written exam (100%) in the 1st or 2nd examination period.
The minimum grade for this course is 10 points (out of 20).
Students may have to undertake an oral examination whenever the instructor seems it necessary.
Title: Apoio teórico fornecido pelos docentes.
Caderno de exercícios fornecido pelos docentes.
G. Strang, Introduction to Linear Algebra, Wellesley-Cambridge Press, fourth edition, 2009.
T.S. Blyth and E.F. Robertson, Basic Linear Algebra, Wellesley-Cambridge Press, 2009.
Authors:
Reference:
Year:
Title: R. L. Burden, J. D.Faires, Numerical analysis, Cengage Learning, 2015.
Authors:
Reference:
Year:
Calculus I
At the end of this course the student should be able to:
LG1. Understand and compute derivatives and interpret the corresponding result.
LG2. Understand and determine linear and higher order approximations.
LG3. Understand and explicitly compute the antiderivative of some elementary functions.
LG4. Understand and apply the fundamental theorem of differential calculus and the fundamental theorem of integral calculus.
LG5. Understand (and compute) integrals as well as their applications.
LG6. Understand and apply some simple numerical methods to obtain solutions of nonlinear equations and to compute approximate values of derivatives and integrals.
LG7. Understand numerical series and determine the power series representation of some functions.
PC 1) Differential calculus in R
1.1. Limits and continuity
1.2. Differentiation
1.3. Taylor's formula.
1.4. Error analysis
1.5. Numerical methods: bisection and Newton's methods
1.6. Numerical differentiation and numerical optimization
PC 2 ) Integral calculus in R
2.1. Antiderivatives
2.2. Integrals
2.3. Fundamental theorem of integral calculus.
2.4. Applications to geometry
2.5. Numerical integration
PC 3) Numerical series and power series
3.1. Sequences
3.2. Series
3.3. Convergence criteria
3.4. Power series and applications
There are two types of assessment:
1. Periodic Assessment, consisting of:
- Two Mini-Tests on MATLAB done in class (5% + 5%), an Intermediate Test (45%): written test taken during the semester; minimum grade of 7.5 values.
- Final Test (45%): written test carried out in the 1st assessment period; minimum grade of 7.5 values.
2. Final Assessment: carrying out a final Exam (with a weight of 100%), in the 1st or 2nd period of the evaluation period.
The minimum passing grade for the curricular unit is 10.
Title: Sérgio Mendes, Apontamentos da UC., 2023, null,
K. Ross, Elementary Analysis. The theory of calculus, Springer, 2013, null,
R. Burden, J. D. Faires, A. Burden, Numerical Analysis, Cengage Learning, 2015, null,
Authors:
Reference:
Year:
Title: J. Campos Ferreira, Introdução à Análise Matemática, Fundação Calouste Gulbenkian, 2018, null,
E. Herman, G. Strang, Calculus, Vols 1 e 2, OpenStax, 2017, 2018, null,
Authors:
Reference:
Year:
Fundamentals of Computer Architecture
At the end of this course, the student should be able:
OA1: To manipulate and to perform arithmetic operations using integer values represented in different numerical bases;
OA2: To manipulate logic expressions using properties of the Boolean algebra;
OA3: To design a combinational logic circuit that solves a given problem;
OA4: To design a sequential logic circuit that controls other elements on a digital system;
OA5: To simulate and to implement a logic circuit using a set of integrated circuits end programmable logic devices;
OA6: To categorize memory types and to design larger sized memory banks using smaller memory modules;
OA7: To identify and to relate the main elements of simple processor architectures;
OA8: To explain how the computer executes a program and to identify the main intervening mechanisms in that process;
CP1. Information representation
- Integer representation using different numerical bases
- Arithmetic operations over signed and unsigned integers
- Alphanumeric codes: ASCII and Unicode
CP2. Boolean algebra an logical functions
- AND, OR and NOT operations
- Boolean algebra
- Logical functions
- Minterms and "sum-of-products" form
- Karnaugh maps
CP3. Combinational circuits
- Combinational circuits design
- NAND, NOR and XOR gates
- Decoders and multiplexers
- Propagation delays
CP4. Sequential circuits
- Latches and flip-flops
- Sequential circuits analysis
- State diagrams and transition tables
- Sequential circuits design
- Registers and counters
CP5. Memory
- RAM memory
- ROM memory
- Memory banks
CP6. Processor architecture
- Register banks
- Functional unit
- Micro-instructions
- Program execution
1. Periodic assessment, comprising:
- One mid-term test and another end of term test. The minimum grade is 7,5. This component has a 70% weight.
- Laboratory assignments (20%): group work performed on a weekly basis, during the lab classes.
- Online mini-tests (10%): performed on a weekly basis (e-learning platform).
2. Exam assessment (100%) - the final course grade will be the one obtained in the exam (in any of the 3 evaluation epochs).
Title: João Oliveira, Tomás Brandão, Caderno de Exercícios de Fundamentos de Arquitetura de Computadores, 2016, Exercícios,
João Pedro Oliveira, Tomás Brandão, Textos de Apoio de Fundamentos de Arquitetura de Computadores, 2016, Sebenta,
Authors:
Reference:
Year:
Title: Guilherme Arroz, José Monteiro, Arlindo Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores - 2ª Edição, IST Press, 2019, Arroz 2019, https://istpress.tecnico.ulisboa.pt/produto/arquitectura-de-computadores-dos-sistemas-digitais-aos-microprocessadores/
Morris Mano, Charles Kime, Logic and Computer Design Fundamentals, 5th Edition, Pearson, 2015, Mano 2015, https://www.pearson.com/en-us/subject-catalog/p/logic--computer-design-fundamentals/P200000003256/9780134080154
Authors:
Reference:
Year:
Introduction to Programming
After obtaining approval in the course, students should be able to:
OA1. Develop functions/procedures that implement simple algorithms.
OA2. Develop code that manipulates arrays and objects.
OA3. Develop simple object classes (no recourse to inheritance and polymorphism), taking into account the notion of encapsulation.
OA4. Write and understand Java code.
CP1. Functions and parameters
CP2. Variables and control structures
CP3. Invocation and recursion
CP4. Arrays
CP5. Procedures and references
CP6. Matrices
CP7. Simple objects
CP8. Object classes
CP9. Composite objects
CP10. Composite object classes
CP11. Encapsulation and interfaces
Periodic assessment, comprising:
15% Midterm test + 75% Final test + 10% Online mini-tests
[a minimum score of 8 is required in the Final Test and C in the individual project]
The possible grades in the Individual Project are (A, B, C, D). The project grade defines an upper bound for the final grade:
A - max. 20
B - max. 16
C - max. 12
D - implies failing the course
Title: Y. Daniel Liang, "Introduction to Java Programming", 5th Ed. Prentice-Hall, 2005. ISBN: 0-13-185721 - 5.
Authors:
Reference:
Year:
Title: João Pedro Neto, Programação, Algoritmos e Estruturas de Dados, Escolar Ed., 2004.
Authors:
Reference:
Year:
Algorithms and Data Structures
After the course, the student will be able to:
LO1. Understand sorting and search algorithms appropriate to computational solutions;
LO2. Identify, rewrite and review common ways of organizing data and associated algorithms (with and without dynamic memory management, with iterative or recursive algorithms);
LO3. Estimate and value the complexity of algorithms on alternative data structures,
LO4. Prototype new forms of organization of data and associated algorithms suited to solve new computational problems.
PC1. The problem Union-Find
PC2. Analysis of Algorithms
PC3. Stacks, Queues, Lists, Bags
PC4. Priority Queues
PC5. Mergesort Elementary Symbol Tables
PC6. Quicksort Balanced Search Trees
PC7. Hash Tables
PC8. Elementary Sorts: Selectionsort; Insertionsort; Shellsort
PC9. Advanced Sorts: Mergesort; Quicksort; Heapsort
PC10. Sorting Complexity
Periodic Assessment: 10 weekly online evaluations (10%) + 10 weekly programming exercises (20%) + 2 periodic individual evaluations (70%) + 1 individual programming project (grades A,B,C,D).
The programming project grades are qualitative and defines an upper bond for final grade: A - max. 20; B - max. 17; C - max. 13; D - failing the course.
or
Final Examination: Individual examination (100%)
Title: (Algorithms, Part I - MOOC in www.coursera.org)
R. Sedgewick and K. Wayne, Algorithms, 4th edition, Addison-Wesley, 2012
Authors:
Reference:
Year:
Title: D. Harel, Algorithmics: the Spirit of Computing, 3th edition, Addison-Wesley, 2004
F. Santos and C. Conti, Algoritmos e Estruturas de Dados - Exercícios, ISCTE-IUL, 2022.
Authors:
Reference:
Year:
Calculus II
LG1. Compute partial derivatives and the Jacobian and Hessian matrices.
LG2. Determine linear and higher order approximations of functions of several variables.
LG3. Find and classify extrema of functions of several variables.
LG4. Apply simple numerical methods to compute approximate derivatives and solve optimization problems.
LG5. Compute double and triple integrals.
LG6. Applications of integration to compute areas, volumes, centers of mass, masses, probability density.
LG7. Apply simple numerical methods to compute approximate values of integrals.
LG8. Compute line and surface integrals.
LG9. Apply the vector analysis theorems to physics problems
1) Differential calculus in Rn
1.1.Functions of several variables
1.2.Limits and continuity
1.3.Partial derivatives,directional derivatives,gradient
1.4.The chain rule and the backpropagation algorithm
1.5.Implicit and inverse function theorems
1.6.Higher order derivatives and Taylor?s formula
2)Optimization in several variables
2.1.Analytic optimization vs numeric optimization
2.2.Unconstrained optimization
2.3.Numerical methods:steepest descent and Newton?s method
3)Integral calculus in Rn
3.1.Riemann integral in Rn
3.2.Fubini?s theorem
3.3.Change of variable
3.4.Double and triple integrals
3.5.Applications of integration to compute areas, volumes centers of mass and probability density
3.6.Numerical methods:numerical integration(Monte Carlo method)
4)Vector analysis
4.1.Geometry of curves
4.2.Geometry of surfaces
4.3.Line integrals:fundamental theorem
4.4.Surface integrals
4.5.The theorems of Green,Stokes,divergence
4.6.Physical applications:Newton?s gravity,electricity, magnetism
Students must obtain an overall grade of at least 10 (out of 20) in one of the assessment modes:
- Periodic assessment: 6 Mini Tests taken in classes (20%) + Test (75%).
- A final Exam (100%) in either the 1st or 2nd examination period.
Title: Stewart, J. (2016) Calculus, Early Transcendentals, 8th Edition,Cengage Learning.
Lipsman, R. L., & Rosenberg, J. M. (2017). Multivariable Calculus with MATLAB. Springer International Publishing AG.
Authors:
Reference:
Year:
Title: Pires, G. (2012) Cálculo Diferencial e Integral em Rn, IST Press, (1ª Edição).
Authors:
Reference:
Year:
Mechanics and Electricity
OA 1 - Understand the main types of motion in one and two dimensions, identifying its causes, and to be capable of solving problems involving one or more objects under the influence of gravity, tensile cords and contact forces.
OA 2 - Understand the concepts of work and energy and be able to solve problems involving conversion mechanisms between different forms of energy.
OA 3 - Analyze the motion of an object in circular orbit under the influence of a gravitational field.
OA 4 - Understand the concept of field and analyze simple problems involving electric and magnetic fields.
OA 5 - Understand and analyze electric circuits involving resistors, capacitors and inductors.
CP 1. Models, Units and Calculus
CP 2. Movement in One Dimension
CP 3. Movement in Two Dimensions
CP 4. Newton's Laws
CP 5. Energy
CP 6. Potential Energy
CP 7. Gravitation and Force Fields
CP 8. Electric Field
CP 9. Electric Potential
CP 10. Electrical Current and Resistance
CP 11. Capacitance and Dielectrics
CP 12. Magnetic field and inductors
This course can be completed in two ways:
i) exam evaluation
Written exam at the end of the semester in one of the two available dates. The final grade is the grade on this exam.
ii) periodic evaluation
Two written tests + 10 online quizzes during the semester (30 minutes each) - 6 required. The first test takes place during the semester. The 2nd test takes place on the day of the 1st exam. The final grade is calculated as 0.9 * (T1 + T2) / 2 + 0.1 * MT, where MT is the quizzes score
Title: - Physics for Scientists and Engineers, 9th Edition, Autores: R. A. Serway & J. W. Jewett, Edição Thomson/Brooks Cole, disponível na livraria do ISCTE. (Inglês)
Authors:
Reference:
Year:
Title: - Physics for Poets, 5th Edition, Autor: R. H. March, Edição McGraw-Hill Higher Education. (Inglês, divulgação, vista geral de toda a física e sua evolução histórica, pouca ou nenhuma matemática)
- Feynman Lectures on Physics, Autor: R. P. Feynmann, Edição Addison Wesley (Inglês, física de nível universitário)
- Introdução à Física, 2ª Edição, Autores: J. D. Deus, M. Pimenta, A. Noronha, T. Peña & P. Brogueira, Edição McGraw-Hill. (Português, física de nível universitário)
- Princípios de Física, Volume 3, Eletromagnetismo, Autores: R. A. Serway & J. W. Jewett, Edição Thomson, disponível na livraria do ISCTE. (Tradução em Português do Brasil da 3ª Edição do Livro da Cadeira)
- Princípios de Física, Volume 1, Mecânica Clássica, Autores: R. A. Serway & J. W. Jewett, Edição Thomson, disponível na livraria do ISCTE. (Tradução em Português do Brasil da 3ª Edição do Livro da Cadeira)
Authors:
Reference:
Year:
Microprocessors
OA1. To understand the meaning of typical performance measurements and to quantify speedup gains due to system upgrades.
OA2. To know the structure of a typical machine code instruction.
OA3. To understand the low-level mechanisms involved in a program's execution.
OA4. To identify the main elements of a simple processor architecture and to understand how they interact between each other.
OA5. To understand the concept of pipelining and to be able to identify structural, data or control pipeline hazards.
OA6. To know how does a cache memory works.
OA7. To understand how the current parallel architectures work, and the designing strategies.
OA8. To know how programming parallel codes in MPI.
CP1. Computational performance
- Analysis of performance;
- Issues affecting performance;
- Amdahl's law and speed-up;
- Benchmarks
CP2. Instruction sets
- Instruction formats
- Operations with registers and memory
- Procedures and stack usage
- Compilation and code optimization
- RISC vs CISC: ARM, x86
CP3. Arithmetic unit
- Floating point operation format (FP);
- Architecture for FP.
CP4. Simple architecture for a microprocessor
- Instruction phases;
- Control unit and datapath;
- Uni-cicle and multi-cicle processing;
- Pipelining: Performance, and hazards;
- Performance improvements.
CP5. Memory systems
- Memory hierarchy;
- Cache memory;
CP6. Parallel Architectures
- Analysis of performance;
- Shared memory architectures;
- Distributed memory architectures;
- Architectures based on GPU.
Assessment can be periodic or through a final written exam:
A – Periodic assessment: Assessment is done through 2 written tests, one taken during the teaching period and another one on the date of the 1st exam. Each test has a 50% weight on the final grade with no minimum passing grade.
B – Exam only: Assessment is done through a final exam (1st or 2nd or special exam periods), weighting 100% in the final grade. Minimum passing grade: 9.5/20.
Title: David Patterson, John Henessy, Computer Organization and Design - MIPS Edition: The Hardware/Software Interface, 6th Edition, Morgan Kaufmann, 2020.
Authors:
Reference:
Year:
Title: Guilherme Arroz, José Monteiro, Arlindo Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, 5ª Edição, IST Press, 2020
J. Cavanagh, X86 Assembly Language and C fundamentals, CRC Press, 2013.
A. Tanenbaum, Structured Computer Organization , 6th Ed., Prentice Hall, 2012.
Authors:
Reference:
Year:
Operating Systems
OA1: Distinguish Operating System (OS) types, functions and characteristics
OA2: Describe aspects of process managment and related algorithms
OA3: Describe mechanisms related with inter-process communication and syncronization
OA4: Describe memory management models in multiprogramming systems and compare related algorithms. Explain virtual memory management methods
OA5: Describe the I/O principles
OA6: Explain the most common file system implementation issues
OA7: Identify OS security mechanisms and describe types of security attacks, and protection methods
OA8: Use the command line to work on a remote linux server; program shell script; use processing text and administration related commands
OA9: Program at the system level, using the OS functionalities and considering both sequential and concorrent programming
CP1: Introduction to Operating Systems
Processes
CP2: - Processes and threads
CP3: - Process scheduling
CP4: - Process syncronization. Semaphors
CP5: - Interprocess comunication
Memory Management
CP6: - Memory management models and algorithms
CP7: - Virtual Memory
CP8: Input / Output
CP9: File Systems
CP10: Administration and security issues
Case study: Linux
CP11: - shell commands and shell programming
CP12: - Communication and syncronization mechanisms
The working method includes the following guidelines:
- emphasis on the understanding of the key OS concepts and on relating these concepts with student practice and work
- strong liaison between theory and practice / laboratory work
- practice and laboratory work as the driver to consolidation of student skills and knowledge
|
This course uses a periodical evaluation, not allowing a single final exam.
Evaluation components:
* TRAB (12.5% x 3): group work performed in 3 stages
* TPC (12.5%): 9 home questionaries, counting only the best 8
* PE (50%): Written exam performed during the evaluation periods
Requirements: Trab+TPC >= 9.5, PE >= 7 valores
grade of TRAB+TPC limited to grade(PE) + 6
Further information in "Observações"
Title: - José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues (2012), Sistemas Operativos, 2ª edição, FCA, ISBN: 978-9-727-22756-3
- Andrew Tanenbaum, Herbert Bos (2014), Modern Operating Systems, 4th Edition, Pearson Prentice-Hall, ISBN: 978-1-292-06142-9
Authors:
Reference:
Year:
Title: - Andrew Tanenbaum, Albert Woodhull (2006), Operating Systems Design and Implementation, 3rd edition, Prentice-Hall, 2006, ISBN: 978-0-131-42938-3
- Paulo Trezentos, Susana Nunes (2008), Linux para PCs, 3ª edição, FCA, ISBN: 978-972-722-603-0
- Paulo Trezentos, António Cardoso (2006), Fundamental do Linux, 3ª edição, FCA, ISBN: 978-972-722-514-9
- William Stallings (2018), Operating Systems Internals and Principles, 9th edition, Pearson, ISBN-13: 978-0-134-70006-9
- Abraham Silberschatz, Peter Galvin, Greg Gagne (2018), Operating System Concepts, 10th edition, Wiley, ISBN: 978-1-119-32091-3
- Abraham Silberschatz, Peter Galvin, Greg Gagne (2014), Operating Systems Concepts Essentials, 2nd edition, Wiley, ISBN: 978-1-118-84397-0
Authors:
Reference:
Year:
Databases
To provide students with solid knowledge on core subjects in the area of conventional databases (database systems supported by relational models), namely: relational schema design and queries supported by the SQL language.
PC1 - Relational schema design
PC2 - UML - Class Diagram
PC3 - Relational Model
1. Relations and primary keys
2. Foreign Keys and Integrity Rules
3. Optimizations and Indexes
4. Transactions and Concurrency
PC4 - Mapping from a conceptual model to a relational model
PC5 – SQL
1. Simple Querys
2. Agregate Functions
3. SubQuerys
4. Triggers, Stored Procedures and Functions
PC6 – Introduction to PHP/MySQL
I. ASSESSMENT IN REGULAR SEASON
Given the eminently practical nature of this Course, its assessment is based on the realization of the following components:
- Group project, with a pondering of 40% in two phased deliveries;
- Individual written test, with a pondering of 50% - to be accomplished on the date of the 1st period; and
- Four online mid-term tests, with a weighting of 10% - to be carried out during the semester.
Condition for approval: minimum grade of 8.00 points, without rounding for the project and the test.
If the student fails or does not reach the minimum mark in the written individual test, he may use the 2nd period date to repeat this evaluation component. For the project component and mid-term tests online there is no possibility of further deliveries or repetitions.
In exceptional situations of missing the 1st period date for the written individual test, the student may use the 2nd period date to perform the test. These cases will be subject to previous verification and acceptance with the services.
Students who wish to improve their grade may improve the written individual test, to be held in the 2nd season. None of the other components may be improved.
II. ASSESSMENT IN SPECIAL SEASON
The students who fulfill the conditions to be admitted in the Special Season, will have the following evaluation components:
- Individual or group project, with a weighting of 50% - to be handed in on the official assessment date of Special Season;
- Individual written test, with a weighting of 50% - to be handed in on the official assessment date of the Special Season
The project will have the same structure of the project done in the regular season, however, differs the theme, that will be proposed by the students to the teacher for approval. The project size requirements will be proportional to the number of students in the group. The maximum size of the group, the metrics related to the size and the deadlines will be published in a specific statement made available on the e-learning platform.
Also the students who use the Special Season are required to have a minimum score of 8.00 (without rounding) in each of the assessment components.
Title: Ramos, Pedro, Desenhar Bases de Dados com UML. Conceitos e Exercícios Comentados - 2ª Edição, Edições Sílabo, 2012, 978-972-618-474-4,
Gouveia, Feliz, Bases de Dados: Fundamentos e Aplicações - 2ª Edição Aumentada, FCA, 2021, 978-972-722-901-7,
Damas, Luís, SQL - Structured Query Language - 14ª Edição, FCA, 2017, 978-972-722-829-4,
Authors:
Reference:
Year:
Title: Ramakrishnan, Raghu & Gehrke, Johannes, Database Management Systems - 3rd Edition, McGrawHill, 2002, 978-007-246-563-1,
Booch, Grady; Rumbaugh, James & Jacobson, Ivar, The Unified Modeling Language User Guide - 2nd Edition, Addison-Wesley, 2005, 978-032-126-797-9,
Alturas, Bráulio, Introdução aos Sistemas de informação Organizacionais, 2ª Edição, Edições Sílabo, 2022, 978-989-561-265-9,
Authors:
Reference:
Year:
Probabilities and stochastic processes
At the end of this course the student should be able to:
LG1. Understand the axiomatic and main theorems of probabilities.
LG2. Understand and use the RV concept.
LG3. Know the most important probabilities distributions.
LG4. Understand and identify a stochastic process.
LG5. To know the main laws of probability theory.
LG6. To create, computationally, distribution functions and RV. To obtain numerical solutions for statistically formulated problems.
1) Counting and Probabilities.
1a) Kolmogorov's axiomatic.
1b) Random Variables unidimensional and multidimensional.
1c) Moment-generating function
2) Central Theorems
2a) Markov and Chebyshev inequalities.
2b) Law of large numbers.
2c) Central limit theorem.
3) Stochastic Processes
3a) Discrete stochastic processes. Poisson process.
3b) Continuous stochastic processes. Brownian motion.
3c) Markov chains
3d) Simulation, applications and algorithms
-Main evaluation (ME):
-- Periodic assessment consist of two terms, 1st term (60%) and 2nd term (40%), minimal grade for both terms is 8.0
-- Exam assessment, exam (100%) , at any exam evaluation period
- Optional evaluation (OE): Elaboration of the small project/study with maximal mark of four (4.0) points.
- In the case of the approval on ME the final grade (FG) is calculated by formula: min{20, ME+OE}
- Students with grade equal or greater than 17 that have zero on OE can be called to additional oral examination. The grade in this case is calculated as max{17,NPO}, where NPO (value between 17 and 20) is the grade of oral examination. In case the student misses oral examination the final grade is 17.
Title: Ross, S. M. Introduction to Probability and Models 11th edition, Academic Press, 2014.
Morais M.C., Probabilidades e Estatística, Teoria, Exemplos e Exercícios, IST Press, 2020.
Material pedagógico que aparecerá regularmente no elearning.
Authors:
Reference:
Year:
Title: Durrett, R.G., Essentials of Stochastic Processes (3rd ed.), Springer, 2016.
Krishnan, V., Probability and Random Processes, Wiley, 2015.
Montgomery, D. Runger, G.C., Applied Statistics and Probability for Engineers. Wiley& Sons, 2003.
Authors:
Reference:
Year:
Object Oriented Programming
At the end of the term the student should be able to:
OA1. Use an object oriented programming language to design, implement, test and debug small applications.
OA2. Understand and apply the concepts of encapsulation, abstraction, inheritance and polymorphism.
OA3. Know how to use the fundamental data structures of a standard library (stacks, queues, trees, hashtables).
OA4. Apply error-control mechanisms.
OA5. Explain the utility of design patterns and demonstrate their usage in simple cases.
CP1. Packages and encapsulation
CP2. Reading and writing files
CP3. Exceptions and error handling
CP4. Polymorphism and interfaces
CP5. Anonymous classes and lambdas
CP6. Inheritance
CP7. Collections and generic classes
CP8. Introduction to design patterns
The assessment can be carried out in one of the following ways:
Mode A:
- Exercises carried out in class (20%, groups of 2 or individual)
- Written test in the middle of the semester (30%, individual, minimum grade of 7 val.)
- Project (50%, groups of 2 or individual)
Mode B:
- Written test in the middle of the semester or in the special season (50%, individual, minimum grade of 7 val.)
- Project (50%, groups of 2 or individual)
Regardless of the modality followed, the grade for the "Project" component is limited by the performance demonstrated individually in an oral discussion, in accordance with the following rule:
- Very good performance - no limit;
- Good performance - limit of 16 val.
- Sufficient performance - 12 val limit.
- Poor performance in the discussion - fail in the course.
Given the practical nature of the UC, there is no need for assessment by exam.
Assessment in a special period follows modality B.
Grade improvement can only be done by repeating the evaluation in the following year.
Title: Folhas de apoio disponíveis no e-learning.
Y. Daniel Liang, "Introduction to Java Programming: Comprehensive Version" 10th Ed. Prentice-Hall / Pearson, 2015.
Authors:
Reference:
Year:
Title: F. Mário Martins, "Java 8 POO + Construções Funcionais",
FCA - Editora de Informática, 2017. ISBN: 978-972-722-838-6 (portuguese)
Ken Arnold, James Gosling e David Holmes, "The JavaTM Programming Language", 3ª edição, Addison-Wesley, 2000.
ISBN: 0-201-70433-1
Bruce Eckel, "Thinking in Java", 3ª edição, Prentice Hall, 2002. ISBN: 0-13-100287-2
Gamma, Helm, Johnson & Vlissides (1994). Design Patterns. Addison-Wesley. ISBN 0-201-63361-2.
Java resources at http://java.sun.com;
(tutorials and Java Aplication Programming Interface)
Authors:
Reference:
Year:
Theory of Computation
After the course the student will be able to:
1. Interpret and formulate precise definitions;
2. Analyze the logical consequences of the definitions;
3. Describe various computational models and their limitations;
4. Describe languages using grammars;
5. Solve computational problems using computational models learned;
6. Handle learned formalisms in building lexical and syntactic analyzers.
I Mathematical Notation and proof techniques
Mathematical Objects: sets, functions, relations and languages; Logic, proofs and the principle of mathematical induction.
II Finite Automata and Regular Languages
Regular languages and regular expressions. Deterministic and nondeterministic finite automata. Regular languages recognition.
III Pushdown Automata and Context-free Languages
Context-free languages context-free grammars. Pushdown automata. Context-free languages recognition.
IV Turing Machines and Recursively Enumerable Languages
Recursively enumerable languages. Turing Machines. Church-Turing Thesis.
I Periodic evaluation: 10 weekly online mini evaluations (10%)and two individual evaluations (90%). It is mandatory to make at least 7 online evaluations. Class attendance is not compulsory.
or
II Final Examination.
Title: F. Santos, Teoria da Computação - Exercícios, ISCTE-IUL, 2015.
F. Santos, Teoria da Computação - Folhas de Apoio, ISCTE-IUL, 2013.
J. Martin, Introduction to Languages and the Theory of Computation, McGraw-Hill, (3ª edição)2003, (4ª edição) 2011.
Authors:
Reference:
Year:
Title: D. Mandrioli e C. Ghezzi, Theoretical Foundations of Computer Science, John Wiley, 1987
J. Hopcroft, R. Motwani e J. Ullman, Introduction to Automata Theory, Languages and Computation, Addison Wesley, 2001.
N. Cutland, Computability: An Introduction to Recursive Function Theory, Cambridge University Press, 1980.
Authors:
Reference:
Year:
Mathematical methods for computation
At the end of this course the student should be able to:
LG1. Determine the Fourier series representation of some functions.
LG2. Determine both discrete and continuous Fourier transforms.
LG3. Know and apply some basic properties of Fourier series and transforms.
LG4. Apply the previous techniques (LG1-LG3) in the context of signal/image processing and compression.
LG5. Implement in python (numpy) concrete examples of the previous applications.
LG6. Determine basic neural network architectures and apply them in problems of classification.
LG7. Apply numerical optimization algorithms in the context of problems in machine learning with neural networks.
LG8. Implement in python (Keras) the techniques described in the previous points.
LG1. Complex numbers and inner product.
1.1. Complex numbers
1.2. Complex functions of a real variable.
1.3. Inner product and orthogonality.
1.4. Linear regression; implementation in python.
LG2. Fourier analysis and applications.
2.1. Fourier series.
2.2. Fourier transform.
2.3. (continuous) Convolution.
2.4. Filters; implementation in python.
LG3. Discrete Fourier transform.
3.1. The discrete Fourier transform and FFT.
3.2. Discrete convolution.
3.3. Dynamic programming.
3.4. Wavelets and JPEG.
3.5. Image processing; implementation in python.
LG4. Neural Networks:
4.1. Basic architectures, activation functions and cost functions.
4.2. Regression and classification problems.
4.3. Universal approximation theorems.
4.4. Numerical optimization: gradient descent and variants.
4.5. The Backpropagation algorithm.
4.6. Image recognition; implementation in python (Keras).
Students must obtain an overall grade of at least 10 (out of 20) in one of the assessment modes:
- Periodic assessment v1: 4 tests (75%) + 4 mini-projects (25%), or
- Periodic assessment v2: exam in the 1st examination period (75%) + 4 mini-projects (25%), or
- Exam (100%) in either the 1st or 2nd examination period.
- In the periodic assessment v1, there is a minimal grade requirement of 8.0 out of 20 in the average of each of the pair of tests T1+T2 and T3+T4.
- In the periodic assessment v2, there is a minimal grade requirement of 8.0 out of 20 in the exam.
- In the periodic assessment v1, students may take 1 of the tests, and only one, during the 1st examination period. In case they miss 2 or more tests they'll be excluded from this type of evaluation.
- The mini-projects are group projects. The groups should be composed, ideally, by 4 students. Some mini-projects might exhibit a competitive component; in that case, part of the corresponding grade will reflect the relative classification of each group in the corresponding competition.
- The presentation of extra credit work through the resolution of the "desafios" (challenges) that will be proposed throughout the semester may lead to a final grade increment of up to 1 unit.
- Grades higher or equal to 19, in either of the previous evaluation systems, are subject to further examination to "defend the grade".
Title: - João L. Costa, Slides da cadeira.
Authors:
Reference:
Year:
Title: - Boggess, A. and Narcowich, F. J., "A First Course in Wavelets with Fourier Analysis", Wiley, 2009.
- Rousseau, C and Saint-Aubin, Y., "Mathematics and technology", Springer 2008.
- Calin, O., "Deep Learning Architectures: A Mathematical Approach", Springer Series in the Data Sciences, 2020.
- Chollet, F., "Deep Learning with Python", Manning Publications, 2017.
Authors:
Reference:
Year:
Information System Design and Development
O1. Identify the ISDD requirements, main phases and activities;
O2. Transform the requirements in technical specifications and IS models;
O3. Use IS modelling tools;
O4. Use Low-Code implementation technologies and introduction to services for the implementation of SI, Application Programming Interfaces with REST protocols;
O5. Build teamwork experience in the context of carrying out the ISDD project, developing the skills of discussion, tolerance, acceptance and respect for the opinions of the colleagues (soft skills);
O6. Co-build solutions based on critical thinking, creative problem solving, collaboration, critical observation, negotiation and collaborative decision making;
O7. Apply strategies for proposing reflected solutions, autonomous work based on the search for solutions and sustained construction of argumentation;
O8. Develop the skills of oral and written communication and technical discussion of the work.
P1. Introduction to the Information System (IS) Design and Development;
P2. Lifecycle of Development of IS;
P3. Requirements analysis for the design and development of IS;
P4. Specification and design of IS, UML diagrams;
P5. Process modelling in the context of IS;
P6. Low-Code implementation technologies;
P7. Integration technologies in the context of IS: Service-Oriented Architectures, API and REST;
P8. Service-Oriented Computing in the context of IS.
The assessment in the course unit is exclusively done by continuous evaluation through a project: the individual grade results from the evaluation of the interim reports, final report, assessment of the student's performance throughout the semester (involvement in weekly discussions, in his/her capacity for exposition and technical discussion, oral discussion) and a brief individual questionnaire, in the following way:
- Individual questionnaire: 20%
- Phase 1 of the project (delivery, weekly discussions, oral): 30%
- Phases 2 and 3 of the project (delivery, weekly discussions, oral): 50%
Attendance at 80% of weekly meetings is mandatory. There is no assessment by exam and the special period is a complement to continuous assessment, if necessary.
Title: Whitten, J.L. and Bentley, L.D., Systems Analysis and Design Methods, McGraw-Hill, USA, 7th edition, 2007.
Avison, D. and Fitzgerald, G., Information Systems Development: methodologies, techniques, and tools, McGraw-Hill Education ? Europe, 4th ed., 2006.
Seidl, Martina et al., UML@Classroom: An Introduction to Object-Oriented Modeling, Springer, 2012.
Brambilla, Marco et al., Model-Driven Software Engineering in Practice, Morgan & Claypool Publishers, 2012.
Magal, R. S. and Word, J., Essentials of Business Processes and Information Systems, John Wiley & Sons, Inc., USA, 2009.
Erl, T., Service-Oriented Architecture: Analysis and Design for Services and Microservices, Pearson Education, Prentice Hall, USA, 2nd ed., 2019.
Hohpe, G. and Woolf, B., Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, Addison-Wesley, 2004.
Gold-Bernstein, B. and Ruh, W., Enterprise Integration: The Essential Guide to Integration Solutions, Addison-Wesley, 2005.
Authors:
Reference:
Year:
Title: Modelling information system processes: https://www.modeling-guidelines.org/
Modelling processes and UML with Signavio tutorials:
http://elearning.uml.ac.at/quiz
https://documentation.signavio.com/suite/en-us/Content/workflow-accelerator/userguide/tutorials/intro.htm
https://documentation.signavio.com/suite/en-us/Content/process-manager/userguide/intro.htm
https://www.signavio.com/video/signavio-tutorial-videos/
https://www.signavio.com/bpmn-introductory-guide/
https://documentation.signavio.com/pdfs/en/Process-Manager-User-Guide-en.pdf
https://www.uml.org/
Schmuller, Joseph.; Sams Teach Yourself UML in 24 Hours, 3rd Edition, Sams Publishing, 2004.
Fowler, M.; UML Distilled, Third Edition, Addison-Wesley, 2004.
Booch, Grady, Rumbaugh, James, Jacobson, Ivar; The Unified Modeling Language User Guide, Second Edition, Addison-Wesley, 2005.
Dennis, A., Wixom, B. H., Tegarden, D.; System Analysis and Design UML Version 2.0, John Wiley and Sons, 2009.
Arlow, J., Neustadt, I.; UML2 and the Unified Process, Second edition, Addison-Wesley, 2005.
Implementing systems with OutSystems low-code:
https://success.outsystems.com/Documentation
https://www.outsystems.com/training/paths/18/becoming-a-reactive-web-developer/
https://www.outsystems.com/training/courses/123/modeling-data/
https://www.outsystems.com/training/courses/128/modeling-data-relationships/
https://www.outsystems.com/training/courses/116/integrating-with-web-services/
https://www.outsystems.com/training/courses/184/modeling-business-processes/
https://www.outsystems.com/training/paths/16/becoming-a-front-end-developer-in-outsystems/
https://www.outsystems.com/training/courses/124/reactive-ui-development-101/
https://www.outsystems.com/training/courses/129/building-reactive-web-forms/
https://www.outsystems.com/training/courses/130/form-validations/
Authors:
Reference:
Year:
Algorithm Design and Analysis
To succeed in this course the student should be able to:
OA1- Identify the most suited strategies for the problem to be solved.
OA2- To design and implement the needed algorithms for the intended solution.
OA3- Analyse the complexity of diverse algorithms and understand what are the implications of its usage in real problems.
OA4- Understand the implications of using algorithms or heuristic aproximations.
The syllabus contents are:
CP1- Analysis of algorithms and Complexity theory: amortized cases and approximation algorithms.
CP2- Algorithm design techniques: Greedy, Iterative, Incremental, Divide-and-conquer, Dynamic programming, Randomization.
CP3- Graphs: representation, spanning trees, traversals, shortest paths, maximum flow algorithms.
Periodic assessment: E x 0.20 + T x 0.60 + M x 0.20 = 100%
(a) Weekly exercise assignments (E):
- Subject up to the last lesson given.
(b) Tests (T):
- 2 individual written tests (equally weighted);
- 1st test: in the mid-term week;
- 2nd test: on the day of the first exam.
(c) Mini-projects (M):
- 2 mini-projects (equally weighted);
- Performed in a group of 2 students.
Exam: 1st, 2nd and Special Seasons = 100%.
Title: Cormen, Thomas, Charles Leiserson, Ronald L. Rivest and Clifford Stein (2022), Introduction to Algorithms. 34th ed., MIT Press.
John Kleinberg Eva Tardos (2005) Algorithm Design, Addison-Wesley.
Tim Roughgarden (2022). Algorithms Illuminated: Omnibus Edition. Cambridge: CUP.
Authors:
Reference:
Year:
Title: David Williamson, David Shmoys (2010) The Design of Approximation Algorithms, Cambridge University Press.
Authors:
Reference:
Year:
Fundamentals of Computer Networks
OA1: identify and distinguish various layered reference models
OA2: identify and describe the main functionalities of each layer of the OSI and TCP/IP reference models
OA3: be able to solve problems and study cases for each of the first three layers of the OSI reference model
OA4: be able to conduct experiments, record and analyze their results and assess the behavior and performance of different technologies
OA5: be able to assess the performance of different technologies using analytic and simulation tools.
CP1. Introduction to computer networks
a. Classification of networks and their technologies
b. Services, protocols and reference models (OSI and TCP/IP)
CP2. Physical layer
a. Physical medium characteristics and impairments
b. Multiplexing and switching
CP3. Data link layer
a. Data link layer core functionalities
b. Error and flow control protocols and their performance
c. The IEEE 802 protocols
d. Interconnection of local area networks (VLANs and STPs)
CP4. Network level
a. Routing and forwarding. Architecture of a router.
b. The IPv4 protocol (packets, routing, fragmentation)
c. Addressing in IPv4 and IPv6 protocols. NAT.
d. Routing algorithms
e. Network interconnection. RIP, OSPF, and BGP routing protocols.
f. Key Internet protocols: ICMP, ARP and DHCP.
There are two modes:
1. Periodic evaluation:
- One written test carried out during the exam season with a minimum mark of 8.0 (in 20) - (45%)
- Eight lab experiments in group - (20%)
- One practical work in a group - (25%)
- Eighth mini-tests online - (10%)
2. Exam evaluation:
The exam has a written part (50%) with a minimum mark of 8 (in 20) and a practical part (50%). The written and practical parts should be done in the same exam season.
Title: * Computer Networks: A Systems Approach; Larry Peterson, Bruce S. Davie; Morgan Kaufman, 2021 (6th edition).
Authors:
Reference:
Year:
Title: * Computer Networking: A Top-Down Approach; James F. Kurose, Keith W. Ross; Pearson Education, 2021 (8th edition).
* Computer Networks; Andrew S. Tanenbaum; Pearson, 2021 (6th edition)
* Internetworking with TCP/IP Volume 1: Principles, Protocols, and Architectures; Douglas E. Comer; Prentice Hall, 2013 (6th edition)
* Local Area Networks; Gerd Keiser; MacGraw Hill, 2002 (2nd edition)
* Data Networks; Dimitri P. Bertsekas and Robert Gallager; Prentice Hall, 1992 (2nd Edition)
* Data and Computer Communications; William Stallings; Prentice Hall, 2013 (10th edition)
Authors:
Reference:
Year:
Artificial Intelligence
After completing the course, students should
(LO1) be aware of the advantages and challenges of using and developing AI based systems and models, in particular search algorithms, knowledge representation and reasoning, approaches for adaptive systems, and machine learning;
(LO2) be capable of identifying the requirements of the systems and models to create;
(LO3) be capable of choosing and the approaches more suited to the LO2 requirements
(LO4) mastering and usage of the approaches presented in the course for system development and world modelling
After completing the course, students should
(LO1) be aware of the advantages and challenges of using and developing AI based systems and models, in particular search algorithms, knowledge representation and reasoning, approaches for adaptive systems, and machine learning;
(LO2) be capable of identifying the requirements of the systems and models to create;
(LO3) be capable of choosing and the approaches more suited to the LO2 requirements
(LO4) mastering and usage of the approaches presented in the course for system development and world modelling
Continuous Evaluation:
- 2 Tests (30% + 40%), minimum grade of 8.5 in each test
- 1 Project (20%)
- 8 classroom exercises (the best 6 will be considered). (10%)
Final evaluation:
- 2 Exams + Special Season, each weighing 100%
The tests and the Exams may have groups of questions with a minimum grade
To access the tests and exam, it is necessary to complete all activities related to the covered topics up to this moment on Moodle.
Students may be required to explicitly enroll in any of the evaluation components
Title: A cadeira assenta fundamentalmente nos apontamentos para as aulas sobre Sistemas Baseados em Conhecimento, e nos livros [Russell e Norvig 2003] sobre Inteligência Artificial, [Clocksin e Mellish 1994] sobre Prolog, e [Graham 1996] sobre LISP.
Clocksin, W.F. e Mellish, C.S. 2003. Programming in Prolog Using the ISO Standard(Quinta Edição). Springer Verlag (existe na biblioteca, embora seja a quarta edição).
Russell, S.; e Norvig, P. 2003. Artificial Intelligence: a Modern Approach, Prentice Hall. Capítulos 3 a 9. (existente na biblioteca).
Graham, P. 1996. ANSI Common Lisp. PrenticeHall.
Authors:
Reference:
Year:
Title: Linguagem de Programação Prolog
Bratko, I. 1990. Prolog Programming for Artificial Intelligence. Addison Wesley Publishing Company (existente na biblioteca).
Lógica de Predicados e Forma Clausal
Michael R. Genesereth, Nils J. Nislsson. 1987. ?Logical Foundations of Artificial Intelligence?. Morgan Kaufman Publishers (Capítulos 2, 3 e 4)
Sistemas Baseados em Conhecimento (Perspectiva teórica)
- Ronald Brachman, Hector Levesque. 2004. "Knowledge Representation and Reasoning". Morgan Kaufmann
- Mark Stefik. 1995. Introduction to Knowledge Systems?. Morgan Kaufmann
Authors:
Reference:
Year:
Multiparadigm Programming Project
Upon successful completion of this curricular unit, the student will be able to:
LO1: understand the principles of functional programming;
LO2: write purely functional programs;
LO3: understand the benefits of functional paradigm characteristics compared to other programming paradigms;
LO4: design and implement multi-paradigma applications (with an interactive component) of medium dimension;
LO5: work as a team.
The program contents (PC) are:
PC1: Introduction to the functional paradigm in programming and its fundamental concepts;
PC2: Advanced concepts of functional programming;
PC3: Introduction to essential technologies to support team programming;
PC4: Event-driven programming;
PC5: User interface patterns;
PC6: Integration of multi-paradigm programs;
Periodic Assessment with Individual Written Test (WT) during the assessment period and, Project (PRJ) in work group with 2 deliveries (during the academic period), discussion, and individual evaluation of the PRJ.
The possible classifications in the individual assessment are A, B, or C, defining the PRJ grade (pg):
A- pg = to the PRJ classification
B- pg = to 80% of the PRJ classification
C- implies failing the UC
Final classification:
40%WT + 60%pg
A minimum score of 9.5 (out of 20) in both WT and pg
There is no exam evaluation
Attendance is not used as an evaluation measure
Students who do not get the minimum grade in the project (or do not deliver it) cannot access the individual written test, automatically failing UC.
In case of failure in the 1st season assessment, the student can repeat the written test in the 2nd season assessment (and in the special season assessment if having access to it), keeping the Project grade.
It is not possible to improve the project's grade between the 1st and 2nd season assessments.
The mandatory minimum grade of the project also applies to the special season. If the student successfully obtains the project's minimum grade during the course's teaching period, the corresponding grade will be considered for the special season. Otherwise, the student must deliver the project and perform its discussion on the dates that will be scheduled.
Title: Backfield, J. (2014). Becoming Functional: Steps for Transforming Into a Functional Programmer. ISBN 978-1449368173.
Chiusano, P., & Bjarnason, R. (2014). Functional Programming in Scala. ISBN 978-1617290657.
Wampler, D., & Payne, A. (2015). Programming Scala: Scalability = Functional Programming + Objects. ISBN 978-1491949856
Schildt, H. (2015). Introducing JavaFX 8 Programming. ISBN 978-0071842556.
Tidwell, J., Brewer, C., & Valencia, A. (2020). Designing Interfaces: Patterns for Effective Interaction Design. ISBN 978-1492051961.
Authors:
Reference:
Year:
Title: Hutton, G. (2007). Programming in Haskell. ISBN 978-0521692694.
Coplien, J. O. (1998). Multi-Paradigm Design for C++. ISBN 978-0201824674.
Authors:
Reference:
Year:
Autonomous Agents
The course introduces the concepts and practical knowledge necessary to use and develop software agents that, immersed in an open mixed agent and human society, autonomously control their behaviour and communicate with users and other agents.
After completing the course, students should
(LO1) be aware of the advantages and challenges of using and developing agents situated in a society of human actors and other artificial agents;
(LO2) be capable of identifying the requirements pertaining to the agents to be developed, in terms of agent roles and communication;
(LO3) be capable of choosing and implementing the approaches more suited to autonomously controlling their behaviour, bearing in mind the requirements LO2
(LO4) master the agent communication language and the content language used in agent communication
(LO5) Knowing the coordination mechanisms for social agents, bearing in mind the user goals.
(S1) Autonomous agents and agent societies: definitions, agent characteristics, (time persistence, autonomy and adaptation)
(S2) Conceptual analysis of agent societies (required skills / services, agent roles, communication requirements)
(S3) Service discovery, composition and provision in an agent society
(S4) Autonomous behaviour control approaches: planning algorithms, and production rules
(S5) Agent communication (communication language and content language)
(S6) Agent platform, agent development software
Periodic evaluation along the class period (100% of the final grade): two tests + optional mini project
Observation: No element of the periodic evaluation duringthe class period will be considered in the exams.
Tests:
* Each test has a minimum grade of 8 points
* Grade in the compound of the two tests (TESTS): 60% x Max(T1, T2) + 40% Min(T1, T2), in which Ti is the grade in test i
Optional Mini Project (groups of 3 or 4 students)
*First stage: initial submission of the work. Mini project grade (MINPROJ): 0, 1, or 2 points. The grade is the same for all elements of the group
*Second stage (presentation in the Autonomous Agents seminars)
The N best projects are selected for presentation in the Autonomous Agents Seminars. N, which depends on contextual factors, will be defined in each UC incarnation.
Exceptional presentations may yield 1 additional point for the mini project grade (MINPROJ). This potential improvement will cover all group students involved in the presentation.
The mini project grade (MINPROJ) cannot decrease with the presentation.
Student grade along the semester class period: Min(20, TESTS + MINPROJ)
Exam evaluation: three exam dates. Each exam has 100% weight. The usual Iscte rules apply for grade improvement
Observation: no element of the periodic evaluation along the class period will be considered in the exams
Title: Course Notes + Course Software
Agent Platform and Software
Course Notes
Agent Communication:
Course notes + course software
Control mechanisms: Planning and Production Rules
Course notes
Conceptual analysis of agent societies. Service discovery, composition and provision
Course notes
Autonomous agents and agent societies
Authors:
Reference:
Year:
Title: FIPA. 2000. FIPA Communicative Act Library Specification. http://www.fipa.org/specs/fipa00037/SC00037J.pdf
Agent Communication:
Nils Nilsson. 1982. Principles of Artificial Intelligence. Springer-Verlag Berlin Heidelberg
Control mechanisms: Search, Planning and Production Rules
Kouichi Matsuda. 2004. Personal Agent-Oriented Virtual Society. Advanced Knowledge International. ISBN-10: 0975100432. ISBN-13: 978-0975100431
Autonomous Agents and Agent Societies
Authors:
Reference:
Year:
Network Architectures
OA1 - Understand the operation of networks in an integrated manner, identifying and implementing different solutions to support applications and services.
OA2 - Know, distinguish and evaluate different protocols and services available for end-to-end communication and communication between applications over the network.
OA3 - Understand the architecture of the transport network, software defined networks and mobility. Be able to distinguish and evaluate different architectures.
OA4 - Know the different approaches and solutions for multimedia networks and multicast. Be able to distinguish and evaluate different existing techniques for them.
OA5 - Configure different network architectures, identifying and implementing different solutions in an integrated manner. Detect and correct errors in their configuration.
CP1 - Network interconnection. Interconnection and routing in IP networks. NAT. Routing Protocols: OSPF and BGP. Router architecture. IPv6 networks. Mobility: architectures.
CP2 - End-to-end communication. Addressing and multiplexing. UDP and TCP protocols. TCP connection management. Flow control and congestion control.
CP3 - Transport networks. Software defined and configured networks: SDN architecture, OpenFlow, NFV. Mobility: architectures and routing.
CP4 - Network services and applications. Communication models. Protocols definition in ABNF and ASN1. Name services: DNS, etc.; Electronic mail; WWW Architecture. Server infrastructures. Content distribution networks, GSLB.
CP5 - Multimedia Networks. Architectures and addressing. IGMP and multicast. Protocols DVMRP, PIM, MOSPF. Multimedia applications. Architectures for streaming. VoIP. Protocols RTSP, RTP, RTCP, SIP. Scaling and policing. Integrated services. RSVP. Differentiated services.
Summary of the evaluation process.
Periodic Evaluation and 1st Period:
30% - 1st written test (CP1 and CP2), and a 35% - 2nd written test (CP3, CP4, and CP5), with a minimum score of 8 out of 20 in the weighted rounded average of the written tests.
35% - 5 laboratories (with a weight of 9%, 9%, 7%, 5%, 5%, by decreasing order of marks per laboratory) with a minimum score of 8 out of 20 in the weighted rounded average of the laboratories.
or
100% - written test (CP1 to CP5)
Season 2 Evaluation
65% - written test (CP1 to CP5), with a minimum score of 8 out of 20.
35% - 5 laboratories attended during the semester (with a weight of 9%, 9%, 7%, 5%, 5%, by decreasing order of marks per laboratory), with a minimum score of 8 out of 20 in the weighted rounded average of the laboratories.
or
100% - written test (CP1 to CP5)
Special Season Evaluation
100% - written test (CP1 to CP5)
Title: Computer Networking: A Top-Down Approach Featuring the Internet, James F. Kurose, Keith W. Ross, Addison Wesley.
Acetatos e outro material de apoio na plataforma de e-Learning
Authors:
Reference:
Year:
Title: TCP/IP Protocol Suite, Forouzan, McGrawHill
Data Communications and Networking, Forouzan, McGrawHill
Computer Networks and Internets with Internet Applications, Comer, Pearson
Computer Networks, A systems Approach, Peterson & Davie, Morgan Kaufmann
Network Systems Design using Network Processors, Comer, Prentice Hall
High-Speed Networks and Internets: Performance and Quality of Service, Stallings, Prentice Hall
Engenharia de Redes Informáticas, E. Monteiro e F Boavida, FCA
Tecnologia de Sistemas Distribuídos, J Marques e P Guedes, FCA Editora de Informática
TCP/IP Teoria e Prática, Fernando Boavida e MArio Bernardes, FCA Editora de Informática
Computer Networks, Andrew Tanenbaum, Prentice Hall
Authors:
Reference:
Year:
Information Processing
This CU is offered in the last year and, from a pedagogical point of view, the students are to produce a real project (replicating a real working environment) where they are allowed to apply their programming knowledge with more advanced aspects, namely, programming models of randomness, and the implementation of algorithms that consider probabilistic analysis and stochastic processes. The main objective is to show that for the development of complete projects it is necessary to mix several areas of knowledge, The lectures of this UC unfold in tandem with the needs arising from the project development and the contents related to randomness, simplification of analytical expressions, software techniques. IThe student's knowledge is acquired by solving exercises on the theme of randomness, efficient algorithms and programming, and validation techniques. It should be noted that the organization of this UC allows the computer engineering students to develop higher-level projects.
1. Introduction
- Typical real-world application projects that imply a solid knowledge of random programming
- Elementary concepts of random processes in computer engineering
- Requirements for project development
2. Project Planning, Organization and Development
3. Probabilities and random variables;
4. Analytical development of fundamental operations with randomness
5. Simplification of analytic expressions with multiple random processes
6. Construction of system models for project design
7. Implementation and validation of algorithms
The valuation is carried out in two parts. The first part consists of two assignments with pract.l and project prob. and the second part consists of a written exam. Each one of the to assignments with practical problems has a weight of 5% in the final grade, and the project weights 40%, impl. and discu. in the final grade, contributing all together with 50% to the final grade. The other 50% are obtained via an exam grade. In any of the written exams, the minimum pass grade is 10 marks out of 20.
BibliographyTitle: [3] W. L. Martinez and A. R. Martinez, Computational Statistics Handbook with Matlab, Chapman&Hall/CRC, (3rd edition), 2015.
[2] S. M. Ross, Introduction to Probability and Statistics for Engineers and Scientists, John Wiley & Sons, New York, (6th edition), 2021.
[1] D. C. Montgomery and G. C. Runger, Applied Statistics and Probability for Engineers, John Wiley & Sons, New York, (7th edition), 2018.
Authors:
Reference:
Year:
Title: [12] A. B. Carlson, P. B. Crilly, J. C. Rutledge, Communication Systems, 4th Ed., McGraw-Hill, 2002.
[11] D.D. Pestana e S.F. Velosa, Introdução à probabilidade e à Estatística, vol.1, Ed. Fundação Calouste Gulbenkian, 2002.
[10] J.P. Marques de Sá, Applied statistics using SPSS STATISTICA and MATLAB, Springer 2003.
[9] K. Cattermole and J. O´Reilly, Problems of Randomness in Communication Engineering, John Wiley & Sons, 1984.
[8] P. Beckmann, Probability in Communication Engineering, Harcourt, Brace & World Inc., 1967.
[7] A. Papoulis, S. U. Pillai, Probability, Random Variables and Stochastic Processes, 4th Ed., McGraw-Hill, 2002.
[6] B. J. Murteira, C. S. Ribeiro, J. Andrade e Silva e C. Pimenta. Introdução à Estatística, Mcgraw-Hill, Lisboa, 2002.
[5] B. J. Murteira. Probabilidades e Estatística, vol. I e II, Mcgraw-Hill, Lisboa, 1990 (2a edição).
[4] P. L. Meyer. Probabilidades. Aplicações à Estatística, Livros Técnicos e Científicos Editora S.A., Rio de Janeiro, 1981.
Authors:
Reference:
Year:
Concurrent and Parallel Programming
After having completed this course unit, the student should be able to:
OA1. Know how to program using the paradigm of event programming.
OA2. Graphical user interfaces programming. GUIs in Java - Swing.
OA3. Understand the problems involved in accessing shared resources.
OA4. Understand how to coordinate threads and understand the main problems associated with coordination like deadlocks, livelocks and starvation.
OA5. Know the main programming patterns for the coordination of threads.
OA6. Understand the classic architectures and some algorithms from the distributed programming paradigm.
CP1. Introduction.
CP2. Java Swing
CP3. Introduction to threads. Life cycle of the threads.
CP4. Synchronization, locks.
CP5. Process coordination.
CP6. Deadlocks, starvation and livelocks.
CP7. Classical problems of concurrency.
CP8. High-level concurrency objects
CP9. Network programming
CP10. Distributed Programming Architectures
The course is organized in two types of classes: theoretical and practical. In theoretical classes, theory is interleaved with examples and exercises. In practical classes students should solve a set of problems. In addition to the work performed during classes, students are expected to have ~6 hours of weekly autonomous work to complete exercises and implement the final project.
|
Registration for the written tests is mandatory.
The evaluation is based on a project and a final exam.
The project has two evaluation fases, mid-term delivery and a final oral examination.
The possible grades in the Individual Project are (A, B, C, D). The project grade has no weight in the final grade, but it defines an upper bound for it:
A-max. 20
B-max. 16
C-max. 12
D-failing the course
Final grade is only given by the exam's classification.
Title: Introduction to Java Programming, Y. Daniel Liang, 2009 Pearson.
Foundations of Multithreaded, Parallel, and Distributed Programming, Gregory R. Andrews, 1999 Addison Wesley
Principles of Concurrent and Distributed Programming, M. Ben-Ari, 2006 Addison Wesley
JAVA Threads, Third Edition, Scott Oaks & Henry Wong, 2004 O'Reilly.
Authors:
Reference:
Year:
Title: http://download.oracle.com/javaee/5/tutorial/doc/
Tutorial for J5EE:
http://download.oracle.com/javase/tutorial/index.html
Tutorial for J6SE:
Authors:
Reference:
Year:
Development for Internet and Mobile Apps
After finishing this unit a student should be able to:
LG1. Know and understand basic concepts and technologies for web development.
LG2. Know client-side concepts and apply the adequate technologies for client-side web development.
LG3. Know server-side concepts and apply the adequate technologies for server-side web development.
LG4. Know how to integrate client-side and server-side development into a coherent model for performing typical tasks within a web application.
LG5. Know and understand the main concepts for mobile software development.
LG6. Apply the adequate technologies for mobile software development.
LG7. Know and understand the main concepts for IoT network development.
LG8. Apply the adequate technologies for IoT network development.
CP1 [Introduction]
The history of the Web;
Previous and actual programming languages for the web;
W3C standards;
Client-server architecture;
MVC architecture for the Web.
CP2 [Client-Side Programming]
Main formatting and programming languages for the Web;
Libraries for programming Web applications;
Introduction to security on the client side.
CP3 [Server-Side Programming]
Client/Server architectures;
Database access from Web;
Data model on the website and corresponding database interaction;
Session management;
Introduction to security on the server side.
CP4 [Mobile Programming]
Native cross-platform languages;
Hybrid tools.
CP5 [Internet of Things (IoT)]
Sensors;
Design solutions for IoT networks;
Connected supply chain protocols;
Management of Big Data from IoT;
Programming resources for IoT;
Introduction to security in IoT.
Given the practical nature of the contents, the assessment will encompass a project. Its subject should be aligned with all or part of the syllabus.
Exercises in class (10%).
Project (90%, including teamwork (report and software) ? 40%, and oral exam ? 50%).
All components of the project - proposal, report, software and oral exam, are mandatory. The minimal classification for each component is 10 on a scale of 0 to 20.
There will be a unique deadline for submitting the project, except for students accepted to the special period of assessment, that will be allowed to submit during that period.
Presence in class is not mandatory.
There is no final exam.
Students aiming to improve their classification can submit a new project in the following scholar year.
Title: Rao M. (2018). Internet of Things with Raspberry Pi 3: Leverage the power of Raspberry Pi 3 and JavaScript to build exciting IoT projects. Ed: Packt Publishing. ISBN-10: 1788627407. ISBN-13: 978-1788627405.
Horton J. (2015). Android Programming for Beginners. Ed: Packt Publishing. ISBN-10: 1785883267. ISBN-13: 978-1785883262.
Vincent W. S. (2018). Build websites with Python and Django. Ed: Independently published. ISBN-10: 1983172669. ISBN-13: 978-1983172663.
Dean J. (2018). Web Programming with HTML5, CSS, and JavaScript. Ed: Jones & Bartlett Learning. ISBN-13: 978-1284091793. ISBN-10: 1284091791.
Ryan J. (2013). A History of the Internet and the Digital Future. Ed: Reaktion Books. ISBN-13: 978-1780231129
Authors:
Reference:
Year:
Title: Lambert M. and Jobsen B. (2017). Complete Bootstrap: Responsive Web Development with Bootstrap 4. Ed: Impackt Publishing. ISBN-10: 1788833406. ISBN-13: 978-1788833400.
Freeman A. (2017). Pro Angular. Ed: APress. ISBN-10: 1484223063. ISBN-13: 978-1484223062.
Jones P. (2018). jQuery UI. Ed: CreateSpace Independent Publishing Platform. ISBN-10: 1719389667. ISBN-13: 978-1719389662.
Amundsen M. (2017). RESTful Web Clients: Enabling Reuse Through Hypermedia. Ed: O'Reilly Media
Downey A. B. (2015). Think Python: How to Think Like a Computer Scientist. Ed: O'Reilly Media. ISBN-10: 1491939362. ISBN-13: 978-1491939369.
Authors:
Reference:
Year:
Software Engineering
After having completed this course unit, the student should be able to:
OA1. Apply an engineering process to the production of software;
OA2. Produce software in large groups (>6 developers);
OA3. Apply principles of software engineering such as software requirements analysis, software analysis and design, implementation, testing, code inspection, configuration management, build, delivery and deployment;
OA4. Software product quality assessment and improvement.
CP1 - Software engineering processes
CP2 - Configuration management and build automation
CP3 - Software requirements
CP4 - Software testing
CP5 - Software design
CP6 - Product quality metrics and product improvement
CP7 - Software evolution, delivery and deployment
Periodic Assessment: Practical group project with a weight of 50% (individualized and minimum grade of 9.5 out of 20) and frequency (1º epoch) with a weight of 50% (minimum grade of 9.5 out of 20).
Final exam (100%): 1º epoch, 2ª epoch and special epoch.
Title: - Slides de Engenharia de Software, disponíveis na plataforma de e-learning, à medida que os temas forem introduzidos.
- Software Engineering, Ian Sommerville, 10th Edition, Addison-Wesley, 2016.
- Software Engineering: a Practitioner's Approach, Roger Pressman / Bruce R. Maxim, 8th edition, McGraw-Hill, 2014.
- Refactoring: Improving the Design of Existing Code, Martin Fowler with contributions by Kent Beck, John Brant, William Opdyke and Don Roberts, Object Technology Series, Addison-Wesley, 2000.
- Software Engineering Body of Knowledge (SWEBOK V3.0), IEEE Computer Society Professional Practices Committee, 2014.
- Introdução à Engenharia de Software, Sérgio Guerreiro, FCA Editora, 2015.
- SCRUM - A gestão ágil de projetos, João Paulo Pinto e Christiane Tscharf, FCA Editora, 2019.
Authors:
Reference:
Year:
Title: - Object-Oriented and Classical Software Engineering, Stephen Schach, 8th Edition, McGraw-Hill, 2011.
- The Object Constraint Language: Getting Your Models Ready for MDA, Jos Warmer, Anneke Kleppe, 2nd Edition, Pearson Education, 2003.
- A code of ethics and professional practice for software engineering, ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices, 2004.
Authors:
Reference:
Year:
Human-Computer Interaction
OA1: To master basic concepts on HCI using a given text/paper, being able to interpret it, organize the ideas and present them oraly;
OA2: to be able to define and create a prototype, its interface, defining functionality, usability, target audience, tests and evaluation
OA3: to be able to implement the final iteration of the prototype, in 3D, in the form of an App or in the context of a web page
CP1: Human factors, psychology, interactive systems design; The machine, interfaces for text, position, selection; output; processing
CP2: Interaction techniques, interaction paradigms, screen layout and design, design e layout de ecrãs, color perception and implications
CP3: Task analysis
CP4: Dialog styles; semantics; dialog analysis and design
CP5: Low-fidelity prototyping (lo-fi) versus hi-fi
CP6: Usability
CP7: User models
CP8: Evaluation techniques, heuristics
CP9: Multimedia and web design; Digital video for the web and multimedia, and the H-C interaction design
CP10: CAD and 3D modeling with Solid Edge; CNC and 3D printing
Assessment by Exam (100%) or Periodic Assessment consisting of: Written Test 1 (35%); Written Test 2 (35%); Written Test 3 or miniProject (30%); Written Test 3 held simultaneously with Exam 1 in the evaluation period; Written tests are individual and miniProject is in group; the miniProject is subject to oral discussion, if the professors deem it necessary; Written Tests have a minimum grade of 8 valores; minProject has no minimum grade; the 30% of the written Test 3 or miniProject grade is applied to the maximum of the two.
BibliographyTitle: A Dix, J Finlay, G Abowd, R Beale, "Human-Computer Interaction", 3rd ed., Prentice Hall, ISBN: 0-13-046109-1, 2004
C Lewis, J Rieman, TASK-CENTERED USER INTERFACE DESIGN, A Practical Introduction, shareware, 1994.
M Retting, Prototyping for Tiny Fingers, Communications of the ACM, April 1994, Vol.37, No.4, pp 21-27
PF Lopes, Computer Aided Design, creating 3D with Solid Edge (6 modules), Tutorial modules, video for e-learning/b-learning, ISCTE-IUL, 2006
C Myhill, Get Your Product Used in Anger! (Before Assuming You Understand its Requirements), interactions, may+june 2003
L MIGNONNEAU, C SOMMERER, Designing emotional, metaphoric, natural and intuitive interfaces for interactive art, edutainment and mobile communications, Computers & Graphics 29 (2005) 837-851
PF Lopes, D Jardim, I Alexandre, Math4Kids, Proc. First Iberian Workshop on Serious Games and Meaningful Play (SGaMePlay'2011), Chaves, Portugal, June, 2011, ISBN: 978-989-96247-5-7, pp 711-716.
Authors:
Reference:
Year:
Title: Jenny Preece, Ivonne Rogers, Helen Sharp, Interaction Design: beyond human-computer interaction, John Wiley & Sons, ISBN 0-471-49278-7, 2002
PF. Lopes, J. Reis, F. Santos, S. Eloy, A. Paio, V. Rato, at all, Shaping emergent cities for all, SIGraDi 2011, XV Congreso de la Sociedad Iberoamericana de Grafica Digital, 16-18 de Novembro 2011, Santa Fé, Argentina, pp. 106-108. ISBN: 978-987-657-679-6
Authors:
Reference:
Year:
Distributed Information Systems Integration Project
1. Efficient and secure storage of large volumes of data;
2. Access, transport and integrate dispersed information for various applications;
3. Automatic monitoring of data access (auditing);
4. Develop soft skills: Problem Solving, Teamwork and Critical Observation.
1 Migrations (coherent, incremental) using scripts and remote access through web services (REST / php);
2. Redundancy and distribution of data to manage fault tolerance on large data volumes;
3. Using MongoDB / JSON to store and extract large volumes of data;
4. PLSQL programming to automate security control; 5. Brief Introduction to Android Application Development;
6. MTTQ protocol as a way of communicating with sensors.
The Course is exclusively evaluated through a project. The individual grade results from the interim reports evaluation, the final report the evaluation of the student's performance during the semester (their involvement in weekly discussions), and a brief questionnaire. Class attendance is compulsory for 80% meeting. There is no evaluation by exam There is no evaluation per examination, and the "special" evaluation may complete the continuous evaluation.
BibliographyTitle: Para a restante matéria existem inúmeros tutorais e artigos na internet com qualidade e grau de dificuldade adequados aos alunos da licenciatura
NoSQL Database: New Era of Databases for Big data Analytics - Classification, Characteristics and Comparison, A B M Moniruzzaman,?Syed Akhter Hossain, 2013 (https://arxiv.org/abs/1307.0191)
Authors:
Reference:
Year:
Programme Structure for 2024/2025
Curricular Courses | Credits | |
---|---|---|
Linear Algebra
6.0 ECTS
|
Mandatory Courses | 6.0 |
Calculus I
6.0 ECTS
|
Mandatory Courses | 6.0 |
Fundamentals of Computer Architecture
6.0 ECTS
|
Mandatory Courses | 6.0 |
Introduction to Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
Algorithms and Data Structures
6.0 ECTS
|
Mandatory Courses | 6.0 |
Calculus II
6.0 ECTS
|
Mandatory Courses | 6.0 |
Mechanics and Electricity
6.0 ECTS
|
Mandatory Courses | 6.0 |
Microprocessors
6.0 ECTS
|
Mandatory Courses | 6.0 |
Operating Systems
6.0 ECTS
|
Mandatory Courses | 6.0 |
Databases
6.0 ECTS
|
Mandatory Courses | 6.0 |
Probabilities and stochastic processes
6.0 ECTS
|
Mandatory Courses | 6.0 |
Object Oriented Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
Theory of Computation
6.0 ECTS
|
Mandatory Courses | 6.0 |
Mathematical methods for computation
6.0 ECTS
|
Mandatory Courses | 6.0 |
Information System Design and Development
6.0 ECTS
|
Mandatory Courses | 6.0 |
Algorithm Design and Analysis
6.0 ECTS
|
Mandatory Courses | 6.0 |
Fundamentals of Computer Networks
6.0 ECTS
|
Mandatory Courses | 6.0 |
Artificial Intelligence
6.0 ECTS
|
Mandatory Courses | 6.0 |
Multiparadigm Programming Project
6.0 ECTS
|
Mandatory Courses | 6.0 |
Autonomous Agents
6.0 ECTS
|
Mandatory Courses | 6.0 |
Network Architectures
6.0 ECTS
|
Mandatory Courses | 6.0 |
Information Processing
6.0 ECTS
|
Mandatory Courses | 6.0 |
Concurrent and Parallel Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
Development for Internet and Mobile Apps
6.0 ECTS
|
Mandatory Courses | 6.0 |
Software Engineering
6.0 ECTS
|
Mandatory Courses | 6.0 |
Human-Computer Interaction
6.0 ECTS
|
Mandatory Courses | 6.0 |
Distributed Information Systems Integration Project
6.0 ECTS
|
Mandatory Courses | 6.0 |
Linear Algebra
At the end of this course the student should be able to:
LG1. Perform computations using vector and matrix algebra.
LG2. Apply the Gram-Schmidt Process.
LG3. Solve and classify systems of linear equations.
LG4. Perform matrix operations.
LG5. Compute, interpret and apply determinants.
LG6. Identify, construct and analyse linear transformations.
LG7. Compute eigenvalues and eigenvectors. Diagonalize a matrix.
LG8. Classify quadratic forms.
1. Vectors and Systems of linear equations
1.1 The vector space R^n.
1.2 Inner product and norm.
1.3 Linear combination and independence.
1.4 Basis and dimension.
1.5 Coordinates of a vector.
1.6 Gram-Schmidt process.
1.7 Systems of linear equations.
1.8 Gaussian elimination. Classification.
2. Matrices
2.1 Elementary and permutation matrices.
2.2 Matrix operations.
2.3 Transpose and inverse of matrices. Properties.
2.4 LU factorization.
3. Determinants. Definition. Properties.
4. Linear maps
4.1 Matrix of a linear map.
4.2 Rotation, reflection and projection matrix.
4.3 Kernel and range.
4.4 Null and column space. The rank theorem.
4.5 Base change.
5. Eigenvalues and eigenvectors
5.1 Definition. Eigenspaces.
5.2 Diagonalization.
5.3 Quadratic forms.
5.4 Singular Value Decomposition.
Students may choose one of the following assessment schemes:
- Periodic assessment:
- 6 mini-tests (25%): tests performed in a class, during the semester, lasting 15 minutes;
- final exam (75%): written exam in the first examination period; the minimum grade is 8.0 pts (out of 20).
The missing tests will be graded 0 pts.
Students must take the mini-tests in the class in which they are enrolled.
To calculate the final grade in this component, the 5 best grades will be considered.
The final grade is the best between Periodic Assessment and Exam Assessment.
- Exam assessment: a written exam (100%) in the 1st or 2nd examination period.
The minimum grade for this course is 10 points (out of 20).
Students may have to undertake an oral examination whenever the instructor seems it necessary.
Title: Apoio teórico fornecido pelos docentes.
Caderno de exercícios fornecido pelos docentes.
G. Strang, Introduction to Linear Algebra, Wellesley-Cambridge Press, fourth edition, 2009.
T.S. Blyth and E.F. Robertson, Basic Linear Algebra, Wellesley-Cambridge Press, 2009.
Authors:
Reference:
Year:
Title: R. L. Burden, J. D.Faires, Numerical analysis, Cengage Learning, 2015.
Authors:
Reference:
Year:
Calculus I
At the end of this course the student should be able to:
LG1. Understand and compute derivatives and interpret the corresponding result.
LG2. Understand and determine linear and higher order approximations.
LG3. Understand and explicitly compute the antiderivative of some elementary functions.
LG4. Understand and apply the fundamental theorem of differential calculus and the fundamental theorem of integral calculus.
LG5. Understand (and compute) integrals as well as their applications.
LG6. Understand and apply some simple numerical methods to obtain solutions of nonlinear equations and to compute approximate values of derivatives and integrals.
LG7. Understand numerical series and determine the power series representation of some functions.
PC 1) Differential calculus in R
1.1. Limits and continuity
1.2. Differentiation
1.3. Taylor's formula.
1.4. Error analysis
1.5. Numerical methods: bisection and Newton's methods
1.6. Numerical differentiation and numerical optimization
PC 2 ) Integral calculus in R
2.1. Antiderivatives
2.2. Integrals
2.3. Fundamental theorem of integral calculus.
2.4. Applications to geometry
2.5. Numerical integration
PC 3) Numerical series and power series
3.1. Sequences
3.2. Series
3.3. Convergence criteria
3.4. Power series and applications
There are two types of assessment:
1. Periodic Assessment, consisting of:
- Two Mini-Tests on MATLAB done in class (5% + 5%), an Intermediate Test (45%): written test taken during the semester; minimum grade of 7.5 values.
- Final Test (45%): written test carried out in the 1st assessment period; minimum grade of 7.5 values.
2. Final Assessment: carrying out a final Exam (with a weight of 100%), in the 1st or 2nd period of the evaluation period.
The minimum passing grade for the curricular unit is 10.
Title: Sérgio Mendes, Apontamentos da UC., 2023, null,
K. Ross, Elementary Analysis. The theory of calculus, Springer, 2013, null,
R. Burden, J. D. Faires, A. Burden, Numerical Analysis, Cengage Learning, 2015, null,
Authors:
Reference:
Year:
Title: J. Campos Ferreira, Introdução à Análise Matemática, Fundação Calouste Gulbenkian, 2018, null,
E. Herman, G. Strang, Calculus, Vols 1 e 2, OpenStax, 2017, 2018, null,
Authors:
Reference:
Year:
Fundamentals of Computer Architecture
At the end of this course, the student should be able:
OA1: To manipulate and to perform arithmetic operations using integer values represented in different numerical bases;
OA2: To manipulate logic expressions using properties of the Boolean algebra;
OA3: To design a combinational logic circuit that solves a given problem;
OA4: To design a sequential logic circuit that controls other elements on a digital system;
OA5: To simulate and to implement a logic circuit using a set of integrated circuits end programmable logic devices;
OA6: To categorize memory types and to design larger sized memory banks using smaller memory modules;
OA7: To identify and to relate the main elements of simple processor architectures;
OA8: To explain how the computer executes a program and to identify the main intervening mechanisms in that process;
CP1. Information representation
- Integer representation using different numerical bases
- Arithmetic operations over signed and unsigned integers
- Alphanumeric codes: ASCII and Unicode
CP2. Boolean algebra an logical functions
- AND, OR and NOT operations
- Boolean algebra
- Logical functions
- Minterms and "sum-of-products" form
- Karnaugh maps
CP3. Combinational circuits
- Combinational circuits design
- NAND, NOR and XOR gates
- Decoders and multiplexers
- Propagation delays
CP4. Sequential circuits
- Latches and flip-flops
- Sequential circuits analysis
- State diagrams and transition tables
- Sequential circuits design
- Registers and counters
CP5. Memory
- RAM memory
- ROM memory
- Memory banks
CP6. Processor architecture
- Register banks
- Functional unit
- Micro-instructions
- Program execution
1. Periodic assessment, comprising:
- One mid-term test and another end of term test. The minimum grade is 7,5. This component has a 70% weight.
- Laboratory assignments (20%): group work performed on a weekly basis, during the lab classes.
- Online mini-tests (10%): performed on a weekly basis (e-learning platform).
2. Exam assessment (100%) - the final course grade will be the one obtained in the exam (in any of the 3 evaluation epochs).
Title: João Oliveira, Tomás Brandão, Caderno de Exercícios de Fundamentos de Arquitetura de Computadores, 2016, Exercícios,
João Pedro Oliveira, Tomás Brandão, Textos de Apoio de Fundamentos de Arquitetura de Computadores, 2016, Sebenta,
Authors:
Reference:
Year:
Title: Guilherme Arroz, José Monteiro, Arlindo Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores - 2ª Edição, IST Press, 2019, Arroz 2019, https://istpress.tecnico.ulisboa.pt/produto/arquitectura-de-computadores-dos-sistemas-digitais-aos-microprocessadores/
Morris Mano, Charles Kime, Logic and Computer Design Fundamentals, 5th Edition, Pearson, 2015, Mano 2015, https://www.pearson.com/en-us/subject-catalog/p/logic--computer-design-fundamentals/P200000003256/9780134080154
Authors:
Reference:
Year:
Introduction to Programming
After obtaining approval in the course, students should be able to:
OA1. Develop functions/procedures that implement simple algorithms.
OA2. Develop code that manipulates arrays and objects.
OA3. Develop simple object classes (no recourse to inheritance and polymorphism), taking into account the notion of encapsulation.
OA4. Write and understand Java code.
CP1. Functions and parameters
CP2. Variables and control structures
CP3. Invocation and recursion
CP4. Arrays
CP5. Procedures and references
CP6. Matrices
CP7. Simple objects
CP8. Object classes
CP9. Composite objects
CP10. Composite object classes
CP11. Encapsulation and interfaces
Periodic assessment, comprising:
15% Midterm test + 75% Final test + 10% Online mini-tests
[a minimum score of 8 is required in the Final Test and C in the individual project]
The possible grades in the Individual Project are (A, B, C, D). The project grade defines an upper bound for the final grade:
A - max. 20
B - max. 16
C - max. 12
D - implies failing the course
Title: Y. Daniel Liang, "Introduction to Java Programming", 5th Ed. Prentice-Hall, 2005. ISBN: 0-13-185721 - 5.
Authors:
Reference:
Year:
Title: João Pedro Neto, Programação, Algoritmos e Estruturas de Dados, Escolar Ed., 2004.
Authors:
Reference:
Year:
Algorithms and Data Structures
After the course, the student will be able to:
LO1. Understand sorting and search algorithms appropriate to computational solutions;
LO2. Identify, rewrite and review common ways of organizing data and associated algorithms (with and without dynamic memory management, with iterative or recursive algorithms);
LO3. Estimate and value the complexity of algorithms on alternative data structures,
LO4. Prototype new forms of organization of data and associated algorithms suited to solve new computational problems.
PC1. The problem Union-Find
PC2. Analysis of Algorithms
PC3. Stacks, Queues, Lists, Bags
PC4. Priority Queues
PC5. Mergesort Elementary Symbol Tables
PC6. Quicksort Balanced Search Trees
PC7. Hash Tables
PC8. Elementary Sorts: Selectionsort; Insertionsort; Shellsort
PC9. Advanced Sorts: Mergesort; Quicksort; Heapsort
PC10. Sorting Complexity
Periodic Assessment: 10 weekly online evaluations (10%) + 10 weekly programming exercises (20%) + 2 periodic individual evaluations (70%) + 1 individual programming project (grades A,B,C,D).
The programming project grades are qualitative and defines an upper bond for final grade: A - max. 20; B - max. 17; C - max. 13; D - failing the course.
or
Final Examination: Individual examination (100%)
Title: (Algorithms, Part I - MOOC in www.coursera.org)
R. Sedgewick and K. Wayne, Algorithms, 4th edition, Addison-Wesley, 2012
Authors:
Reference:
Year:
Title: D. Harel, Algorithmics: the Spirit of Computing, 3th edition, Addison-Wesley, 2004
F. Santos and C. Conti, Algoritmos e Estruturas de Dados - Exercícios, ISCTE-IUL, 2022.
Authors:
Reference:
Year:
Calculus II
LG1. Compute partial derivatives and the Jacobian and Hessian matrices.
LG2. Determine linear and higher order approximations of functions of several variables.
LG3. Find and classify extrema of functions of several variables.
LG4. Apply simple numerical methods to compute approximate derivatives and solve optimization problems.
LG5. Compute double and triple integrals.
LG6. Applications of integration to compute areas, volumes, centers of mass, masses, probability density.
LG7. Apply simple numerical methods to compute approximate values of integrals.
LG8. Compute line and surface integrals.
LG9. Apply the vector analysis theorems to physics problems
1) Differential calculus in Rn
1.1.Functions of several variables
1.2.Limits and continuity
1.3.Partial derivatives,directional derivatives,gradient
1.4.The chain rule and the backpropagation algorithm
1.5.Implicit and inverse function theorems
1.6.Higher order derivatives and Taylor?s formula
2)Optimization in several variables
2.1.Analytic optimization vs numeric optimization
2.2.Unconstrained optimization
2.3.Numerical methods:steepest descent and Newton?s method
3)Integral calculus in Rn
3.1.Riemann integral in Rn
3.2.Fubini?s theorem
3.3.Change of variable
3.4.Double and triple integrals
3.5.Applications of integration to compute areas, volumes centers of mass and probability density
3.6.Numerical methods:numerical integration(Monte Carlo method)
4)Vector analysis
4.1.Geometry of curves
4.2.Geometry of surfaces
4.3.Line integrals:fundamental theorem
4.4.Surface integrals
4.5.The theorems of Green,Stokes,divergence
4.6.Physical applications:Newton?s gravity,electricity, magnetism
Students must obtain an overall grade of at least 10 (out of 20) in one of the assessment modes:
- Periodic assessment: 6 Mini Tests taken in classes (20%) + Test (75%).
- A final Exam (100%) in either the 1st or 2nd examination period.
Title: Stewart, J. (2016) Calculus, Early Transcendentals, 8th Edition,Cengage Learning.
Lipsman, R. L., & Rosenberg, J. M. (2017). Multivariable Calculus with MATLAB. Springer International Publishing AG.
Authors:
Reference:
Year:
Title: Pires, G. (2012) Cálculo Diferencial e Integral em Rn, IST Press, (1ª Edição).
Authors:
Reference:
Year:
Mechanics and Electricity
OA 1 - Understand the main types of motion in one and two dimensions, identifying its causes, and to be capable of solving problems involving one or more objects under the influence of gravity, tensile cords and contact forces.
OA 2 - Understand the concepts of work and energy and be able to solve problems involving conversion mechanisms between different forms of energy.
OA 3 - Analyze the motion of an object in circular orbit under the influence of a gravitational field.
OA 4 - Understand the concept of field and analyze simple problems involving electric and magnetic fields.
OA 5 - Understand and analyze electric circuits involving resistors, capacitors and inductors.
CP 1. Models, Units and Calculus
CP 2. Movement in One Dimension
CP 3. Movement in Two Dimensions
CP 4. Newton's Laws
CP 5. Energy
CP 6. Potential Energy
CP 7. Gravitation and Force Fields
CP 8. Electric Field
CP 9. Electric Potential
CP 10. Electrical Current and Resistance
CP 11. Capacitance and Dielectrics
CP 12. Magnetic field and inductors
This course can be completed in two ways:
i) exam evaluation
Written exam at the end of the semester in one of the two available dates. The final grade is the grade on this exam.
ii) periodic evaluation
Two written tests + 10 online quizzes during the semester (30 minutes each) - 6 required. The first test takes place during the semester. The 2nd test takes place on the day of the 1st exam. The final grade is calculated as 0.9 * (T1 + T2) / 2 + 0.1 * MT, where MT is the quizzes score
Title: - Physics for Scientists and Engineers, 9th Edition, Autores: R. A. Serway & J. W. Jewett, Edição Thomson/Brooks Cole, disponível na livraria do ISCTE. (Inglês)
Authors:
Reference:
Year:
Title: - Physics for Poets, 5th Edition, Autor: R. H. March, Edição McGraw-Hill Higher Education. (Inglês, divulgação, vista geral de toda a física e sua evolução histórica, pouca ou nenhuma matemática)
- Feynman Lectures on Physics, Autor: R. P. Feynmann, Edição Addison Wesley (Inglês, física de nível universitário)
- Introdução à Física, 2ª Edição, Autores: J. D. Deus, M. Pimenta, A. Noronha, T. Peña & P. Brogueira, Edição McGraw-Hill. (Português, física de nível universitário)
- Princípios de Física, Volume 3, Eletromagnetismo, Autores: R. A. Serway & J. W. Jewett, Edição Thomson, disponível na livraria do ISCTE. (Tradução em Português do Brasil da 3ª Edição do Livro da Cadeira)
- Princípios de Física, Volume 1, Mecânica Clássica, Autores: R. A. Serway & J. W. Jewett, Edição Thomson, disponível na livraria do ISCTE. (Tradução em Português do Brasil da 3ª Edição do Livro da Cadeira)
Authors:
Reference:
Year:
Microprocessors
OA1. To understand the meaning of typical performance measurements and to quantify speedup gains due to system upgrades.
OA2. To know the structure of a typical machine code instruction.
OA3. To understand the low-level mechanisms involved in a program's execution.
OA4. To identify the main elements of a simple processor architecture and to understand how they interact between each other.
OA5. To understand the concept of pipelining and to be able to identify structural, data or control pipeline hazards.
OA6. To know how does a cache memory works.
OA7. To understand how the current parallel architectures work, and the designing strategies.
OA8. To know how programming parallel codes in MPI.
CP1. Computational performance
- Analysis of performance;
- Issues affecting performance;
- Amdahl's law and speed-up;
- Benchmarks
CP2. Instruction sets
- Instruction formats
- Operations with registers and memory
- Procedures and stack usage
- Compilation and code optimization
- RISC vs CISC: ARM, x86
CP3. Arithmetic unit
- Floating point operation format (FP);
- Architecture for FP.
CP4. Simple architecture for a microprocessor
- Instruction phases;
- Control unit and datapath;
- Uni-cicle and multi-cicle processing;
- Pipelining: Performance, and hazards;
- Performance improvements.
CP5. Memory systems
- Memory hierarchy;
- Cache memory;
CP6. Parallel Architectures
- Analysis of performance;
- Shared memory architectures;
- Distributed memory architectures;
- Architectures based on GPU.
Assessment can be periodic or through a final written exam:
A – Periodic assessment: Assessment is done through 2 written tests, one taken during the teaching period and another one on the date of the 1st exam. Each test has a 50% weight on the final grade with no minimum passing grade.
B – Exam only: Assessment is done through a final exam (1st or 2nd or special exam periods), weighting 100% in the final grade. Minimum passing grade: 9.5/20.
Title: David Patterson, John Henessy, Computer Organization and Design - MIPS Edition: The Hardware/Software Interface, 6th Edition, Morgan Kaufmann, 2020.
Authors:
Reference:
Year:
Title: Guilherme Arroz, José Monteiro, Arlindo Oliveira, Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, 5ª Edição, IST Press, 2020
J. Cavanagh, X86 Assembly Language and C fundamentals, CRC Press, 2013.
A. Tanenbaum, Structured Computer Organization , 6th Ed., Prentice Hall, 2012.
Authors:
Reference:
Year:
Operating Systems
OA1: Distinguish Operating System (OS) types, functions and characteristics
OA2: Describe aspects of process managment and related algorithms
OA3: Describe mechanisms related with inter-process communication and syncronization
OA4: Describe memory management models in multiprogramming systems and compare related algorithms. Explain virtual memory management methods
OA5: Describe the I/O principles
OA6: Explain the most common file system implementation issues
OA7: Identify OS security mechanisms and describe types of security attacks, and protection methods
OA8: Use the command line to work on a remote linux server; program shell script; use processing text and administration related commands
OA9: Program at the system level, using the OS functionalities and considering both sequential and concorrent programming
CP1: Introduction to Operating Systems
Processes
CP2: - Processes and threads
CP3: - Process scheduling
CP4: - Process syncronization. Semaphors
CP5: - Interprocess comunication
Memory Management
CP6: - Memory management models and algorithms
CP7: - Virtual Memory
CP8: Input / Output
CP9: File Systems
CP10: Administration and security issues
Case study: Linux
CP11: - shell commands and shell programming
CP12: - Communication and syncronization mechanisms
The working method includes the following guidelines:
- emphasis on the understanding of the key OS concepts and on relating these concepts with student practice and work
- strong liaison between theory and practice / laboratory work
- practice and laboratory work as the driver to consolidation of student skills and knowledge
|
This course uses a periodical evaluation, not allowing a single final exam.
Evaluation components:
* TRAB (12.5% x 3): group work performed in 3 stages
* TPC (12.5%): 9 home questionaries, counting only the best 8
* PE (50%): Written exam performed during the evaluation periods
Requirements: Trab+TPC >= 9.5, PE >= 7 valores
grade of TRAB+TPC limited to grade(PE) + 6
Further information in "Observações"
Title: - José Alves Marques, Paulo Ferreira, Carlos Ribeiro, Luís Veiga, Rodrigo Rodrigues (2012), Sistemas Operativos, 2ª edição, FCA, ISBN: 978-9-727-22756-3
- Andrew Tanenbaum, Herbert Bos (2014), Modern Operating Systems, 4th Edition, Pearson Prentice-Hall, ISBN: 978-1-292-06142-9
Authors:
Reference:
Year:
Title: - Andrew Tanenbaum, Albert Woodhull (2006), Operating Systems Design and Implementation, 3rd edition, Prentice-Hall, 2006, ISBN: 978-0-131-42938-3
- Paulo Trezentos, Susana Nunes (2008), Linux para PCs, 3ª edição, FCA, ISBN: 978-972-722-603-0
- Paulo Trezentos, António Cardoso (2006), Fundamental do Linux, 3ª edição, FCA, ISBN: 978-972-722-514-9
- William Stallings (2018), Operating Systems Internals and Principles, 9th edition, Pearson, ISBN-13: 978-0-134-70006-9
- Abraham Silberschatz, Peter Galvin, Greg Gagne (2018), Operating System Concepts, 10th edition, Wiley, ISBN: 978-1-119-32091-3
- Abraham Silberschatz, Peter Galvin, Greg Gagne (2014), Operating Systems Concepts Essentials, 2nd edition, Wiley, ISBN: 978-1-118-84397-0
Authors:
Reference:
Year:
Databases
To provide students with solid knowledge on core subjects in the area of conventional databases (database systems supported by relational models), namely: relational schema design and queries supported by the SQL language.
PC1 - Relational schema design
PC2 - UML - Class Diagram
PC3 - Relational Model
1. Relations and primary keys
2. Foreign Keys and Integrity Rules
3. Optimizations and Indexes
4. Transactions and Concurrency
PC4 - Mapping from a conceptual model to a relational model
PC5 – SQL
1. Simple Querys
2. Agregate Functions
3. SubQuerys
4. Triggers, Stored Procedures and Functions
PC6 – Introduction to PHP/MySQL
I. ASSESSMENT IN REGULAR SEASON
Given the eminently practical nature of this Course, its assessment is based on the realization of the following components:
- Group project, with a pondering of 40% in two phased deliveries;
- Individual written test, with a pondering of 50% - to be accomplished on the date of the 1st period; and
- Four online mid-term tests, with a weighting of 10% - to be carried out during the semester.
Condition for approval: minimum grade of 8.00 points, without rounding for the project and the test.
If the student fails or does not reach the minimum mark in the written individual test, he may use the 2nd period date to repeat this evaluation component. For the project component and mid-term tests online there is no possibility of further deliveries or repetitions.
In exceptional situations of missing the 1st period date for the written individual test, the student may use the 2nd period date to perform the test. These cases will be subject to previous verification and acceptance with the services.
Students who wish to improve their grade may improve the written individual test, to be held in the 2nd season. None of the other components may be improved.
II. ASSESSMENT IN SPECIAL SEASON
The students who fulfill the conditions to be admitted in the Special Season, will have the following evaluation components:
- Individual or group project, with a weighting of 50% - to be handed in on the official assessment date of Special Season;
- Individual written test, with a weighting of 50% - to be handed in on the official assessment date of the Special Season
The project will have the same structure of the project done in the regular season, however, differs the theme, that will be proposed by the students to the teacher for approval. The project size requirements will be proportional to the number of students in the group. The maximum size of the group, the metrics related to the size and the deadlines will be published in a specific statement made available on the e-learning platform.
Also the students who use the Special Season are required to have a minimum score of 8.00 (without rounding) in each of the assessment components.
Title: Ramos, Pedro, Desenhar Bases de Dados com UML. Conceitos e Exercícios Comentados - 2ª Edição, Edições Sílabo, 2012, 978-972-618-474-4,
Gouveia, Feliz, Bases de Dados: Fundamentos e Aplicações - 2ª Edição Aumentada, FCA, 2021, 978-972-722-901-7,
Damas, Luís, SQL - Structured Query Language - 14ª Edição, FCA, 2017, 978-972-722-829-4,
Authors:
Reference:
Year:
Title: Ramakrishnan, Raghu & Gehrke, Johannes, Database Management Systems - 3rd Edition, McGrawHill, 2002, 978-007-246-563-1,
Booch, Grady; Rumbaugh, James & Jacobson, Ivar, The Unified Modeling Language User Guide - 2nd Edition, Addison-Wesley, 2005, 978-032-126-797-9,
Alturas, Bráulio, Introdução aos Sistemas de informação Organizacionais, 2ª Edição, Edições Sílabo, 2022, 978-989-561-265-9,
Authors:
Reference:
Year:
Probabilities and stochastic processes
At the end of this course the student should be able to:
LG1. Understand the axiomatic and main theorems of probabilities.
LG2. Understand and use the RV concept.
LG3. Know the most important probabilities distributions.
LG4. Understand and identify a stochastic process.
LG5. To know the main laws of probability theory.
LG6. To create, computationally, distribution functions and RV. To obtain numerical solutions for statistically formulated problems.
1) Counting and Probabilities.
1a) Kolmogorov's axiomatic.
1b) Random Variables unidimensional and multidimensional.
1c) Moment-generating function
2) Central Theorems
2a) Markov and Chebyshev inequalities.
2b) Law of large numbers.
2c) Central limit theorem.
3) Stochastic Processes
3a) Discrete stochastic processes. Poisson process.
3b) Continuous stochastic processes. Brownian motion.
3c) Markov chains
3d) Simulation, applications and algorithms
-Main evaluation (ME):
-- Periodic assessment consist of two terms, 1st term (60%) and 2nd term (40%), minimal grade for both terms is 8.0
-- Exam assessment, exam (100%) , at any exam evaluation period
- Optional evaluation (OE): Elaboration of the small project/study with maximal mark of four (4.0) points.
- In the case of the approval on ME the final grade (FG) is calculated by formula: min{20, ME+OE}
- Students with grade equal or greater than 17 that have zero on OE can be called to additional oral examination. The grade in this case is calculated as max{17,NPO}, where NPO (value between 17 and 20) is the grade of oral examination. In case the student misses oral examination the final grade is 17.
Title: Ross, S. M. Introduction to Probability and Models 11th edition, Academic Press, 2014.
Morais M.C., Probabilidades e Estatística, Teoria, Exemplos e Exercícios, IST Press, 2020.
Material pedagógico que aparecerá regularmente no elearning.
Authors:
Reference:
Year:
Title: Durrett, R.G., Essentials of Stochastic Processes (3rd ed.), Springer, 2016.
Krishnan, V., Probability and Random Processes, Wiley, 2015.
Montgomery, D. Runger, G.C., Applied Statistics and Probability for Engineers. Wiley& Sons, 2003.
Authors:
Reference:
Year:
Object Oriented Programming
At the end of the term the student should be able to:
OA1. Use an object oriented programming language to design, implement, test and debug small applications.
OA2. Understand and apply the concepts of encapsulation, abstraction, inheritance and polymorphism.
OA3. Know how to use the fundamental data structures of a standard library (stacks, queues, trees, hashtables).
OA4. Apply error-control mechanisms.
OA5. Explain the utility of design patterns and demonstrate their usage in simple cases.
CP1. Packages and encapsulation
CP2. Reading and writing files
CP3. Exceptions and error handling
CP4. Polymorphism and interfaces
CP5. Anonymous classes and lambdas
CP6. Inheritance
CP7. Collections and generic classes
CP8. Introduction to design patterns
The assessment can be carried out in one of the following ways:
Mode A:
- Exercises carried out in class (20%, groups of 2 or individual)
- Written test in the middle of the semester (30%, individual, minimum grade of 7 val.)
- Project (50%, groups of 2 or individual)
Mode B:
- Written test in the middle of the semester or in the special season (50%, individual, minimum grade of 7 val.)
- Project (50%, groups of 2 or individual)
Regardless of the modality followed, the grade for the "Project" component is limited by the performance demonstrated individually in an oral discussion, in accordance with the following rule:
- Very good performance - no limit;
- Good performance - limit of 16 val.
- Sufficient performance - 12 val limit.
- Poor performance in the discussion - fail in the course.
Given the practical nature of the UC, there is no need for assessment by exam.
Assessment in a special period follows modality B.
Grade improvement can only be done by repeating the evaluation in the following year.
Title: Folhas de apoio disponíveis no e-learning.
Y. Daniel Liang, "Introduction to Java Programming: Comprehensive Version" 10th Ed. Prentice-Hall / Pearson, 2015.
Authors:
Reference:
Year:
Title: F. Mário Martins, "Java 8 POO + Construções Funcionais",
FCA - Editora de Informática, 2017. ISBN: 978-972-722-838-6 (portuguese)
Ken Arnold, James Gosling e David Holmes, "The JavaTM Programming Language", 3ª edição, Addison-Wesley, 2000.
ISBN: 0-201-70433-1
Bruce Eckel, "Thinking in Java", 3ª edição, Prentice Hall, 2002. ISBN: 0-13-100287-2
Gamma, Helm, Johnson & Vlissides (1994). Design Patterns. Addison-Wesley. ISBN 0-201-63361-2.
Java resources at http://java.sun.com;
(tutorials and Java Aplication Programming Interface)
Authors:
Reference:
Year:
Theory of Computation
After the course the student will be able to:
1. Interpret and formulate precise definitions;
2. Analyze the logical consequences of the definitions;
3. Describe various computational models and their limitations;
4. Describe languages using grammars;
5. Solve computational problems using computational models learned;
6. Handle learned formalisms in building lexical and syntactic analyzers.
I Mathematical Notation and proof techniques
Mathematical Objects: sets, functions, relations and languages; Logic, proofs and the principle of mathematical induction.
II Finite Automata and Regular Languages
Regular languages and regular expressions. Deterministic and nondeterministic finite automata. Regular languages recognition.
III Pushdown Automata and Context-free Languages
Context-free languages context-free grammars. Pushdown automata. Context-free languages recognition.
IV Turing Machines and Recursively Enumerable Languages
Recursively enumerable languages. Turing Machines. Church-Turing Thesis.
I Periodic evaluation: 10 weekly online mini evaluations (10%)and two individual evaluations (90%). It is mandatory to make at least 7 online evaluations. Class attendance is not compulsory.
or
II Final Examination.
Title: F. Santos, Teoria da Computação - Exercícios, ISCTE-IUL, 2015.
F. Santos, Teoria da Computação - Folhas de Apoio, ISCTE-IUL, 2013.
J. Martin, Introduction to Languages and the Theory of Computation, McGraw-Hill, (3ª edição)2003, (4ª edição) 2011.
Authors:
Reference:
Year:
Title: D. Mandrioli e C. Ghezzi, Theoretical Foundations of Computer Science, John Wiley, 1987
J. Hopcroft, R. Motwani e J. Ullman, Introduction to Automata Theory, Languages and Computation, Addison Wesley, 2001.
N. Cutland, Computability: An Introduction to Recursive Function Theory, Cambridge University Press, 1980.
Authors:
Reference:
Year:
Mathematical methods for computation
At the end of this course the student should be able to:
LG1. Determine the Fourier series representation of some functions.
LG2. Determine both discrete and continuous Fourier transforms.
LG3. Know and apply some basic properties of Fourier series and transforms.
LG4. Apply the previous techniques (LG1-LG3) in the context of signal/image processing and compression.
LG5. Implement in python (numpy) concrete examples of the previous applications.
LG6. Determine basic neural network architectures and apply them in problems of classification.
LG7. Apply numerical optimization algorithms in the context of problems in machine learning with neural networks.
LG8. Implement in python (Keras) the techniques described in the previous points.
LG1. Complex numbers and inner product.
1.1. Complex numbers
1.2. Complex functions of a real variable.
1.3. Inner product and orthogonality.
1.4. Linear regression; implementation in python.
LG2. Fourier analysis and applications.
2.1. Fourier series.
2.2. Fourier transform.
2.3. (continuous) Convolution.
2.4. Filters; implementation in python.
LG3. Discrete Fourier transform.
3.1. The discrete Fourier transform and FFT.
3.2. Discrete convolution.
3.3. Dynamic programming.
3.4. Wavelets and JPEG.
3.5. Image processing; implementation in python.
LG4. Neural Networks:
4.1. Basic architectures, activation functions and cost functions.
4.2. Regression and classification problems.
4.3. Universal approximation theorems.
4.4. Numerical optimization: gradient descent and variants.
4.5. The Backpropagation algorithm.
4.6. Image recognition; implementation in python (Keras).
Students must obtain an overall grade of at least 10 (out of 20) in one of the assessment modes:
- Periodic assessment v1: 4 tests (75%) + 4 mini-projects (25%), or
- Periodic assessment v2: exam in the 1st examination period (75%) + 4 mini-projects (25%), or
- Exam (100%) in either the 1st or 2nd examination period.
- In the periodic assessment v1, there is a minimal grade requirement of 8.0 out of 20 in the average of each of the pair of tests T1+T2 and T3+T4.
- In the periodic assessment v2, there is a minimal grade requirement of 8.0 out of 20 in the exam.
- In the periodic assessment v1, students may take 1 of the tests, and only one, during the 1st examination period. In case they miss 2 or more tests they'll be excluded from this type of evaluation.
- The mini-projects are group projects. The groups should be composed, ideally, by 4 students. Some mini-projects might exhibit a competitive component; in that case, part of the corresponding grade will reflect the relative classification of each group in the corresponding competition.
- The presentation of extra credit work through the resolution of the "desafios" (challenges) that will be proposed throughout the semester may lead to a final grade increment of up to 1 unit.
- Grades higher or equal to 19, in either of the previous evaluation systems, are subject to further examination to "defend the grade".
Title: - João L. Costa, Slides da cadeira.
Authors:
Reference:
Year:
Title: - Boggess, A. and Narcowich, F. J., "A First Course in Wavelets with Fourier Analysis", Wiley, 2009.
- Rousseau, C and Saint-Aubin, Y., "Mathematics and technology", Springer 2008.
- Calin, O., "Deep Learning Architectures: A Mathematical Approach", Springer Series in the Data Sciences, 2020.
- Chollet, F., "Deep Learning with Python", Manning Publications, 2017.
Authors:
Reference:
Year:
Information System Design and Development
O1. Identify the ISDD requirements, main phases and activities;
O2. Transform the requirements in technical specifications and IS models;
O3. Use IS modelling tools;
O4. Use Low-Code implementation technologies and introduction to services for the implementation of SI, Application Programming Interfaces with REST protocols;
O5. Build teamwork experience in the context of carrying out the ISDD project, developing the skills of discussion, tolerance, acceptance and respect for the opinions of the colleagues (soft skills);
O6. Co-build solutions based on critical thinking, creative problem solving, collaboration, critical observation, negotiation and collaborative decision making;
O7. Apply strategies for proposing reflected solutions, autonomous work based on the search for solutions and sustained construction of argumentation;
O8. Develop the skills of oral and written communication and technical discussion of the work.
P1. Introduction to the Information System (IS) Design and Development;
P2. Lifecycle of Development of IS;
P3. Requirements analysis for the design and development of IS;
P4. Specification and design of IS, UML diagrams;
P5. Process modelling in the context of IS;
P6. Low-Code implementation technologies;
P7. Integration technologies in the context of IS: Service-Oriented Architectures, API and REST;
P8. Service-Oriented Computing in the context of IS.
The assessment in the course unit is exclusively done by continuous evaluation through a project: the individual grade results from the evaluation of the interim reports, final report, assessment of the student's performance throughout the semester (involvement in weekly discussions, in his/her capacity for exposition and technical discussion, oral discussion) and a brief individual questionnaire, in the following way:
- Individual questionnaire: 20%
- Phase 1 of the project (delivery, weekly discussions, oral): 30%
- Phases 2 and 3 of the project (delivery, weekly discussions, oral): 50%
Attendance at 80% of weekly meetings is mandatory. There is no assessment by exam and the special period is a complement to continuous assessment, if necessary.
Title: Whitten, J.L. and Bentley, L.D., Systems Analysis and Design Methods, McGraw-Hill, USA, 7th edition, 2007.
Avison, D. and Fitzgerald, G., Information Systems Development: methodologies, techniques, and tools, McGraw-Hill Education ? Europe, 4th ed., 2006.
Seidl, Martina et al., UML@Classroom: An Introduction to Object-Oriented Modeling, Springer, 2012.
Brambilla, Marco et al., Model-Driven Software Engineering in Practice, Morgan & Claypool Publishers, 2012.
Magal, R. S. and Word, J., Essentials of Business Processes and Information Systems, John Wiley & Sons, Inc., USA, 2009.
Erl, T., Service-Oriented Architecture: Analysis and Design for Services and Microservices, Pearson Education, Prentice Hall, USA, 2nd ed., 2019.
Hohpe, G. and Woolf, B., Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, Addison-Wesley, 2004.
Gold-Bernstein, B. and Ruh, W., Enterprise Integration: The Essential Guide to Integration Solutions, Addison-Wesley, 2005.
Authors:
Reference:
Year:
Title: Modelling information system processes: https://www.modeling-guidelines.org/
Modelling processes and UML with Signavio tutorials:
http://elearning.uml.ac.at/quiz
https://documentation.signavio.com/suite/en-us/Content/workflow-accelerator/userguide/tutorials/intro.htm
https://documentation.signavio.com/suite/en-us/Content/process-manager/userguide/intro.htm
https://www.signavio.com/video/signavio-tutorial-videos/
https://www.signavio.com/bpmn-introductory-guide/
https://documentation.signavio.com/pdfs/en/Process-Manager-User-Guide-en.pdf
https://www.uml.org/
Schmuller, Joseph.; Sams Teach Yourself UML in 24 Hours, 3rd Edition, Sams Publishing, 2004.
Fowler, M.; UML Distilled, Third Edition, Addison-Wesley, 2004.
Booch, Grady, Rumbaugh, James, Jacobson, Ivar; The Unified Modeling Language User Guide, Second Edition, Addison-Wesley, 2005.
Dennis, A., Wixom, B. H., Tegarden, D.; System Analysis and Design UML Version 2.0, John Wiley and Sons, 2009.
Arlow, J., Neustadt, I.; UML2 and the Unified Process, Second edition, Addison-Wesley, 2005.
Implementing systems with OutSystems low-code:
https://success.outsystems.com/Documentation
https://www.outsystems.com/training/paths/18/becoming-a-reactive-web-developer/
https://www.outsystems.com/training/courses/123/modeling-data/
https://www.outsystems.com/training/courses/128/modeling-data-relationships/
https://www.outsystems.com/training/courses/116/integrating-with-web-services/
https://www.outsystems.com/training/courses/184/modeling-business-processes/
https://www.outsystems.com/training/paths/16/becoming-a-front-end-developer-in-outsystems/
https://www.outsystems.com/training/courses/124/reactive-ui-development-101/
https://www.outsystems.com/training/courses/129/building-reactive-web-forms/
https://www.outsystems.com/training/courses/130/form-validations/
Authors:
Reference:
Year:
Algorithm Design and Analysis
To succeed in this course the student should be able to:
OA1- Identify the most suited strategies for the problem to be solved.
OA2- To design and implement the needed algorithms for the intended solution.
OA3- Analyse the complexity of diverse algorithms and understand what are the implications of its usage in real problems.
OA4- Understand the implications of using algorithms or heuristic aproximations.
The syllabus contents are:
CP1- Analysis of algorithms and Complexity theory: amortized cases and approximation algorithms.
CP2- Algorithm design techniques: Greedy, Iterative, Incremental, Divide-and-conquer, Dynamic programming, Randomization.
CP3- Graphs: representation, spanning trees, traversals, shortest paths, maximum flow algorithms.
Periodic assessment: E x 0.20 + T x 0.60 + M x 0.20 = 100%
(a) Weekly exercise assignments (E):
- Subject up to the last lesson given.
(b) Tests (T):
- 2 individual written tests (equally weighted);
- 1st test: in the mid-term week;
- 2nd test: on the day of the first exam.
(c) Mini-projects (M):
- 2 mini-projects (equally weighted);
- Performed in a group of 2 students.
Exam: 1st, 2nd and Special Seasons = 100%.
Title: Cormen, Thomas, Charles Leiserson, Ronald L. Rivest and Clifford Stein (2022), Introduction to Algorithms. 34th ed., MIT Press.
John Kleinberg Eva Tardos (2005) Algorithm Design, Addison-Wesley.
Tim Roughgarden (2022). Algorithms Illuminated: Omnibus Edition. Cambridge: CUP.
Authors:
Reference:
Year:
Title: David Williamson, David Shmoys (2010) The Design of Approximation Algorithms, Cambridge University Press.
Authors:
Reference:
Year:
Fundamentals of Computer Networks
OA1: identify and distinguish various layered reference models
OA2: identify and describe the main functionalities of each layer of the OSI and TCP/IP reference models
OA3: be able to solve problems and study cases for each of the first three layers of the OSI reference model
OA4: be able to conduct experiments, record and analyze their results and assess the behavior and performance of different technologies
OA5: be able to assess the performance of different technologies using analytic and simulation tools.
CP1. Introduction to computer networks
a. Classification of networks and their technologies
b. Services, protocols and reference models (OSI and TCP/IP)
CP2. Physical layer
a. Physical medium characteristics and impairments
b. Multiplexing and switching
CP3. Data link layer
a. Data link layer core functionalities
b. Error and flow control protocols and their performance
c. The IEEE 802 protocols
d. Interconnection of local area networks (VLANs and STPs)
CP4. Network level
a. Routing and forwarding. Architecture of a router.
b. The IPv4 protocol (packets, routing, fragmentation)
c. Addressing in IPv4 and IPv6 protocols. NAT.
d. Routing algorithms
e. Network interconnection. RIP, OSPF, and BGP routing protocols.
f. Key Internet protocols: ICMP, ARP and DHCP.
There are two modes:
1. Periodic evaluation:
- One written test carried out during the exam season with a minimum mark of 8.0 (in 20) - (45%)
- Eight lab experiments in group - (20%)
- One practical work in a group - (25%)
- Eighth mini-tests online - (10%)
2. Exam evaluation:
The exam has a written part (50%) with a minimum mark of 8 (in 20) and a practical part (50%). The written and practical parts should be done in the same exam season.
Title: * Computer Networks: A Systems Approach; Larry Peterson, Bruce S. Davie; Morgan Kaufman, 2021 (6th edition).
Authors:
Reference:
Year:
Title: * Computer Networking: A Top-Down Approach; James F. Kurose, Keith W. Ross; Pearson Education, 2021 (8th edition).
* Computer Networks; Andrew S. Tanenbaum; Pearson, 2021 (6th edition)
* Internetworking with TCP/IP Volume 1: Principles, Protocols, and Architectures; Douglas E. Comer; Prentice Hall, 2013 (6th edition)
* Local Area Networks; Gerd Keiser; MacGraw Hill, 2002 (2nd edition)
* Data Networks; Dimitri P. Bertsekas and Robert Gallager; Prentice Hall, 1992 (2nd Edition)
* Data and Computer Communications; William Stallings; Prentice Hall, 2013 (10th edition)
Authors:
Reference:
Year:
Artificial Intelligence
After completing the course, students should
(LO1) be aware of the advantages and challenges of using and developing AI based systems and models, in particular search algorithms, knowledge representation and reasoning, approaches for adaptive systems, and machine learning;
(LO2) be capable of identifying the requirements of the systems and models to create;
(LO3) be capable of choosing and the approaches more suited to the LO2 requirements
(LO4) mastering and usage of the approaches presented in the course for system development and world modelling
After completing the course, students should
(LO1) be aware of the advantages and challenges of using and developing AI based systems and models, in particular search algorithms, knowledge representation and reasoning, approaches for adaptive systems, and machine learning;
(LO2) be capable of identifying the requirements of the systems and models to create;
(LO3) be capable of choosing and the approaches more suited to the LO2 requirements
(LO4) mastering and usage of the approaches presented in the course for system development and world modelling
Continuous Evaluation:
- 2 Tests (30% + 40%), minimum grade of 8.5 in each test
- 1 Project (20%)
- 8 classroom exercises (the best 6 will be considered). (10%)
Final evaluation:
- 2 Exams + Special Season, each weighing 100%
The tests and the Exams may have groups of questions with a minimum grade
To access the tests and exam, it is necessary to complete all activities related to the covered topics up to this moment on Moodle.
Students may be required to explicitly enroll in any of the evaluation components
Title: A cadeira assenta fundamentalmente nos apontamentos para as aulas sobre Sistemas Baseados em Conhecimento, e nos livros [Russell e Norvig 2003] sobre Inteligência Artificial, [Clocksin e Mellish 1994] sobre Prolog, e [Graham 1996] sobre LISP.
Clocksin, W.F. e Mellish, C.S. 2003. Programming in Prolog Using the ISO Standard(Quinta Edição). Springer Verlag (existe na biblioteca, embora seja a quarta edição).
Russell, S.; e Norvig, P. 2003. Artificial Intelligence: a Modern Approach, Prentice Hall. Capítulos 3 a 9. (existente na biblioteca).
Graham, P. 1996. ANSI Common Lisp. PrenticeHall.
Authors:
Reference:
Year:
Title: Linguagem de Programação Prolog
Bratko, I. 1990. Prolog Programming for Artificial Intelligence. Addison Wesley Publishing Company (existente na biblioteca).
Lógica de Predicados e Forma Clausal
Michael R. Genesereth, Nils J. Nislsson. 1987. ?Logical Foundations of Artificial Intelligence?. Morgan Kaufman Publishers (Capítulos 2, 3 e 4)
Sistemas Baseados em Conhecimento (Perspectiva teórica)
- Ronald Brachman, Hector Levesque. 2004. "Knowledge Representation and Reasoning". Morgan Kaufmann
- Mark Stefik. 1995. Introduction to Knowledge Systems?. Morgan Kaufmann
Authors:
Reference:
Year:
Multiparadigm Programming Project
Upon successful completion of this curricular unit, the student will be able to:
LO1: understand the principles of functional programming;
LO2: write purely functional programs;
LO3: understand the benefits of functional paradigm characteristics compared to other programming paradigms;
LO4: design and implement multi-paradigma applications (with an interactive component) of medium dimension;
LO5: work as a team.
The program contents (PC) are:
PC1: Introduction to the functional paradigm in programming and its fundamental concepts;
PC2: Advanced concepts of functional programming;
PC3: Introduction to essential technologies to support team programming;
PC4: Event-driven programming;
PC5: User interface patterns;
PC6: Integration of multi-paradigm programs;
Periodic Assessment with Individual Written Test (WT) during the assessment period and, Project (PRJ) in work group with 2 deliveries (during the academic period), discussion, and individual evaluation of the PRJ.
The possible classifications in the individual assessment are A, B, or C, defining the PRJ grade (pg):
A- pg = to the PRJ classification
B- pg = to 80% of the PRJ classification
C- implies failing the UC
Final classification:
40%WT + 60%pg
A minimum score of 9.5 (out of 20) in both WT and pg
There is no exam evaluation
Attendance is not used as an evaluation measure
Students who do not get the minimum grade in the project (or do not deliver it) cannot access the individual written test, automatically failing UC.
In case of failure in the 1st season assessment, the student can repeat the written test in the 2nd season assessment (and in the special season assessment if having access to it), keeping the Project grade.
It is not possible to improve the project's grade between the 1st and 2nd season assessments.
The mandatory minimum grade of the project also applies to the special season. If the student successfully obtains the project's minimum grade during the course's teaching period, the corresponding grade will be considered for the special season. Otherwise, the student must deliver the project and perform its discussion on the dates that will be scheduled.
Title: Backfield, J. (2014). Becoming Functional: Steps for Transforming Into a Functional Programmer. ISBN 978-1449368173.
Chiusano, P., & Bjarnason, R. (2014). Functional Programming in Scala. ISBN 978-1617290657.
Wampler, D., & Payne, A. (2015). Programming Scala: Scalability = Functional Programming + Objects. ISBN 978-1491949856
Schildt, H. (2015). Introducing JavaFX 8 Programming. ISBN 978-0071842556.
Tidwell, J., Brewer, C., & Valencia, A. (2020). Designing Interfaces: Patterns for Effective Interaction Design. ISBN 978-1492051961.
Authors:
Reference:
Year:
Title: Hutton, G. (2007). Programming in Haskell. ISBN 978-0521692694.
Coplien, J. O. (1998). Multi-Paradigm Design for C++. ISBN 978-0201824674.
Authors:
Reference:
Year:
Autonomous Agents
The course introduces the concepts and practical knowledge necessary to use and develop software agents that, immersed in an open mixed agent and human society, autonomously control their behaviour and communicate with users and other agents.
After completing the course, students should
(LO1) be aware of the advantages and challenges of using and developing agents situated in a society of human actors and other artificial agents;
(LO2) be capable of identifying the requirements pertaining to the agents to be developed, in terms of agent roles and communication;
(LO3) be capable of choosing and implementing the approaches more suited to autonomously controlling their behaviour, bearing in mind the requirements LO2
(LO4) master the agent communication language and the content language used in agent communication
(LO5) Knowing the coordination mechanisms for social agents, bearing in mind the user goals.
(S1) Autonomous agents and agent societies: definitions, agent characteristics, (time persistence, autonomy and adaptation)
(S2) Conceptual analysis of agent societies (required skills / services, agent roles, communication requirements)
(S3) Service discovery, composition and provision in an agent society
(S4) Autonomous behaviour control approaches: planning algorithms, and production rules
(S5) Agent communication (communication language and content language)
(S6) Agent platform, agent development software
Periodic evaluation along the class period (100% of the final grade): two tests + optional mini project
Observation: No element of the periodic evaluation duringthe class period will be considered in the exams.
Tests:
* Each test has a minimum grade of 8 points
* Grade in the compound of the two tests (TESTS): 60% x Max(T1, T2) + 40% Min(T1, T2), in which Ti is the grade in test i
Optional Mini Project (groups of 3 or 4 students)
*First stage: initial submission of the work. Mini project grade (MINPROJ): 0, 1, or 2 points. The grade is the same for all elements of the group
*Second stage (presentation in the Autonomous Agents seminars)
The N best projects are selected for presentation in the Autonomous Agents Seminars. N, which depends on contextual factors, will be defined in each UC incarnation.
Exceptional presentations may yield 1 additional point for the mini project grade (MINPROJ). This potential improvement will cover all group students involved in the presentation.
The mini project grade (MINPROJ) cannot decrease with the presentation.
Student grade along the semester class period: Min(20, TESTS + MINPROJ)
Exam evaluation: three exam dates. Each exam has 100% weight. The usual Iscte rules apply for grade improvement
Observation: no element of the periodic evaluation along the class period will be considered in the exams
Title: Course Notes + Course Software
Agent Platform and Software
Course Notes
Agent Communication:
Course notes + course software
Control mechanisms: Planning and Production Rules
Course notes
Conceptual analysis of agent societies. Service discovery, composition and provision
Course notes
Autonomous agents and agent societies
Authors:
Reference:
Year:
Title: FIPA. 2000. FIPA Communicative Act Library Specification. http://www.fipa.org/specs/fipa00037/SC00037J.pdf
Agent Communication:
Nils Nilsson. 1982. Principles of Artificial Intelligence. Springer-Verlag Berlin Heidelberg
Control mechanisms: Search, Planning and Production Rules
Kouichi Matsuda. 2004. Personal Agent-Oriented Virtual Society. Advanced Knowledge International. ISBN-10: 0975100432. ISBN-13: 978-0975100431
Autonomous Agents and Agent Societies
Authors:
Reference:
Year:
Network Architectures
OA1 - Understand the operation of networks in an integrated manner, identifying and implementing different solutions to support applications and services.
OA2 - Know, distinguish and evaluate different protocols and services available for end-to-end communication and communication between applications over the network.
OA3 - Understand the architecture of the transport network, software defined networks and mobility. Be able to distinguish and evaluate different architectures.
OA4 - Know the different approaches and solutions for multimedia networks and multicast. Be able to distinguish and evaluate different existing techniques for them.
OA5 - Configure different network architectures, identifying and implementing different solutions in an integrated manner. Detect and correct errors in their configuration.
CP1 - Network interconnection. Interconnection and routing in IP networks. NAT. Routing Protocols: OSPF and BGP. Router architecture. IPv6 networks. Mobility: architectures.
CP2 - End-to-end communication. Addressing and multiplexing. UDP and TCP protocols. TCP connection management. Flow control and congestion control.
CP3 - Transport networks. Software defined and configured networks: SDN architecture, OpenFlow, NFV. Mobility: architectures and routing.
CP4 - Network services and applications. Communication models. Protocols definition in ABNF and ASN1. Name services: DNS, etc.; Electronic mail; WWW Architecture. Server infrastructures. Content distribution networks, GSLB.
CP5 - Multimedia Networks. Architectures and addressing. IGMP and multicast. Protocols DVMRP, PIM, MOSPF. Multimedia applications. Architectures for streaming. VoIP. Protocols RTSP, RTP, RTCP, SIP. Scaling and policing. Integrated services. RSVP. Differentiated services.
Summary of the evaluation process.
Periodic Evaluation and 1st Period:
30% - 1st written test (CP1 and CP2), and a 35% - 2nd written test (CP3, CP4, and CP5), with a minimum score of 8 out of 20 in the weighted rounded average of the written tests.
35% - 5 laboratories (with a weight of 9%, 9%, 7%, 5%, 5%, by decreasing order of marks per laboratory) with a minimum score of 8 out of 20 in the weighted rounded average of the laboratories.
or
100% - written test (CP1 to CP5)
Season 2 Evaluation
65% - written test (CP1 to CP5), with a minimum score of 8 out of 20.
35% - 5 laboratories attended during the semester (with a weight of 9%, 9%, 7%, 5%, 5%, by decreasing order of marks per laboratory), with a minimum score of 8 out of 20 in the weighted rounded average of the laboratories.
or
100% - written test (CP1 to CP5)
Special Season Evaluation
100% - written test (CP1 to CP5)
Title: Computer Networking: A Top-Down Approach Featuring the Internet, James F. Kurose, Keith W. Ross, Addison Wesley.
Acetatos e outro material de apoio na plataforma de e-Learning
Authors:
Reference:
Year:
Title: TCP/IP Protocol Suite, Forouzan, McGrawHill
Data Communications and Networking, Forouzan, McGrawHill
Computer Networks and Internets with Internet Applications, Comer, Pearson
Computer Networks, A systems Approach, Peterson & Davie, Morgan Kaufmann
Network Systems Design using Network Processors, Comer, Prentice Hall
High-Speed Networks and Internets: Performance and Quality of Service, Stallings, Prentice Hall
Engenharia de Redes Informáticas, E. Monteiro e F Boavida, FCA
Tecnologia de Sistemas Distribuídos, J Marques e P Guedes, FCA Editora de Informática
TCP/IP Teoria e Prática, Fernando Boavida e MArio Bernardes, FCA Editora de Informática
Computer Networks, Andrew Tanenbaum, Prentice Hall
Authors:
Reference:
Year:
Information Processing
This CU is offered in the last year and, from a pedagogical point of view, the students are to produce a real project (replicating a real working environment) where they are allowed to apply their programming knowledge with more advanced aspects, namely, programming models of randomness, and the implementation of algorithms that consider probabilistic analysis and stochastic processes. The main objective is to show that for the development of complete projects it is necessary to mix several areas of knowledge, The lectures of this UC unfold in tandem with the needs arising from the project development and the contents related to randomness, simplification of analytical expressions, software techniques. IThe student's knowledge is acquired by solving exercises on the theme of randomness, efficient algorithms and programming, and validation techniques. It should be noted that the organization of this UC allows the computer engineering students to develop higher-level projects.
1. Introduction
- Typical real-world application projects that imply a solid knowledge of random programming
- Elementary concepts of random processes in computer engineering
- Requirements for project development
2. Project Planning, Organization and Development
3. Probabilities and random variables;
4. Analytical development of fundamental operations with randomness
5. Simplification of analytic expressions with multiple random processes
6. Construction of system models for project design
7. Implementation and validation of algorithms
The valuation is carried out in two parts. The first part consists of two assignments with pract.l and project prob. and the second part consists of a written exam. Each one of the to assignments with practical problems has a weight of 5% in the final grade, and the project weights 40%, impl. and discu. in the final grade, contributing all together with 50% to the final grade. The other 50% are obtained via an exam grade. In any of the written exams, the minimum pass grade is 10 marks out of 20.
BibliographyTitle: [3] W. L. Martinez and A. R. Martinez, Computational Statistics Handbook with Matlab, Chapman&Hall/CRC, (3rd edition), 2015.
[2] S. M. Ross, Introduction to Probability and Statistics for Engineers and Scientists, John Wiley & Sons, New York, (6th edition), 2021.
[1] D. C. Montgomery and G. C. Runger, Applied Statistics and Probability for Engineers, John Wiley & Sons, New York, (7th edition), 2018.
Authors:
Reference:
Year:
Title: [12] A. B. Carlson, P. B. Crilly, J. C. Rutledge, Communication Systems, 4th Ed., McGraw-Hill, 2002.
[11] D.D. Pestana e S.F. Velosa, Introdução à probabilidade e à Estatística, vol.1, Ed. Fundação Calouste Gulbenkian, 2002.
[10] J.P. Marques de Sá, Applied statistics using SPSS STATISTICA and MATLAB, Springer 2003.
[9] K. Cattermole and J. O´Reilly, Problems of Randomness in Communication Engineering, John Wiley & Sons, 1984.
[8] P. Beckmann, Probability in Communication Engineering, Harcourt, Brace & World Inc., 1967.
[7] A. Papoulis, S. U. Pillai, Probability, Random Variables and Stochastic Processes, 4th Ed., McGraw-Hill, 2002.
[6] B. J. Murteira, C. S. Ribeiro, J. Andrade e Silva e C. Pimenta. Introdução à Estatística, Mcgraw-Hill, Lisboa, 2002.
[5] B. J. Murteira. Probabilidades e Estatística, vol. I e II, Mcgraw-Hill, Lisboa, 1990 (2a edição).
[4] P. L. Meyer. Probabilidades. Aplicações à Estatística, Livros Técnicos e Científicos Editora S.A., Rio de Janeiro, 1981.
Authors:
Reference:
Year:
Concurrent and Parallel Programming
After having completed this course unit, the student should be able to:
OA1. Know how to program using the paradigm of event programming.
OA2. Graphical user interfaces programming. GUIs in Java - Swing.
OA3. Understand the problems involved in accessing shared resources.
OA4. Understand how to coordinate threads and understand the main problems associated with coordination like deadlocks, livelocks and starvation.
OA5. Know the main programming patterns for the coordination of threads.
OA6. Understand the classic architectures and some algorithms from the distributed programming paradigm.
CP1. Introduction.
CP2. Java Swing
CP3. Introduction to threads. Life cycle of the threads.
CP4. Synchronization, locks.
CP5. Process coordination.
CP6. Deadlocks, starvation and livelocks.
CP7. Classical problems of concurrency.
CP8. High-level concurrency objects
CP9. Network programming
CP10. Distributed Programming Architectures
The course is organized in two types of classes: theoretical and practical. In theoretical classes, theory is interleaved with examples and exercises. In practical classes students should solve a set of problems. In addition to the work performed during classes, students are expected to have ~6 hours of weekly autonomous work to complete exercises and implement the final project.
|
Registration for the written tests is mandatory.
The evaluation is based on a project and a final exam.
The project has two evaluation fases, mid-term delivery and a final oral examination.
The possible grades in the Individual Project are (A, B, C, D). The project grade has no weight in the final grade, but it defines an upper bound for it:
A-max. 20
B-max. 16
C-max. 12
D-failing the course
Final grade is only given by the exam's classification.
Title: Introduction to Java Programming, Y. Daniel Liang, 2009 Pearson.
Foundations of Multithreaded, Parallel, and Distributed Programming, Gregory R. Andrews, 1999 Addison Wesley
Principles of Concurrent and Distributed Programming, M. Ben-Ari, 2006 Addison Wesley
JAVA Threads, Third Edition, Scott Oaks & Henry Wong, 2004 O'Reilly.
Authors:
Reference:
Year:
Title: http://download.oracle.com/javaee/5/tutorial/doc/
Tutorial for J5EE:
http://download.oracle.com/javase/tutorial/index.html
Tutorial for J6SE:
Authors:
Reference:
Year:
Development for Internet and Mobile Apps
After finishing this unit a student should be able to:
LG1. Know and understand basic concepts and technologies for web development.
LG2. Know client-side concepts and apply the adequate technologies for client-side web development.
LG3. Know server-side concepts and apply the adequate technologies for server-side web development.
LG4. Know how to integrate client-side and server-side development into a coherent model for performing typical tasks within a web application.
LG5. Know and understand the main concepts for mobile software development.
LG6. Apply the adequate technologies for mobile software development.
LG7. Know and understand the main concepts for IoT network development.
LG8. Apply the adequate technologies for IoT network development.
CP1 [Introduction]
The history of the Web;
Previous and actual programming languages for the web;
W3C standards;
Client-server architecture;
MVC architecture for the Web.
CP2 [Client-Side Programming]
Main formatting and programming languages for the Web;
Libraries for programming Web applications;
Introduction to security on the client side.
CP3 [Server-Side Programming]
Client/Server architectures;
Database access from Web;
Data model on the website and corresponding database interaction;
Session management;
Introduction to security on the server side.
CP4 [Mobile Programming]
Native cross-platform languages;
Hybrid tools.
CP5 [Internet of Things (IoT)]
Sensors;
Design solutions for IoT networks;
Connected supply chain protocols;
Management of Big Data from IoT;
Programming resources for IoT;
Introduction to security in IoT.
Given the practical nature of the contents, the assessment will encompass a project. Its subject should be aligned with all or part of the syllabus.
Exercises in class (10%).
Project (90%, including teamwork (report and software) ? 40%, and oral exam ? 50%).
All components of the project - proposal, report, software and oral exam, are mandatory. The minimal classification for each component is 10 on a scale of 0 to 20.
There will be a unique deadline for submitting the project, except for students accepted to the special period of assessment, that will be allowed to submit during that period.
Presence in class is not mandatory.
There is no final exam.
Students aiming to improve their classification can submit a new project in the following scholar year.
Title: Rao M. (2018). Internet of Things with Raspberry Pi 3: Leverage the power of Raspberry Pi 3 and JavaScript to build exciting IoT projects. Ed: Packt Publishing. ISBN-10: 1788627407. ISBN-13: 978-1788627405.
Horton J. (2015). Android Programming for Beginners. Ed: Packt Publishing. ISBN-10: 1785883267. ISBN-13: 978-1785883262.
Vincent W. S. (2018). Build websites with Python and Django. Ed: Independently published. ISBN-10: 1983172669. ISBN-13: 978-1983172663.
Dean J. (2018). Web Programming with HTML5, CSS, and JavaScript. Ed: Jones & Bartlett Learning. ISBN-13: 978-1284091793. ISBN-10: 1284091791.
Ryan J. (2013). A History of the Internet and the Digital Future. Ed: Reaktion Books. ISBN-13: 978-1780231129
Authors:
Reference:
Year:
Title: Lambert M. and Jobsen B. (2017). Complete Bootstrap: Responsive Web Development with Bootstrap 4. Ed: Impackt Publishing. ISBN-10: 1788833406. ISBN-13: 978-1788833400.
Freeman A. (2017). Pro Angular. Ed: APress. ISBN-10: 1484223063. ISBN-13: 978-1484223062.
Jones P. (2018). jQuery UI. Ed: CreateSpace Independent Publishing Platform. ISBN-10: 1719389667. ISBN-13: 978-1719389662.
Amundsen M. (2017). RESTful Web Clients: Enabling Reuse Through Hypermedia. Ed: O'Reilly Media
Downey A. B. (2015). Think Python: How to Think Like a Computer Scientist. Ed: O'Reilly Media. ISBN-10: 1491939362. ISBN-13: 978-1491939369.
Authors:
Reference:
Year:
Software Engineering
After having completed this course unit, the student should be able to:
OA1. Apply an engineering process to the production of software;
OA2. Produce software in large groups (>6 developers);
OA3. Apply principles of software engineering such as software requirements analysis, software analysis and design, implementation, testing, code inspection, configuration management, build, delivery and deployment;
OA4. Software product quality assessment and improvement.
CP1 - Software engineering processes
CP2 - Configuration management and build automation
CP3 - Software requirements
CP4 - Software testing
CP5 - Software design
CP6 - Product quality metrics and product improvement
CP7 - Software evolution, delivery and deployment
Periodic Assessment: Practical group project with a weight of 50% (individualized and minimum grade of 9.5 out of 20) and frequency (1º epoch) with a weight of 50% (minimum grade of 9.5 out of 20).
Final exam (100%): 1º epoch, 2ª epoch and special epoch.
Title: - Slides de Engenharia de Software, disponíveis na plataforma de e-learning, à medida que os temas forem introduzidos.
- Software Engineering, Ian Sommerville, 10th Edition, Addison-Wesley, 2016.
- Software Engineering: a Practitioner's Approach, Roger Pressman / Bruce R. Maxim, 8th edition, McGraw-Hill, 2014.
- Refactoring: Improving the Design of Existing Code, Martin Fowler with contributions by Kent Beck, John Brant, William Opdyke and Don Roberts, Object Technology Series, Addison-Wesley, 2000.
- Software Engineering Body of Knowledge (SWEBOK V3.0), IEEE Computer Society Professional Practices Committee, 2014.
- Introdução à Engenharia de Software, Sérgio Guerreiro, FCA Editora, 2015.
- SCRUM - A gestão ágil de projetos, João Paulo Pinto e Christiane Tscharf, FCA Editora, 2019.
Authors:
Reference:
Year:
Title: - Object-Oriented and Classical Software Engineering, Stephen Schach, 8th Edition, McGraw-Hill, 2011.
- The Object Constraint Language: Getting Your Models Ready for MDA, Jos Warmer, Anneke Kleppe, 2nd Edition, Pearson Education, 2003.
- A code of ethics and professional practice for software engineering, ACM/IEEE-CS Joint Task Force on Software Engineering Ethics and Professional Practices, 2004.
Authors:
Reference:
Year:
Human-Computer Interaction
OA1: To master basic concepts on HCI using a given text/paper, being able to interpret it, organize the ideas and present them oraly;
OA2: to be able to define and create a prototype, its interface, defining functionality, usability, target audience, tests and evaluation
OA3: to be able to implement the final iteration of the prototype, in 3D, in the form of an App or in the context of a web page
CP1: Human factors, psychology, interactive systems design; The machine, interfaces for text, position, selection; output; processing
CP2: Interaction techniques, interaction paradigms, screen layout and design, design e layout de ecrãs, color perception and implications
CP3: Task analysis
CP4: Dialog styles; semantics; dialog analysis and design
CP5: Low-fidelity prototyping (lo-fi) versus hi-fi
CP6: Usability
CP7: User models
CP8: Evaluation techniques, heuristics
CP9: Multimedia and web design; Digital video for the web and multimedia, and the H-C interaction design
CP10: CAD and 3D modeling with Solid Edge; CNC and 3D printing
Assessment by Exam (100%) or Periodic Assessment consisting of: Written Test 1 (35%); Written Test 2 (35%); Written Test 3 or miniProject (30%); Written Test 3 held simultaneously with Exam 1 in the evaluation period; Written tests are individual and miniProject is in group; the miniProject is subject to oral discussion, if the professors deem it necessary; Written Tests have a minimum grade of 8 valores; minProject has no minimum grade; the 30% of the written Test 3 or miniProject grade is applied to the maximum of the two.
BibliographyTitle: A Dix, J Finlay, G Abowd, R Beale, "Human-Computer Interaction", 3rd ed., Prentice Hall, ISBN: 0-13-046109-1, 2004
C Lewis, J Rieman, TASK-CENTERED USER INTERFACE DESIGN, A Practical Introduction, shareware, 1994.
M Retting, Prototyping for Tiny Fingers, Communications of the ACM, April 1994, Vol.37, No.4, pp 21-27
PF Lopes, Computer Aided Design, creating 3D with Solid Edge (6 modules), Tutorial modules, video for e-learning/b-learning, ISCTE-IUL, 2006
C Myhill, Get Your Product Used in Anger! (Before Assuming You Understand its Requirements), interactions, may+june 2003
L MIGNONNEAU, C SOMMERER, Designing emotional, metaphoric, natural and intuitive interfaces for interactive art, edutainment and mobile communications, Computers & Graphics 29 (2005) 837-851
PF Lopes, D Jardim, I Alexandre, Math4Kids, Proc. First Iberian Workshop on Serious Games and Meaningful Play (SGaMePlay'2011), Chaves, Portugal, June, 2011, ISBN: 978-989-96247-5-7, pp 711-716.
Authors:
Reference:
Year:
Title: Jenny Preece, Ivonne Rogers, Helen Sharp, Interaction Design: beyond human-computer interaction, John Wiley & Sons, ISBN 0-471-49278-7, 2002
PF. Lopes, J. Reis, F. Santos, S. Eloy, A. Paio, V. Rato, at all, Shaping emergent cities for all, SIGraDi 2011, XV Congreso de la Sociedad Iberoamericana de Grafica Digital, 16-18 de Novembro 2011, Santa Fé, Argentina, pp. 106-108. ISBN: 978-987-657-679-6
Authors:
Reference:
Year:
Distributed Information Systems Integration Project
1. Efficient and secure storage of large volumes of data;
2. Access, transport and integrate dispersed information for various applications;
3. Automatic monitoring of data access (auditing);
4. Develop soft skills: Problem Solving, Teamwork and Critical Observation.
1 Migrations (coherent, incremental) using scripts and remote access through web services (REST / php);
2. Redundancy and distribution of data to manage fault tolerance on large data volumes;
3. Using MongoDB / JSON to store and extract large volumes of data;
4. PLSQL programming to automate security control; 5. Brief Introduction to Android Application Development;
6. MTTQ protocol as a way of communicating with sensors.
The Course is exclusively evaluated through a project. The individual grade results from the interim reports evaluation, the final report the evaluation of the student's performance during the semester (their involvement in weekly discussions), and a brief questionnaire. Class attendance is compulsory for 80% meeting. There is no evaluation by exam There is no evaluation per examination, and the "special" evaluation may complete the continuous evaluation.
BibliographyTitle: Para a restante matéria existem inúmeros tutorais e artigos na internet com qualidade e grau de dificuldade adequados aos alunos da licenciatura
NoSQL Database: New Era of Databases for Big data Analytics - Classification, Characteristics and Comparison, A B M Moniruzzaman,?Syed Akhter Hossain, 2013 (https://arxiv.org/abs/1307.0191)
Authors:
Reference:
Year:
Objectives
The degree in Computer Engineering is designed to train professionals capable of responding with agility to the organizational challenges in which technology can value the components of knowledge and innovation, not limited to an intervention in the level of efficiency and computerization of processes.
The general training offers the student the technical and scientific skills to perform functions in any area of Informatics Engineering, such as:
1. Integrating complex computer systems development teams, for example in the banking, insurance, central administration, multinational;
2. specify, design and develop information systems appropriate to the objectives and needs of enterprises and their organizational culture;
3. designing, developing and maintaining computer networks;
4. managing and organizing the knowledge of a company in different formats and contents.
Accreditations