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 2025/2026
Curricular Courses | Credits | |
---|---|---|
Introduction to Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
Calculus I
6.0 ECTS
|
Mandatory Courses | 6.0 |
Mechanics and Electricity
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 |
Operating Systems
6.0 ECTS
|
Mandatory Courses | 6.0 |
Microprocessors
6.0 ECTS
|
Mandatory Courses | 6.0 |
Fundamentals of Computer Architecture
6.0 ECTS
|
Mandatory Courses | 6.0 |
Linear Algebra
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 |
Object Oriented Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
Databases
6.0 ECTS
|
Mandatory Courses | 6.0 |
Information System Design and Development
6.0 ECTS
|
Mandatory Courses | 6.0 |
Probabilities and stochastic processes
6.0 ECTS
|
Mandatory Courses | 6.0 |
Mathematical methods for computation
6.0 ECTS
|
Mandatory Courses | 6.0 |
Fundamentals of Computer Networks
6.0 ECTS
|
Mandatory Courses | 6.0 |
Theory of Computation
6.0 ECTS
|
Mandatory Courses | 6.0 |
Algorithm Design and Analysis
6.0 ECTS
|
Mandatory Courses | 6.0 |
Information Processing
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 |
Autonomous Agents
6.0 ECTS
|
Mandatory Courses | 6.0 |
Development for Internet and Mobile Apps
6.0 ECTS
|
Mandatory Courses | 6.0 |
Network Architectures
6.0 ECTS
|
Mandatory Courses | 6.0 |
Concurrent and Parallel Programming
6.0 ECTS
|
Mandatory Courses | 6.0 |
Software Engineering
6.0 ECTS
|
Mandatory Courses | 6.0 |
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 mid-term 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:
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 Mini-Tests 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:
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 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: 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 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
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, Addison-Wesley, 2012
Authors:
Reference: null
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: 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 - mini-tests 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:
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. 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: 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: null
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: 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 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 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:
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 high-level 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 Flip-flops
+ 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
+ Von-Neumann 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 mini-tests, carried out weekly on the e-learning 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 mini-tests 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, Prentice-Hall, 2015
+ Sebenta e Caderno de exercícios de Fundamentos de Arquitetura de Computadores, disponíveis no sistema de e-learning
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:
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 Gram-Schmidt 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 Gram-Schmidt 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 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 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) Wellesley-Cambridge Press.
Blyth, T.S., & Robertson, E. F. (2009) Basic Linear Algebra, Wellesley-Cambridge 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:
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
(CP1) Fundamental notions of AI with emphasis on the search-based approach
(CP2) Search algorithms: depth first and breadth first, A*
(CP3) The basics of machine learning: supervised, reinforcement learning and unsupervised learning
(CP4) Genetic algorithms
(CP5) Multilayer feedforward neural networks with backpropagation
(CP6) Fundamental notions relating to knowledge, representation and the architecture of knowledge-based systems
(CP7) First-order predicate logic: representation and deduction
(CP8) Declarative knowledge represented in Logic Programming
(CP9) Rule Systems based on Fuzzy Logic
Assessment throughout the semester:
- 2 Tests (35% each), minimum grade of 8.5 in each test
- 2 Project (15% each) minimum grade of 9.5 in each project
Final evaluation:
- Exam (in 3 possible dates: 1ª época, 2ª época and Special Season) 100%
The final oral discussions of the projects take place in groups after the final submission, on the date(s) indicated in its statement. First project is due in mid semester and the second in the last week of classes. Although the projects are developed in a group, the grade awarded to each student in the group is individualized depending on the student's contribution to the project and the student's performance in the oral discussion
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: null
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: null
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: differentiate the benefits of functional paradigm characteristics compared to other programming paradigms;
LO4: implement multi-paradigm applications, with an interactive component, of medium-scale;
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 (pure functions, higher order functions, compositions of functions, immutability);
PC3: Introduction to essential technologies to support team programming;
PC4: Event-driven programming;
PC5: User interface patterns;
PC6: Integration of multi-paradigm programs;
Assessment throughout the semester 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: null
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: 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 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
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 e-learning.
Y. Daniel Liang, "Introduction to Java Programming: Comprehensive Version" 10th Ed. Prentice-Hall / Pearson, 2015.
Authors:
Reference: null
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: 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: 978-972-618-474-4.
- Gouveia, Feliz (2021). Bases de Dados - Fundamentos e Aplicações, 2ª Edição Aumentada, FCA Editora, ISBN: 978-972-722-901-7.
- Damas, Luís (2017). SQL, 14ª Edição, FCA Editora, ISBN 978-972-722-829-4.
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 978-989-561-265-9.
- Booch, Grady; Rumbaugh, James & Jacobson, Ivar (2005). The Unified Modeling Language User Guide, 2nd Edition, Addison-Wesley, ISBN 978-032-126-797-9.
- Ramakrishnan, Raghu & Gehrke, Johannes (2002). Database Management Systems, 3rd Edition, McGraw-Hill, ISBN 978-007-246-563-1.
- Caldeira, Carlos Pampulim (2011). A Arte das Bases de Dados, Edições Sílabo, ISBN 978-972-618-627-4.
- Date, Christopher J. (2004). An introduction to Database Systems, 8th Edition, Addison-Wesley, ISBN 978-032-119-784-9.
- Elmasri, Ramez & Navathe, Shamkant (2010). Fundamentals of Database Systems, 6th Edition, Addison-Wesley, ISBN 978-013-608-620-8.
- Laudon, Kenneth & Laudon, Jane (2009). Management Information Systems, 11th Edition, Prentice Hall, ISBN 978-013-607-846-3.
- McNurlin, Barbara; Sprague Jr., Ralph & Bui, Tung (2009). Information Systems Management, 8th Edition, Prentice Hall, ISBN 978-013-243-715-8.
- Pereira, José Luís (1998). Tecnologias de Bases de Dados, 3ª Edição, FCA Editora, ISBN 978-972-722-143-1.
- Silberschatz, Avi; Korth, Henry F. & Sudarshan, S. (2010). Database System Concepts, 6th Edition, Addison-Wesley, ISBN 978-007-352-332-3.
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 Low-Code 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. Co-construct solutions based on critical thinking, creative problem-solving, collaboration, critical observation, negotiation and collaborative decision-making;
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. Low-Code 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.iscte-iul.pt/conteudos/estudantes/informacao-academica/regulamentos-formularios/1025/regulamentos
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: null
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: 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 One-dimensional 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 Discrete-time Markov chains, Chapman-Kolmogorov 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:
Mid-term 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:
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 (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 mini-projects (25%), or
- Assessment throughout the semester v2: exam in the 1st examination period (75%) + 4 mini-projects (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 mini-projects are group projects. The groups should be composed, ideally, by 3 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, 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 Saint-Aubin, Y., "Mathematics and Technology", Springer 2008.
Authors:
Reference: null
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. Assessment throughout the semester:
- 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 group to be delivered in the penultimate week of classes - (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, 2022 (6th edition).
Authors:
Reference: null
Year:
Title: * Computer Networking: A Top-Down Approach; James F. Kurose, Keith W. Ross; Pearson Education, 2022 (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: 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 Context-free Languages
PC4. Turing Machines, Recursively Enumerable Languages and Church-Turing 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, 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: 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:
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: 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: Learn the main algorithms and data structures used in graphs.
The syllabus contents are:
CP1: Analysis of algorithms and Complexity theory: amortized cases and approximation algorithms.
CP2: Algorithm design techniques: incremental, divide-and-conquer, randomization, greedy, dynamic programming.
CP3: Graphs: efficient data structure and algorithms (spanning trees, traversals, shortest paths, flow algorithms).
Assessment can be done throughout the semester or through a final exam:
Assessment throughout the semester: E x 0.20 + T x 0.60 + M x 0.20 = 100%.
(E) Weekly exercise assignments:
- Subject up to the last lesson given.
- No minimum passing grade.
(T) Tests:
- 2 (equally weighted) individual written tests with a minimum passing grade of 7.5;
- 1st test: in the mid-term week;
- 2nd test: on the day of the first exam.
(M) Mini-projects:
- Performed in a group of 2 students.
- No minimum passing grade.
Exam: 1st, 2nd and Special Seasons (written exam) = 100%.
Title: - Thomas Cormen, Charles Leiserson, Ronald L. Rivest and Clifford Stein (2022). Introduction to Algorithms. 34th ed., MIT Press. (CP1 e CP2)
- Robert Sedgewick and Kevin Wayne (2011). Algorithms 4th Edition, Addison-Wesley. (CP3)
Authors:
Reference: null
Year:
Title: - John Kleinberg and Eva Tardos (2005). Algorithm Design, Addison-Wesley.
- Tim Roughgarden (2022). Algorithms Illuminated: Omnibus Edition. Cambridge: CUP.
- David Williamson and David Shmoys (2010). The Design of Approximation Algorithms, Cambridge University Press.
Authors:
Reference: null
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: null
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: null
Year:
Human-Computer Interaction
OA1: acquire, understand and master fundamentals of IPM Human-Machine Interaction;
OA2: develop the ability to define and create a prototype, its interface, with definition of functionalities, usability, target audience, testing and evaluation
OA3: be able to implement the final iteration of the prototype, in 3D, in the form of an App or in a Web page context
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%) – 1ª Época, 2ª Época e Época Especial, or Assessment throughout the semester 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; Exams and 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: null
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: null
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.
All assessment is based on the group project despite being individual. The individual grade results:
a) initial reports (20%)
b) final report (35%) delivered in the last week of classes
c) assessment of the student's performance throughout the semester
(involvement in weekly discussions, in its capacity for exposition and technical discussion) 15%
d) individual questionnaire at the time of the final discussion (10%)
e) final discussion (20%) in the week following the delivery of the final report
Approval: final grade of 9.5 as long as the average grade between c) and e) b is greater than or equal to 40%, otherwise fail.
Attendance at 80% of weekly meetings is mandatory. There is no assessment by exam and the special period consists of submitting a report in addition to the continuous assessment.
Title: 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: null
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
Evaluation along the class period (100% of the final grade): two tests + optional mini project
Tests:
* Each test has a minimum grade of 8 points
* Grade in the compound of the two tests (TESTS): 60% x Max(NT1, NT2) + 40% Min(NT1, NT2), in which NTi is the grade in test Ti
* The first test will be applied sensibly at the middle of the class period, when the subject "agents with goals" starts. The second test will be applied after the whole syllabus has been covered, focusing exclusively on the second part of the course subject matter. In accordance with the students, the second test will be made either by the end of the class period or coinciding with the first exam.
Optional Mini Project (groups of 3 or 4 students)
* Submission of the work. Mini project grade (MINPROJ): 0, 1, or 2 points. The grade is the same for all elements of the group. The mini project grade (MINPROJ) cannot decrease with the presentation.
* The mini project focuses exclusively on the analysis of agent application scenarios. It can be submitted as soon as that part of the course subject matter is addressed, which will happen sensibly by the middle of the course class period. Its exact submission date will be set in accordance with the students availability but will be the same for all.
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 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: null
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: null
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: null
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: null
Year:
Network Architectures
OA1 - Explain the operation of networks in an integrated manner, identifying and implementing different solutions to support applications and services.
OA2 - Explain, distinguish and evaluate different protocols and services available for end-to-end communication and communication between applications over the network.
OA3 - Explain the architecture of the transport network, software defined networks and mobility. Be able to distinguish and evaluate different architectures.
OA4 - Be able to distinguish 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.
Evaluation during the semester:
65% written test - 30% 1st written test on CP1 and CP2, and 35% - 2nd written test on CP3 to 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. The evaluation of the laboratories is done in groups, with an individual component for each student.
Season 1 Evaluation:
Assessed 100% with a written test on CP1 to CP5
Season 2 Evaluation:
Assessed 100% with a written test on CP1 to CP5
Special Season Evaluation:
Assessed 100% with a written test on 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: null
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: null
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: null
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: null
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
Assessment throughout the semester:
Practical group project with a weight of 50% (individualized and minimum grade of 9.5 out of 20).
Attendance (1st season) with a weight of 50% (minimum grade 9.5 out of 20).
The final grade can be increased by up to 1.6 (with a maximum limit of 20), through individual quizzes in theoretical-practical classes throughout the semester. Quizzes assessment is optional, there is no minimum grade, it adds the final grade calculated with the project and frequency components, never penalizing the final grade.
Final exam (100%): 1st season, 2nd season and special season.
Title: Sommerville, I. (2016). Software Engineering, Global Edition (10th ed.). London, England: Pearson Education.
Sommerville, I. (2021). Engineering software products: An introduction to modern software engineering.
Pressman, R. S., & Maxim, B. R. (2014). Software Engineering: A Practitioner’s Approach (8th ed.). New York, NY: McGraw-Hill Professional.
Fowler, M., Beck, K., Brant, J., Opdyke, W., & Roberts, D. (1999). Refactoring. Boston, MA: Addison Wesley.
Ieee Computer Society. (2014). Guide to the software engineering body of knowledge (swebok(r)) (P. Bourque & R. E. Fairley, Eds.). IEEE Computer Society Press.
Guerreiro, S. (2015). Introdução à Engenharia de Software, FCA Editora.
Pinto, J.P., Tscharf, C. (2019). SCRUM - A gestão ágil de projetos, FCA Editora.
Authors:
Reference: null
Year:
Title: Schach, S. R. (2010). Object-oriented and classical software engineering (8th ed.). New York, NY: McGraw-Hill Professional.
IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices. (2004). Software Engineering Code of ethics and Professional Practice. Science and Engineering Ethics.
Authors:
Reference: null
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