2x Awarded with the Outstanding Teaching Diploma
Department of Electrical and Computer Engineering (DEEC)
Instituto Superior Técnico (IST)
Shift Types: Laboratory
Program
Basic concepts of discrete-time (dt) and continous-time (ct) signals. Exemples. Transformations.
Basic conceps of systems. Memory, causalility, invariance, linearity, stability, invertibility.
Linear and time-invariant (LTI) systems. Impulse response. Convolution. Properties.
Fourier series (FS) of tc signals. Exponentials as proper functions of LTI systems. Representation of periodic signals by the FS.
Fourier transform (FT) of tc signals. Representation of aperiodic signals via FT. Frequency response, filtering.
Fourier transform of td signals. Concept of spectrum of td signal. LTI systems described by difference equations.
Sampling. Discrete-time procssing of continuous-time signals. Sampling theorem. Aliasing.
Laplace transform (TL). Transfer function (TF). LTI systems described by differential equations, poles and zeros. Block diagrams and equivalent TFs. Unilateral TL.
Bode plots.
Objectives
The course introduces the elementary theoretical and practical basis of discrete-time and continuous time Signals and Systems. Particular emphasis is on the frequency representations common in signal processing applications, the continous-to-discrete time conversion, and the analysis of linear and invariant dynamical systems.
Shift Types: Laboratory
Program
Introduction to modeling and simulation.
Time-driven systems. Models of economic, physical, electromechanical, electronic, energy, cell biology, and dynamic population systems. Distributed parameter systems. Parameter identification. Differential and difference equations. Dynamic linear and nonlinear state models. Linearization. Equilibrium points and stability. Computation of solutions.
Simulation tools. Numerical solution of systems of equations and ordinary and partial differential equations. Euler and Runge-Kutta methods. Fixed step and variable step methods. Languages and computational environments.
Discrete event systems. Automata. Markov chains. Queing theory. Monte Carlo Methods. Exs: manufacturing systems, computer networks, communications.
Introduction to hybrid systems. Agent-based modeling and simulation. Exs: Biological Systems, Autonomous Vehicles, Air Traffic.
Objectives
Upon successful completion of this course unit, students should be able to derive models of systems that arise from the interaction among subsystems of various types (mechanical, electrical, chemical, biological, electronic, communications, computational, etc.) and validate, analyze, and simulate them using appropriate computational tools.
Shift Types: Laboratory
Program
Machine learning concept: supervised learning.
Linear regression: quadratic cost, normal equations, regularization.
Optimization.
Evaluation and generalization: train, validation and test sets, cross-validation.
Neural networks: multilayer perceptron, cost functional, perceptron training, back-propagation algorithm, convolutional networks.
Data classification. Optimal classifier (Bayes classifier).
Linear classifiers: on hot encoding, logistic regression, linear discriminant analysis.
Support vector machines: hard margin, soft margin, non linear classifiers.
Decision trees and random forests: impurity, ID3 algorithm, bagging, random subspace.
Feature selection and extraction.
Objectives
To acquire basic knowledge about machine learning in general and about several machine learning techniques. To acquire the capacity to use those techniques in applications and to choose the techniques that are more adequate for each situation.
Shift Types: Laboratory
Resources for Students
AlphaBot2 Upgraded Drivers: https://github.com/Kons-5/ROS-for-the-Alphabot2
Program
Introduction to autonomous systems: mobile robots, mobile and static sensor networks. Uncertainty in robotics.
Probabilistic representation of uncertainty: probabilistic models of observation and action. Bayesian inference. Bayes filter and its particular cases.
Bayesian localization.
Probabilistic occupancy grid mapping.
Simultaneous localization and mapping (SLAM).
Task planning: classical planning; planning under uncertainty: Markov decision processes (MDP). Reinforcement learning.
Plan representation and its execution coordination. Performance analysis.
Cooperative systems: cooperative localization and tracking of objects. Sensor integration: distributed sensor fusion methods. Cooperative task assignment, planning, and coordination.
Functional, software, and hardware architectures.
Objectives
Fundamental concepts involved in systems composed of diverse physical agents are covered, with diverse autonomy degrees (sensors, processors, actuators, robots) spatially distributed. Fundamental concepts and methods for self-localization under uncertainty on the observation and motion models are described. Methods for integrating the information from multiple sensors are presented, for positioning and for representing the world map where the sensors are situated, as well as methods for problem solving in cooperative systems, including cooperative perception, and task assignment, planning, and coordination. Fundamental concepts on functional, software, and hardware architectures concludes the course.
Shift Types: Laboratory
Program
During the course the following topics will be addressed:
Introduction to real-time distributed control systems: definitions, architectures and types. Hardware for control, computation, and communications in real-time distributed control systems.
The C++ programming language. Programming microcontrollers with computational and memory constraints.
Introduction to computer-controlled systems. Feedforward and Feedback controllers. PID controllers, anti-windup, and velocity algorithms. Discretization of continuous-time controllers.
Communications for real-time control. Local control networks. Examples of real-time networks in control and automation, e.g. the CAN BUS.
Programming multitask and concurrent systems in real time.
Formulation of optimal control problems.
Some coordination and optimization algorithms in Distributed Control Systems: e.g. feedforward from accessible disturbances and the consensus algorithm.
Objectives
The purpose of this course is to introduce the concepts and tools needed for the design, analysis, and implementation of real-time control systems in distributed environments, namely:
The different components, architectures, and types of distributed control systems
Ways of modeling and formulating control problems in a distributed paradigm
Tools to implement distributed real-time control system solutions based on PCs and microcontrollers using the C++ programming language.
The gained knowledge will be developed through the execution of a practical project on a real-time distributed control system, where the students have to assemble the control network devices, model the system, formulate the control objectives, develop controllers, distribute computation among the different nodes, coordinate the communications between nodes, plan experiments to compare control approaches, and acquire data to report results.
Shift Types: Laboratory
Program
Historical evolution of computing systems.
Instruction Set Architectures: operands and operation types; memory map; peripherals interface; handling of interruptions and exceptions.
Processors' operation: datapath; control structures; single-cycle and pipelined architectures.
Memory hierarchy: structure and operation of cache memories; hierarchical cache systems; physical and virtual addressing and translation.
Advances in computer architectures.
Objectives
Identify the fundamental computer architecture components and their roles.
Identify the main processor's components and their role.
Identify the different instruction types and the required mechanisms for their execution (at an introductory-level).
Understand how a program, written in a high-level language, is executed, including the role of the compiler, assembler, and loader.
Write simple programs in Assembly language.
Understand the underlying principals of interruptions/exceptions and the interface with processor peripherals.
Understand the importance of a hierarchical memory subsystem and its role in the performance of applications.
Identify the advantages and drawbacks stemming from the evolution of computers with respect to the original architecture.
Shift Types: Laboratory
Program
Basic notions: Operating systems;
Programming developing cycle: Algorithm, compilation and debugging;
Computer programming language: Lexicon,Syntax and Semantic; Basic programming concepts: Structure of a computer program; Basic data types, constants, variables, operators and expressions; Input and output functions;
Flow Control: Decision:the if instruction.
Repetition/Loops: The while, do..while, and for instructions.
Selection: the switch instruction.
Structured programming: Functions. Passing data to and from functions;
Scope: Local and global variables; Compiling a program with several modules (files); Using the debugger.
Structuring data: Arrays (one dimension and multidimensional), Sorting and searching, Strings Data structures, enumerated types.
Text Files: Functions to handle data in text files; Basic notion of binary file.
Notion of linked lists: Dynamic and static vectors; Linked list, FIFO, LILO;Creating, searching, inserting and deleting nodes; Rings.
Objectives
The Programming course aims to provide students with the basics of procedural programming in high level languages. The students are expected to acquire the indispensable concepts for algorithmic problem solving, with special emphasis on those that usually arise in the area of Engineering, data abstraction and structured programming.
Shift Types: Laboratory and Problems
Program
Binary, octal and hexadecimal number systems, arithmetic operations, decimal and alphanumeric codes. Logic circuits: binary logic and gates, Boolean algebra, logic functions, standard forms, incompletely specified functions, algebraic and map minimization, circuits with NAND and NOR gates. Elementary technology elements: logic families, tri-state gates, propagation delays. Combinational circuits: encoders, decoders, multiplexers, demultiplexers, comparators, adders and subtractors. Sequential circuits: latches and flip-flops, timing analysis and timing synchronization. Registers and Counters: registers, shift registers, counters, counter interconnection and expansion. Synchronous sequential circuits: Mealy and Moore models, state diagrams and state tables, state encoding, classical synthesis, alternative synthesis methods, state minimization. Memories: RAM, ROM and PROM.
Objectives
Use binary number systems and binary arithmetic.
Derive, manipulate and minimize boolean functions.
Implement boolean functions with circuits with logic gates.
Understand the operation of the fundamental building blocks of combinational circuits.
Understand the operation of basic memory elements, and work with registers and counters.
Specify and synthesize synchronous sequential circuits.
Understand basic timing issues, including clocking, timing constraints, and propagation delays.
Design low-complexity digital systems with both combinational and sequential components.