Accreditations
The 1st cycle course in Computer Engineering is a 3 year programme awarding 180 ECTS credits, divided among 162 credits in mandatory course units and 12 credits in electives 6 of wich 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
LG1. Understand the structure of the vector space IR^n and the concepts of vector subspaces, linear dependence of vectors, basis, and dimension.
LG2. Apply the GramSchmidt method to obtain an orthonormal basis.
LG3. Solve and classify systems of linear equations.
LG4. Understand the notion of a matrix and master matrix algebra.
LG5. Calculate, interpret, and apply determinants of square matrices.
LG6. Identify linear functions (and matrices of linear functions) between vector spaces.
LG7. Calculate and interpret eigenvalues and eigenvectors. Diagonalize matrices. Determine integer powers of diagonalizable matrices.
LG8. Apply the singular value decomposition of a matrix to image compression.
LG9. Classify quadratic forms.
PC1. 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.
PC2. Matrices
2.1 Elementary and permutation matrices.
2.2 Matrix operations.
2.3 Transpose and inverse of matrices. Properties.
2.4 LU factorization.
PC3. Determinants. Definition. Properties.
PC4. 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.
PC5. 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:
 Assessment throughout the semester:
 6 written 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 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 Assessment throughout the semester 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.
Strang, G. (2023). Introduction to Linear Algebra (sixth edition) WellesleyCambridge Press.
Blyth, T.S., & Robertson, E. F. (2009) Basic Linear Algebra, WellesleyCambridge Press.
Authors:
Reference: null
Year:
Title: Burden, R. L., & Faires, J. D. (2015) Numerical analysis, Cengage Learning.
Lay, D., Lay, S., & McDonald, J. (2016) Linear Algebra and Its Applications (fifth edition) Pearson.
Authors:
Reference: null
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. Assessment throughout the semester, consisting of:
 Two MiniTests on MATLAB done in class (5% + 5%)
 Test 1 (45%): written test taken during the semester with a minimum grade of 7.5 values.
 Test 2 (45%): written test carried out in the 1st assessment period with a minimum grade of 7.5 values.
2. Assessment by exam: 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. The lecturers reserve the right to require an oral exam to a student in order to verify the knowledge acquired.
Title: K. Ross, Elementary Analysis. The theory of calculus, Springer, 2013.
R. Burden, J. D. Faires, A. Burden, Numerical Analysis, Cengage Learning, 2015.
Authors:
Reference: null
Year:
Title: Sérgio Mendes, Apontamentos da UC, 2023.
J. Campos Ferreira, Introdução à Análise Matemática, Fundação Calouste Gulbenkian, 2018.
E. Herman, G. Strang, Calculus, Vols 1 e 2, OpenStax, 2017, 2018.
Authors:
Reference: null
Year:
Fundamentals of Computer Architecture
Upon successful completion of this course unit, the student should be able to:
+ LO1  Understand how a modern computer works, recognizing its main components and respective functionalities;
+ LO2  Understand the operation of arithmetic and logical digital circuits, and design circuits of this type based on the specification of a problem;
+ LO3  Explain the operation of synchronous sequential circuits and design circuits of this type to control other elements in a digital system;
+ LO4  Analyze the operation of register files and memories and their use in the context of a digital computer;
+ LO5  Understand how the various components are combined to execute individual instructions and complete programs.
+ PC1. Computer architecture
+ Basic architecture: control, datapath, memory and I/O
+ Machine code, assembly language, and highlevel languages
+ Representation of information
+ Numerical bases and binary numbering
+ PC2. Combinatorial Logic
+ Operations on bits
+ Boolean algebra
+ Truth tables
+ Logic Gates
+ PC3. Combinatorial Circuits
+ Normalized forms and Karnaugh maps
+ Design combinatorial circuits
+ Decoders and multiplexers
+ Logic and arithmetic circuits
+ PC4. Sequential Circuits
+ Latches and Flipflops
+ Models of sequential circuits
+ Sequential circuit design
+ PC5. Registers and Memories
+ Registers and register files
+ Register transfer
+ Types of memories
+ Memory banks
+ PC6. Processor Architecture
+ VonNeumann architecture
+ Instruction Set Architecture (ISA)
+ Datapath and control units
+ Modern CPUs
The curricular unit can be carried out through 2 types of assessment:
1. Assessment throughout the semester
Assessment throughout the semester consists of:
+ (70%) 2 tests: 1 test carried out in the middle of the semester, on a date to be defined, and a 2nd test carried out on the first date of the exam period;
+ (20%) Laboratory group work, carried out weekly during laboratory classes;
+ (10%) Online minitests, carried out weekly on the elearning platform.
The final grade is calculated through a weighted average of these 3 aspects according to the weights presented, taking into account that:
+ Passing the test component requires obtaining a minimum grade of 7.5 in both tests;
+ Missing 2 or more laboratory sessions results in automatic failure in this component of the assessment;
+ Failure to deliver 4 or more online minitests results in automatic failure in this component of the assessment;
+ For the purposes of calculating grades, missing assignments are marked with 0 values;
Failure in any of the assessment components throughout the semester requires that the student is assessed by final exam.
2. Assessment by final exam
Assessment by final exam consists of 1 single exam carried out in any of the available exam periods, which will correspond to 100% of the final grade.
Title: + Logic and Computer Design Fundamentals, 5th Edition, Morris Mano e Charles Kime, PrenticeHall, 2015
+ Sebenta e Caderno de exercícios de Fundamentos de Arquitetura de Computadores, disponíveis no sistema de elearning
Authors:
Reference: null
Year:
Title: + Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, 2ª Edição, Guilherme Arroz, José Monteiro e Arlindo Oliveira, IST Press, 2009
+ Computer Organization and Design, 5th Edition, David Patterson and John Hennessy, Morgan Kaufmann, 2014
Authors:
Reference: null
Year:
Introduction to Programming
After obtaining approval for 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.
OA4. Write and understand Java code.
CP1. Independent functions
CP2. Variables and control structures
CP3. Dependent functions
CP4. Arrays
CP5. Compound values
CP6. Procedures and references
CP7. Object classes
CP8. Matrices
CP9. Files and I/O
CP10. Recursion
Assessment is carried out throughout the semester. The evaluation components and their respective weights in the final grade are as follows:
a) Weekly submission of exercises (10%); minimum grade: 60%.
b) Intermediate midterm test (25%); no minimum grade required.
c) Individual Project (25%); minimum grade: 20%.
d) Final Test to be carried out during the exam period (40%); minimum grade: 40%.
Notes:
1. The evaluation of weekly exercises is based only on the accounting of submissions duly completed (and not on the evaluation of the exercises themselves).
2. There will be two possibilities for taking the Final Test, in the first and second exam period.
3. There is no possibility of passing the course just by exam for 100% of the grade.
4. Evaluation through the special exam period involves delivering and discussing an Individual Project (25%) and taking a written exam (75%).
5. It is not possible to use evaluation component grades obtained in previous course editions.
Title: Y. Daniel Liang, "Introduction to Java programming : comprehensive version", 10th Ed., Pearson, 2015.
Authors:
Reference: null
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
Assessment throughout the semester: 10 individual programming exercises (25%), without a minimum grade and delivered weekly and two written tests (75%), the first in the middle of the semester and the second coinciding with the 1st season exam. Each of the written tests has a minimum grade of 7.5 points. Attendance in classes is not mandatory.
or
Individual final exam (100%) – 1st season, 2nd season and Special Season
Title: (Algorithms, Part I  MOOC in www.coursera.org)
R. Sedgewick and K. Wayne, Algorithms, 4th edition, AddisonWesley, 2012
Authors:
Reference: null
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: null
Year:
Calculus II
LO1: Understand the concepts and techniques of differential calculus in Rn.
LO2: Apply differentiability in the study of optimization.
LO3: Understand the definitions and compute integrals in Rn.
LO4: Apply double and triple integrals in the calculation of areas, volumes, center of mass, and probability density.
LO5: Use numerical methods for integration.
LO6: Understand the definitions of vector calculus and apply the theorems of vector analysis 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 can choose one of the following evaluation methods:
Assessment throughout the semester  minitests in class (30%) + Test (70%).
Assessment by Exam (100%), in any of the exam periods.
The responsible professors reserve the right to conduct oral exams whenever they deem it necessary.
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: null
Year:
Title: Pires, G. (2012) Cálculo Diferencial e Integral em Rn, IST Press, (1ª Edição).
Authors:
Reference: null
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: null
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: null
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 done throughout the semester or through a final written exam:
A – Throughout the semester 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 and does not have a 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: null
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: null
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. Semaphores.
CP5: Interprocess comunication.
CP6: Memory management: models and algorithms.
CP7: Virtual Memory.
CP8: Input / Output.
CP9: File Systems.
CP10: 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 >= 9.5
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: null
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: null
Year:
Databases
With this curricular unit the student should be able to:
LO1. Develop abstraction mechanisms;
LO2. Develop information structuring abilities;
LO3. Develop ability to effectively use information search languages;
LO4. Implement a solution applying the concepts learned.
The programmatic contents (PC) are as follows:
PC1  UML Language, Class Diagram
PC2  Relational model
1. Design of relational schemas
2. Relationships and primary keys
3. Foreign keys and integrity rules
4. Optimizations and indexes
5. Transposition of a conceptual model to a relational model
PC3  SQL Language
1. Simple Querys;
2. Aggregation Functions
3. SubQuerys;
PC4  SQL Automations
1. Triggers
2. Stored Procedures and Functions
PC5  Transactions and concurrency
PC6 – Introduction to PHP/MySQL
Assessment throughout the semester:
 Group project, with a pondering of 40% in two phased deliveries;
 Individual written test, with a weight of 50% to be taken on the date of the first period; It is
 Four online midterm tests, with a weighting of 10% to be carried out throughout the semester.
Condition for approval: minimum grade of 8.00 points (out of 20), without rounding for the project and the test.
If the student fails or does not reach the minimum grade in the individual written test, they can use the date of the second period to repeat this assessment component. For project components and online interim tests, there will be no possibility of new deliveries or repetitions.
Students who wish to improve their grade will be able to take the exam, to be held on the date of the second period. None of the remaining components are capable of improvement.
Assessment by exam:
 Individual written test, without consultation, with all the material (100%).
Anyone who has not successfully completed the assessment throughout the semester, with an average grade greater than or equal to 10 (out of 20) takes a final exam – in the first period, second period or in the special period (according to the rules of the pedagogical council).
Title:  Ramos, Pedro Nogueira (2012). Desenhar Bases de Dados com UML, 2ª Edição, Edições Sílabo, ISBN: 9789726184744.
 Gouveia, Feliz (2021). Bases de Dados  Fundamentos e Aplicações, 2ª Edição Aumentada, FCA Editora, ISBN: 9789727229017.
 Damas, Luís (2017). SQL, 14ª Edição, FCA Editora, ISBN 9789727228294.
Authors:
Reference: null
Year:
Title:  Alturas, Bráulio (2022). Introdução aos Sistemas de informação Organizacionais, 2ª Edição, Edições Sílabo, ISBN 9789895612659.
 Booch, Grady; Rumbaugh, James & Jacobson, Ivar (2005). The Unified Modeling Language User Guide, 2nd Edition, AddisonWesley, ISBN 9780321267979.
 Ramakrishnan, Raghu & Gehrke, Johannes (2002). Database Management Systems, 3rd Edition, McGrawHill, ISBN 9780072465631.
 Caldeira, Carlos Pampulim (2011). A Arte das Bases de Dados, Edições Sílabo, ISBN 9789726186274.
 Date, Christopher J. (2004). An introduction to Database Systems, 8th Edition, AddisonWesley, ISBN 9780321197849.
 Elmasri, Ramez & Navathe, Shamkant (2010). Fundamentals of Database Systems, 6th Edition, AddisonWesley, ISBN 9780136086208.
 Laudon, Kenneth & Laudon, Jane (2009). Management Information Systems, 11th Edition, Prentice Hall, ISBN 9780136078463.
 McNurlin, Barbara; Sprague Jr., Ralph & Bui, Tung (2009). Information Systems Management, 8th Edition, Prentice Hall, ISBN 9780132437158.
 Pereira, José Luís (1998). Tecnologias de Bases de Dados, 3ª Edição, FCA Editora, ISBN 9789727221431.
 Silberschatz, Avi; Korth, Henry F. & Sudarshan, S. (2010). Database System Concepts, 6th Edition, AddisonWesley, ISBN 9780073523323.
Authors:
Reference: null
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.
CP1: Probability Theory
1.1 Random experiments, sample space, events
1.2 Concept of probability, Laplace and frequentist interpretation, Kolmogorov's axioms
1.3 Conditional probability, compound and total probabilities, Bayes' theorem, independence
CP2: Random Variables (RVs)
2.1 Onedimensional RVs, probability and distribution functions
2.2 Multidimensional RVs, joint, marginal, and conditional distributions, covariance, and correlation
2.3 Linear combinations of RVs
CP3: Central Theorems
3.1 Markov and Chebyshev inequalities
3.2 Law of Large Numbers
3.3 Central Limit Theorem
3.4 Moment generating function
CP4: Stochastic Processes
4.1 Discrete stochastic processes, counting processes, and Poisson processes
4.2 Combined and split Poisson processes
4.3 Continuous stochastic processes, Brownian motion  with drift and geometric
4.4 Discretetime Markov chains, ChapmanKolmogorov equations
4.5 Applications and algorithms
Main Assessment (MA):
Evaluation modalities  Students can choose one of the following evaluation modalities:
Continuous assessment throughout the semester, composed of:
Midterm test (60%): Written test conducted on a date to be determined during the class period; minimum grade of 8.0 points.
Final test (40%): Written test conducted in the 1st evaluation period; minimum grade of 8.0 points.
Assessment by exam: A written test (with a weight of 100%), conducted in the 1st or 2nd evaluation period.
Optional Assessment (OA): Completion of a project/study with a maximum score of three (3.0) points.
In case of passing the MA, the final grade (FG) is calculated by the formula: FG = min{20, MA + OA}
Oral exams: Students with a grade equal to or higher than 17 points in the FG who did not complete the OA may be called for an oral exam. The course grade will be equal to max{17, OEG}, where OEG (between 17 and 20 points) designates the oral exam grade. If the student does not attend this exam, the final grade will be 17 points.
Note: Repeating students have the same evaluation modalities, subject to the same rules.
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: null
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: null
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
As this is an eminently practical course, it is not assessed by 100% exams, but only during the semester. There are 2 types of assessment during the semester: A and B.
Mode A (you need to attend more than 2/3 of the practical classes and take Test 1):
 Class participation (25%, groups of 2 or individual)
 Written test (Test 1) in the middle of the semester (25%, individual, minimum mark of 8)
 Project (50%, groups of 2 or individual, submission and discussion in the last week of classes, minimum mark of 8)
Mode B:
 Written test in the middle of the semester (25%), (individual, minimum mark of 8)
 Written test on the date of the 1st term (25%, part of the subject or 50%, the whole subject  in this case it can replace test 1 if it has a mark <8), (individual, minimum mark of 8)
 Project (50%, groups of 2 or individual, submission and discussion in the last week of classes, minimum mark of 8)
Regardless of the modality followed, the grade for the “Project” component is limited by the performance demonstrated individually in an oral discussion, according to the following rule:
 Very good performance  no limit;
 Good performance  limit of 16 marks
 Sufficient performance  limit of 12 val.
 Poor performance in the discussion  failure of the course.
The special assessment period consists of a project and a test, each component worth 50%.
Grades can only be improved by repeating the assessment process 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: null
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: null
Year:
Theory of Computation
After the course the student will be able to:
LO1. Interpret and formulate precise definitions;
LO2. Analyze the logical consequences of the definitions;
LO3. Describe various computational models and their limitations;
LO4. Describe languages using grammars;
LO5. Solve computational problems using computational models learned;
LO6. Handle learned formalisms in building lexical and syntactic analyzers.
PC1. Mathematical Notation and proof techniques
PC2. Finite Automata and Regular Languages
PC3. Pushdown Automata and Contextfree Languages
PC4. Turing Machines, Recursively Enumerable Languages and ChurchTuring Thesis
Assessment throughout the semester: 10 individual weekly online mini evaluations (10%) and two individual tests (90%), the first in the middle of the semester and the second coinciding with the 1st season exam. There are no minimum passing scores for written tests. Attendance in classes is not mandatory.
or
Individual final exam (100%) – 1st season, 2nd season and Special Season
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: null
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: null
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 (numpy and 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 (numpy and Keras).
Students must obtain an overall grade of at least 10 (out of 20) in one of the assessment modes:
 Assessment throughout the semester v1: 4 tests (75%) + 4 miniprojects (25%), or
 Assessment throughout the semester v2: exam in the 1st examination period (75%) + 4 miniprojects (25%), or
 Exam (100%) in any of the examination periods.
 In the assessment throughout the semester v1, there is a minimal grade requirement of 8.5 out of 20 in the average of each of the pair of tests T1+T2 and T3+T4.
 In the assessment throughout the semester v2, there is a minimal grade requirement of 8.5 out of 20 in the exam.
 In the assessment throughout the semester v1, students may take 1 of the tests, and only one, during the examination periods. 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 3 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, might be subject to further examination to "defend the grade".
Title:  João L. Costa, Slides da cadeira.
Authors:
Reference: null
Year:
Title:  Boggess, A. and Narcowich, F. J., "A First Course in Wavelets with Fourier Analysis", Wiley, 2009.
 Goodfellow, I and Bengio, Y and Courville, A, "Deep Learning", MIT press, 2016
 Chollet, F., "Deep Learning with Python: Second Edition", Manning Publications, 2021.
 Rousseau, C and SaintAubin, Y., "Mathematics and Technology", Springer 2008.
Authors:
Reference: null
Year:
Information System Design and Development
LO1. Identify the requirements for CDSI and the main phases and activities of CDSI;
LO2. Transform requirements into technical specifications and IS models;
LO3. Use IS modelling tools;
LO4. Use LowCode implementation technologies and introduction to services for IS implementation, Application Programming Interfaces with REST protocols;
LO5. Build teamwork experience in the context of carrying out the CDSI project, developing discussion skills, tolerance, acceptance and respect for colleagues' opinions (soft skills);
LO6. Coconstruct solutions based on critical thinking, creative problemsolving, collaboration, critical observation, negotiation and collaborative decisionmaking;
LO7. Apply strategies for proposing thoughtful solutions, autonomous work based on researching solutions and sustained construction of arguments;
LO8. Develop oral and written communication skills and technical discussion skills.
CP1. Introduction to IS design and development;
CP2. IS development life cycle;
CP3. Requirements analysis for IS design and development;
CP4. IS specification and design, UML diagrams;
CP5. Process modelling in the context of IS in BPMN;
CP6. LowCode implementation technologies;
CP7. Integration technologies in the context of IS: Service Oriented Architectures, API and REST.
Assessment throughout the semester:
Assessment in the CU is exclusively carried out by evaluation throughout the semester as it is an imminently practical CU through a project. The individual grade is the result of several components: the assessment of the interim reports, the final report, the assessment of the student's performance throughout the semester (involvement in the weekly discussions, their capacity for exposition and technical discussion), orals and an individual test, as follows:
 Class participation (10%): assesses attendance, including compulsory attendance at 80% of classes, involvement and individual contributions by students in discussions and practical activities.
 Individual test (20%) to be taken in the interim;
 Phase 1 of the project: delivery, weekly discussions, oral presentation (30%), to be carried out during the semester;
 Phase 2 of the project: deliveries, weekly discussions (30%) to be held during the penultimate week of the semester;
 Phase 3 of the project: delivery of the test report (10%) to be carried out in the last week of the semester.
 The marks for phases 2 and 3 take into account the demonstration and oral discussion component of the final project to be carried out during the 1st season.
There is no assessment by exam and the special period is a complement to the assessment throughout the semester, if necessary.
The special period is reserved for special cases provided for in the General Regulations for the Assessment of Knowledge and Competences (RGACC), Article 14 Special period: https://www.iscteiul.pt/conteudos/estudantes/informacaoacademica/regulamentosformularios/1025/regulamentos
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: null
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: null
Year: