Of the subjects in the Common Core (Compulsory), the PhD student must take at least three four-credit subjects from the common core, without restrictions regarding the selectivity chains. The Master's Course student must take one subject in each of the selectivity chains , one in Computing Fundamentals and Methods and the other in Computing Systems.

 

Common Core Disciplines

 

Computing Fundamentals and Methods

Computation Theory

Credits: 04

Summary:

Automata theory and formal languages, Turing machines and recursive function theory, notions of computability and basic complexity classes.

Algorithm Design and Complexity

Credits: 04

Summary:

Algorithm analysis - principles and examples; criteria and evaluation; elementary data structures; strategies for designing algorithms; algorithms and graphs; the fast Fourier transform and applications; Pattern Recognition; treatability.

 

Computing Systems

Fundamentals of Computer Systems

Credits: 04

Summary:

Computer Organization: Computer components, instruction cycles, pipelining, buses, caches, RAM memory, RISC x CISC architectures, Instruction level Parallelism (Out of Order Execution, Branch Prediction, Superscalar Execution, Speculative Execution, Very Large Instruction Word) , Symmetric Multiprocessors (cache organization and coherence).

Operating systems: kernel structuring, process management, memory management, file management, I/O management, micro-kernels, exo-kernels.

Digital signal processing

Credits: 04

Summary:

Fourier Transform and Z Transform, Sampling Theory, Signals in the frequency domain and their characterization, Interpolation and Quantization, Voice and Audio Signal Processing, Digital Filtering and Spectral Analysis

 

 

Mandatory subject in both courses

 

Seminar

Credits: 02

Summary:

Lectures by guest researchers and PPGInf students

 

 

Optional subjects

 

Proof Theory

Credits: 04

Summary:

The course provides a solid foundation for students who intend to do research in the area of automated deduction and formal methods.

Artificial Intelligence I

Credits: 04

Summary:

Introduction: What is AI, an overview, problems, problem spaces, and basic problem-solving methods. Knowledge: representation and use. Goal. Knowledge. General aspects of knowledge-based systems.

Artificial Intelligence II

Credits: 04

Summary:

Acquisition and representation of knowledge. Form of automatic reasoning. Non-monotonic reasoning. Advanced Troubleshooting Systems. Mechanical learning. Natural language processing. Expert systems. Connectionist systems. Smart interfaces.

Declarative Languages

Credits: 04

Summary:

Physical system of symbols; Symbolic processing; Declarative languages and AI; Pure functional language: Rewriting, primitive functions, functional paradigm: equational, saved equations, recursion, pattern matching, polymorphism, lazy evaluation, high order functions, local definition; applications, LISP, PROLOG.

Software Engineering 2

Credits: 04

Summary:

Empirical studies in Software Engineering; primary, secondary, and tertiary studies; research strategies; qualitative and quantitative studies.

Topics in Software Engineering

Credits: 04

Summary:

LPS motivation; definition and examples of LPS; LPS functional and operational specification; systematic literature review on LPS; Domain Engineering; Application Engineering; tools to support the construction and evolution of LPS; adoption strategies; variability management in the following artifacts: business processes, features, requirements, architecture, implementation; presentation and comparison of specific methods (compositional, annotative, parametric, and transformational approaches); type systems for LPS.

Teaching Internship in Undergraduate Education in Computer Science

Credits: 04

Summary:

Working in the classroom (theoretical/practical classes), assisting students outside the classroom, correcting tests and exercises, attending didactic/pedagogical lectures scheduled for the subject, participating in subject coordination meetings, preparing classes and other tasks inherent to teaching practice.

Parallel Programming

Credits: 04

Summary:

Introduction to parallel and distributed computing. Performance evaluation. Parallel and distributed processors. PRAM model and algorithms. Message exchange models and algorithms. Parallel programming. Scheduling algorithms. PVM. MPI. Java.

Formal Methods for Real-Time Processing

Credits: 04

Summary:

Introduction to real-time processing. Formalization of time and clock. Formal methods. Graphic method. State-based method. Logic-based method. Method based on process algebra. Software partition. Task allocation. Task scheduling. Fault tolerance. Clock synchronization.

Image processing

Credits: 04

Summary:

Fundamentals of Digital Signal Processing. Image capture. Representation and processing of images. Signal sampling. Transforms applied to digital signal processing. Development of applications using specific software.

VLSI architectures

Credits: 04

Summary:

Reconfigurable devices, Modeling of combinational and sequential circuits in VHDL, specification and synthesis of algorithmic machines, register optimization, scheduling and operator allocation, hardware acceleration techniques.

High Performance Processing

Credits: 04

Summary:

Parallel algorithms, Principles of parallelism, Interconnection networks, High-performance protocols, SIMD/MIMD architectures, Scheduling, Load balancing, Management of geographically distributed resources, Fundamentals of Cluster computing, Fundamentals of Grid computing

Distributed systems

Credits: 04

Summary:

Definition of Distributed System, Parallel and Distributed Architectures, Aspects in the Design of Distributed Systems, Distributed Process Management (Processor Scheduling, Process Migration, Message Exchange, Remote Procedure Call, Distributed Shared Memory), Process Groups, Process Synchronization Distributed, Distributed Deadlock, Distributed Mutual Exclusion, Distributed File Management, Notions of Fault Tolerance.

Pattern Recognition

Credits: 04

Summary:

Introduction; Bayes' theorem; Parametric Classifiers; Parametric Discriminant Functions; Performance Assessment; Non-Parametric Classifiers; Feature Extraction; Learning Theory; Unsupervised Learning.

Topics in Computing Formalisms

Credits: 04

Summary:

Subject with variable syllabus

Topics in Computing Systems

Credits: 04

Summary:

Subject with variable syllabus

Topics in Computing Fundamentals and Methods

Credits: 04

Summary:

Subject with variable syllabus

Individual Work on Computing Fundamentals and Methods

Credits: 02

Summary:

Individual guided and written work throughout an academic period resulting from research or study of a topic proposed by a responsible advisor.

Individual Work on Computing Systems

Credits: 02

Summary:

Individual guided and written work throughout an academic period resulting from research or study of a topic proposed by a responsible advisor.

Computer Research Topics

Credits: 02

Summary:

Subject with variable syllabus

Multiagent Systems

Credits: 04

Summary:

This subject deals with intelligent agents and multi-agent systems (SMA), including a basic theoretical foundation in the area of Distributed Artificial Intelligence. Various aspects related to SMA will be studied, such as reasoning models, communication and interaction protocols, architectural definitions, modeling methodologies, using a practical agent-oriented application development approach. SMA development tools and platforms will be used in implementation work to better consolidate the knowledge acquired.

Design and Complexity of Algorithms 2

Credits: 04

Summary:

Formal and Computational Logic

Credits: 04

Summary:

Semantic elements of first-order logic and their limitations, calculation of sequents for first-order logic, löwenheim-Skolem and compactness theorems, Gödel's completeness and incompleteness theorems, Lindstr om's theorems on the maximality of first-order logic -order and a language to formalize mathematical and computational objects.

Parallel Architectures

Credits: 04

Summary:

Cryptography

Credits: 04

Summary:

Classical Cryptography: schemes and cryptanalysis; Shannon's theory: entropy, perfect secrecy and information theory; Symmetric block ciphers: DES and AES; Cryptographic summary functions: the Merkle-Damgard paradigm; RSA and Rabin Cryptosystem; Discrete logarithm-based public key cryptography: finite fields and elliptic curves; Digital signature schemes; Generation of pseudo-random numbers.

Modeling and Verification of Integrated Systems in Silicon

Credits: 04

Summary:

Modeling of monolithic integrated systems - or systems on silicon (SoC - System on Chip) - at a transactional level; SystemC as a modeling tool at abstracted levels; Complexity of silicon systems.

Advanced Topics in Computing Systems

Credits: 04

Summary:

Subject with variable syllabus

Advanced Topics in Computing Formalisms and Methods

Credits: 04

Summary:

Subject with variable syllabus