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 
HumanComputer 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 GramSchmidt 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 GramSchmidt 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 minitests (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 minitests 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, WellesleyCambridge Press, fourth edition, 2009.
T.S. Blyth and E.F. Robertson, Basic Linear Algebra, WellesleyCambridge 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 MiniTests 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 "sumofproducts" form
 Karnaugh maps
CP3. Combinational circuits
 Combinational circuits design
 NAND, NOR and XOR gates
 Decoders and multiplexers
 Propagation delays
CP4. Sequential circuits
 Latches and flipflops
 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
 Microinstructions
 Program execution
1. Periodic assessment, comprising:
 One midterm 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 minitests (10%): performed on a weekly basis (elearning 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/arquitecturadecomputadoresdossistemasdigitaisaosmicroprocessadores/
Morris Mano, Charles Kime, Logic and Computer Design Fundamentals, 5th Edition, Pearson, 2015, Mano 2015, https://www.pearson.com/enus/subjectcatalog/p/logiccomputerdesignfundamentals/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 minitests
[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. PrenticeHall, 2005. ISBN: 013185721  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 UnionFind
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, AddisonWesley, 2012
Authors:
Reference:
Year:
Title: D. Harel, Algorithmics: the Spirit of Computing, 3th edition, AddisonWesley, 2004
F. Santos and C. Conti, Algoritmos e Estruturas de Dados  Exercícios, ISCTEIUL, 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 McGrawHill 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 McGrawHill. (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 lowlevel 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 speedup;
 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;
 Unicicle and multicicle 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 interprocess 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: 9789727227563
 Andrew Tanenbaum, Herbert Bos (2014), Modern Operating Systems, 4th Edition, Pearson PrenticeHall, ISBN: 9781292061429
Authors:
Reference:
Year:
Title:  Andrew Tanenbaum, Albert Woodhull (2006), Operating Systems Design and Implementation, 3rd edition, PrenticeHall, 2006, ISBN: 9780131429383
 Paulo Trezentos, Susana Nunes (2008), Linux para PCs, 3ª edição, FCA, ISBN: 9789727226030
 Paulo Trezentos, António Cardoso (2006), Fundamental do Linux, 3ª edição, FCA, ISBN: 9789727225149
 William Stallings (2018), Operating Systems Internals and Principles, 9th edition, Pearson, ISBN13: 9780134700069
 Abraham Silberschatz, Peter Galvin, Greg Gagne (2018), Operating System Concepts, 10th edition, Wiley, ISBN: 9781119320913
 Abraham Silberschatz, Peter Galvin, Greg Gagne (2014), Operating Systems Concepts Essentials, 2nd edition, Wiley, ISBN: 9781118843970
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 midterm 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 midterm 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 elearning 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, 9789726184744,
Gouveia, Feliz, Bases de Dados: Fundamentos e Aplicações  2ª Edição Aumentada, FCA, 2021, 9789727229017,
Damas, Luís, SQL  Structured Query Language  14ª Edição, FCA, 2017, 9789727228294,
Authors:
Reference:
Year:
Title: Ramakrishnan, Raghu & Gehrke, Johannes, Database Management Systems  3rd Edition, McGrawHill, 2002, 9780072465631,
Booch, Grady; Rumbaugh, James & Jacobson, Ivar, The Unified Modeling Language User Guide  2nd Edition, AddisonWesley, 2005, 9780321267979,
Alturas, Bráulio, Introdução aos Sistemas de informação Organizacionais, 2ª Edição, Edições Sílabo, 2022, 9789895612659,
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) Momentgenerating 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 errorcontrol 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 elearning.
Y. Daniel Liang, "Introduction to Java Programming: Comprehensive Version" 10th Ed. PrenticeHall / Pearson, 2015.
Authors:
Reference:
Year:
Title: F. Mário Martins, "Java 8 POO + Construções Funcionais",
FCA  Editora de Informática, 2017. ISBN: 9789727228386 (portuguese)
Ken Arnold, James Gosling e David Holmes, "The JavaTM Programming Language", 3ª edição, AddisonWesley, 2000.
ISBN: 0201704331
Bruce Eckel, "Thinking in Java", 3ª edição, Prentice Hall, 2002. ISBN: 0131002872
Gamma, Helm, Johnson & Vlissides (1994). Design Patterns. AddisonWesley. ISBN 0201633612.
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 Contextfree Languages
Contextfree languages contextfree grammars. Pushdown automata. Contextfree languages recognition.
IV Turing Machines and Recursively Enumerable Languages
Recursively enumerable languages. Turing Machines. ChurchTuring 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, ISCTEIUL, 2015.
F. Santos, Teoria da Computação  Folhas de Apoio, ISCTEIUL, 2013.
J. Martin, Introduction to Languages and the Theory of Computation, McGrawHill, (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 (LG1LG3) 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 miniprojects (25%), or
 Periodic assessment v2: exam in the 1st examination period (75%) + 4 miniprojects (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 miniprojects are group projects. The groups should be composed, ideally, by 4 students. Some miniprojects 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 SaintAubin, 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 LowCode 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. Cobuild 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. LowCode implementation technologies;
P7. Integration technologies in the context of IS: ServiceOriented Architectures, API and REST;
P8. ServiceOriented 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, McGrawHill, USA, 7th edition, 2007.
Avison, D. and Fitzgerald, G., Information Systems Development: methodologies, techniques, and tools, McGrawHill Education ? Europe, 4th ed., 2006.
Seidl, Martina et al., UML@Classroom: An Introduction to ObjectOriented Modeling, Springer, 2012.
Brambilla, Marco et al., ModelDriven 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., ServiceOriented 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, AddisonWesley, 2004.
GoldBernstein, B. and Ruh, W., Enterprise Integration: The Essential Guide to Integration Solutions, AddisonWesley, 2005.
Authors:
Reference:
Year:
Title: Modelling information system processes: https://www.modelingguidelines.org/
Modelling processes and UML with Signavio tutorials:
http://elearning.uml.ac.at/quiz
https://documentation.signavio.com/suite/enus/Content/workflowaccelerator/userguide/tutorials/intro.htm
https://documentation.signavio.com/suite/enus/Content/processmanager/userguide/intro.htm
https://www.signavio.com/video/signaviotutorialvideos/
https://www.signavio.com/bpmnintroductoryguide/
https://documentation.signavio.com/pdfs/en/ProcessManagerUserGuideen.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, AddisonWesley, 2004.
Booch, Grady, Rumbaugh, James, Jacobson, Ivar; The Unified Modeling Language User Guide, Second Edition, AddisonWesley, 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, AddisonWesley, 2005.
Implementing systems with OutSystems lowcode:
https://success.outsystems.com/Documentation
https://www.outsystems.com/training/paths/18/becomingareactivewebdeveloper/
https://www.outsystems.com/training/courses/123/modelingdata/
https://www.outsystems.com/training/courses/128/modelingdatarelationships/
https://www.outsystems.com/training/courses/116/integratingwithwebservices/
https://www.outsystems.com/training/courses/184/modelingbusinessprocesses/
https://www.outsystems.com/training/paths/16/becomingafrontenddeveloperinoutsystems/
https://www.outsystems.com/training/courses/124/reactiveuidevelopment101/
https://www.outsystems.com/training/courses/129/buildingreactivewebforms/
https://www.outsystems.com/training/courses/130/formvalidations/
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, Divideandconquer, 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 midterm week;
 2nd test: on the day of the first exam.
(c) Miniprojects (M):
 2 miniprojects (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, AddisonWesley.
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: