Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC...

45
Computer Science Descrição: Qualification and title awarded – Licenciatura in Computer Science, Licenciado. Official length - 3 years/6 semesters/40 weeks of full-time study per year/180 ECTS credits. Access requirements – Enrolment on the Degree Course can be achieved through the National Competition for Access to Higher Education, the Special Regimes, the Special Access Competitions or the Re-Entry, Change and Transfer of Course Regimes. To apply for access to higher education through the National Competition, students must fulfil the requirements described in DGES/Access to Higher Education . Programme requirements - The degree in Computer Science seeks to provide students with a solid and extensive knowledge on all issues related to the correct and effective use of computational methods and techniques. The programme of studies is organized around the concepts and formalisms related to computational phenomena and their foundations, thus creating the basis for a rigorous, productive, and original approach to solving problems. On one hand, mathematical ideas (including abstract models) are studied which are used in modeling different aspects of computation. Along this line the programme includes courses on Algebra, Logic, and Discrete Mathematics. On the other hand, formalisms related (in a number of different ways, with different degrees of abstraction) to computer programming tasks are approached. This includes the study of programming paradigms and methods, as well as the study of algorithms from multiple points of view. Additionally, the degree also offers courses on basic technologies in the fields of Computer Architecture, Computer Communications, Operating Systems, and Databases, as well as more applied mathematical techniques in the areas of Numerical Analysis, Probability Theory, and Number Theory. This technological offering, allied to a style of teaching that extensively uses laboratory classes and individual and group projects, provides the students with the skills, experience, and autonomy that are essential tools for their future professional activities. The strong foundational component of the programme gives

Transcript of Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC...

Page 1: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Computer ScienceDescrição: Qualification and title awarded – Licenciatura in Computer Science, Licenciado.Official length - 3 years/6 semesters/40 weeks of full-time study per year/180 ECTS credits.Access requirements – Enrolment on the Degree Course can be achieved through the National Competition for Access to Higher Education, the Special Regimes, the Special Access Competitions or the Re-Entry, Change and Transfer of Course Regimes. To apply for access to higher education through the National Competition, students must fulfil the requirements described in DGES/Access to Higher Education.Programme requirements - The degree in Computer Science seeks to provide students with a solid and extensive knowledge on all issues related to the correct and effective use of computational methods and techniques. The programme of studies is organized around the concepts and formalisms related to computational phenomena and their foundations, thus creating the basis for a rigorous, productive, and original approach to solving problems. On one hand, mathematical ideas (including abstract models) are studied which are used in modeling different aspects of computation. Along this line the programme includes courses on Algebra, Logic, and Discrete Mathematics. On the other hand, formalisms related (in a number of different ways, with different degrees of abstraction) to computer programming tasks are approached. This includes the study of programming paradigms andmethods, as well as the study of algorithms from multiple points of view.Additionally, the degree also offers courses on basic technologies in the fields of Computer Architecture, Computer Communications, Operating Systems, and Databases, as well as more applied mathematical techniques in the areas of Numerical Analysis, Probability Theory, and Number Theory. This technological offering, allied to a style of teaching that extensively uses laboratoryclasses and individual and group projects, provides the students with the skills, experience, and autonomy that are essential tools for their future professional activities.The strong foundational component of the programme gives these students a profile that makes them apt to follow a vast number of 2nd. cycle programmes.Access to further study - The Licenciado degree allows access to postgraduate studies, according to the terms described at DGES/Academic+Recognition/Diploma+Supplement.Professional Status and Opportunities -

Local Funcionamento: Campus of Gualtar, Braga

Director: Alberto José Gonçalves Carvalho Proença Carla Albertina Carvalhinho Silva Mendes

Page 2: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Coordenadores ECTS:Paulo Jorge Sousa Azevedo Ano Código Nome Regime ECTS1 8501N2 Computational Mathematics S1 71 8501N3 Functional Programming S1 81 8501N1 Linear Algebra S1 81 8501N4 Topics in Mathematics S1 71 8502N2 Calculus S2 71 8502N6 Computing System S2 51 8502N3 Discrete Mathematics S2 61 8502N4 Imperative Programming S2 61 8502N5 Language Theory S2 62 8503N4 Algebraic Structures S1 72 8503N1 Algorithms and Complexity S1 62 8503N2 Analysis S1 72 8503N3 Computer Communications S1 52 8503N5 Logic S1 52 8504N2 Computational Logic S2 62 8504N3 Language Processing and Compilers S2 62 8504N4 Object Oriented Programming S2 62 8504N5 Operating Systems S2 62 8504N1 Programme Calculation S2 63 8505N3 Computability S1 63 8505N5 Concurrent Programming S1 63 8505N2 Databases S1 53 8505N4 Geometry S1 63 8505N1 Numerical Analysis S1 73 8506N5 Computational Number Theory S2 63 8506N1 Computer Graphics S2 63 8506N6 Probability and Applications S2 73 8506N2 Processes and Concurrency S2 6

Page 3: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

3 8506N3 Semantics of Programming S2 5

8501N2 - Computational Mathematics Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 70 Créditos: 7 Métodos de Ensino: 2 hours lectures/week; 3 hours example classes in computer laboratory/week. Programa: Algebraic computational systems: graphical, symbolic and numerical capabilities. Introduction to programming with a computational system. Métodos de Avaliação: Two tests in computer laboratory and a practical assignment, in group, shared with the course of Linear Algebra / final written exam.Pré-requisitos: None.Resultados de Aprendizagem: Be familiar with the basic rules of the system Mathematica. Search for information about built-in functions using existing help systems in Mathematica. Understand the notions of precision and accuracy of a number. Define functions/programmes to solve specific problems using functional and rule-based programming. Use rewriting rules as assignment and programming elements. Build 2- and 3-dimensional graphic objects. Manipulate and build graphic objects using graphics primitives and style directives. Solve problems in Real Analysis, Linear Algebra and Number Theory with built-in and user-defined functions. Import and export data.To give to the student a powerfull tool that will allow a modern aproach to the study and  discovery of mathematics. Bibliografia:

Page 4: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Heikki Ruskeepää, Mathematica Navigator: Graphics and Methods of Applied Mathematics (Academic Press,1999); R.J. Gaylord, S.N. Kamin & P.R. Wellin, An Introduction to Programming with Mathematica (TELOS 1996);Nancy Blachman, Mathematica: a practical approach (Prentice Hall, 1992)Wolfram, S., Mathematica: A System for Doing Mathematics by Computer (Addison Wesley, 1991); Gray, J., Mastering Mathematica (Academic Press, 1994); Majewski, M., MuPAD Computing Essencials (Springer, 2004).Docentes:Maria Suzana Freitas de Sousa Mendes Gonçalves

8501N3 - Functional Programming Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 70 Créditos: 8 Métodos de Ensino: 2 hours/week - lectures; 1 hours/week - examples classes; 2 hours/week - examples classes in computer room work.Programa: The functional programming paradigm using Haskell. Expressions, values and reduction. Basic types, algebraic types, induction and recursion. Higher-order functions. Polymorphism, classes, principal types. Modularity. Monads.Métodos de Avaliação: Written exam, tutorial exercises and project evaluation.Pré-requisitos: None.Resultados de Aprendizagem: At the end of the course the student should be able t● Write programs in a functional style.●  Understand the concepts of inductive type and recursion.●  Define algebraic types for modeling a problem, and program with them.●  Understand the notions of principal type and polymorphism.●  Use higher-order functions.Bibliografia:

Page 5: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Introduction to Functional Programming, Richard Bird and Philip Wadler, Prentice-Hall, 1988 - Introduction to Functional Programming using Haskell, Richard Bird, Prentice-Hall, 1998 - The Craft of Functional Programming, Simon Thompson, Addison-Wesley, 1996.Docentes:Maria João Gomes Frade Jorge Miguel Matos Sousa Pinto Olga PachecoJosé Carlos Ramalho

8501N1 - Linear Algebra Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 84 Créditos: 8 Métodos de Ensino: Theoretical and practical classes. Programa: Matrices, Linear systems, Vector spaces, Linear transformations, Determinants, Eingenvalues and Eingenvectors.Métodos de Avaliação: Two written tests and a practical assignment, in group, shared with the course of Computational Mathematics / final written exam.Pré-requisitos: Elementary set theory. Resultados de Aprendizagem: By the end of the course the students should be able to- execute matrix operations (addition, scalar multiplication, multiplication, transposition and inversion);- solve  systems of n linear equations with m variables;- present simple arguments and conclusions in Linear Algebra with reasonable clarity;- identify and apply properties of vector spaces; - solve problems  related to linear transformations;

Page 6: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

- identify and characterize diagonalizable linear transformations.Bibliografia: António Monteiro, Álgebra Linear e Geometria Analítica (McGraw Hill, 2001)Maria Paula Marques Smith, Emília Giraldes & Victor Hugo Fernandes, Curso de Álgebra Linear e Geometria Analítica (McGraw Hill, 1995). T. Blyth , E.F. Robertson, Basic Linear Algebra, (Springer Verlag).Eugene Johnson , Linear Algebra with MATHEMATICA®, Brooks/Cole - Symbolic Computation Series, 1999. Docentes:Maria Cláudia Freitas de Sousa Mendes AraújoMaria Isabel Caiado

8501N4 - Topics in Mathematics Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 70 Créditos: 7 Métodos de Ensino: 2 hours/week - lectures. 3 hours/week - examples classes. Programa: Introduction to the propositional calculus: connectives, formulas, truth-values, valuations, tautologies, logic equivalences.  Representation of sets, binary relations, functions, families of sets, equivalence relations, quotient sets. Finite and infinite sets, numerable and non-numerable, Cantor's theorem.  Induction and complete induction over natural numbers. Partially ordered sets: special elements, well-ordered sets, Zorn's lemma.Métodos de Avaliação: Written final exam (worth 70%) and two written exercises (worth 15% each). Periodic assessment (two written tests) / Written final exam.Pré-requisitos: None.Resultados de Aprendizagem: On successfully completing the course the student should be able t

Page 7: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

1. apply elementary properties of propositional and quantifier logic operations;2. construct mathematical arguments using common proof techniques, including inductive proofs;3. explain the basic concepts of sets, relations and functions, and perform elementary operations involving them;4. exemplify basic concepts of equivalence and order relations; 5. distinguish between numerable and non-numerable sets.Bibliografia: Foundations of abstract mathematics, Kurtz, D.C., McGraw-Hill, 1992. Introduction to set theory, K. Hrbacek and T. Jech, Marcel Dekker, Inc.2nd edition. Curso de Análise Matemática, J. Santos Guerreiro, Escolar Editora, 1989. Bloch, E., Proofs and Fundamentals (Birkhauser, 2000).Docentes:José Carlos Cruz da CostaMaria Joana Costa Cruz Oliveira Torres RamosMaria Paula Beirão Oliveira Marques Smith Maria Suzana Freitas Sousa Mendes Gonçalves

8502N2 - Calculus Regime: S2 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 84 Créditos: 7 Métodos de Ensino: 3 hours/week - lectures; 3 hours/week - examples classes.Lectures (3 hours/week) and problem solving sessions (3 hours/week). The problems to be solved are proposed to the students with 1 or 2 weeks in advance.Programa: Sets and Functions: basic topics; Real numbers; Functions: limit and continuity; Integrals; Sequences of real numbers; Series of real numbers. Sequences and series of real numbers. Power series. Real functions of a single variable. Limits and continuity. Derivatives. Taylor series. Integrals and applications.Métodos de Avaliação:

Page 8: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Written examination. Written examination (70%) and practical class assessment (30%).Written tests (problem solving).Pré-requisitos: There are no prerequisites. Basic knowledge of sequences and real functions of a single variable.Resultados de Aprendizagem: Dealing with real functions of one variable, to practise the rational thought, the immagination and the spirit of searching, to develop the student's ability for intuitive and rigorous presentations. 1. To solve problems on sequences and series. – 2. To use basic results about functions (continuity, derivatives, integrals) to solve problems. – 3. To calculate limits, derivatives and integrals. – 4. To develop functions in power series. – 5. To use the Taylor’s formula to compute approximations for values of functions and to bound the error.Bibliografia: T. Apostol, Cálculo - Vol 1 (Ed. Reverté, 1991); J. Campos Ferreira, Introdução à Análise Matemática (Fundação Calouste Gulbenkian, 1987); E. L. Lima, Curso de Análise - Vol 1 (Projecto Euclides, 1995). 1. Calculus (8th ed.), R. Larson, R. P. Hostetler, B. H. Edwards, McGraw-Hill (2006); 2- Calculus (3rd ed.) Howard Anton, John Wiley & Sons (1988)Docentes:Ana Jacinta Pereira Costa Soares Maria Helena Faria Mendonça Figueiredo Rui Ralha

8502N6 - Computing System Regime: S2 Tipo: Compulsory Língua de Instrução: Portuguese Carga Total: 56 Créditos: 5 Métodos de Ensino: Presentation classes, problem solving classes/tutorials, lab classes.Programa: Foundations of computers technology and computing: structure andorganization of a computing system; data representation, including text,images, integers, floating point values under IEEE 754, and the

Page 9: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

instructionset of a CPU; analysis at the assembly level, of the execution of HLLprograms coded in an imperative language; analysis at the digital systemlevel, of the CPU, memory, busses and peripheral controllers.Métodos de Avaliação: Tests, Practical assignments e Exam.Pré-requisitos: None. Resultados de Aprendizagem: 1. To describe and analyse data in a computer (text, images, integers, FP reals and CPU instructions) coded in different number systems 2. To describe the structure and organization of a computing system, the functionalities of their components and the relationships between the abstraction levels of a computer 3. To identify the more relevant features in the instruction set of a CPU,and describe how instructions of an ISA type work 4. To analise and modify assembly code generated from a compiler for a typical CPU, including control/data structures and function/procedures call 5. To describe current hardware techniques at the memory hierarchy level and in the parallel execution of instructions, and its impact on system performance Bibliografia: Computer Organization and Architecture - Designing for Performance, William Stallings, Prentice Hall, 6th Ed., 2002Computer Systems: A Programmer's Perspective (CS:APP), Randal Bryant and David O'Hallaron,  Prentice Hall, 2003Docentes:Alberto José Gonçalves Carvalho Proença

8502N3 - Discrete Mathematics Regime: S2 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 70 5 hours/weekCréditos: 6 Métodos de Ensino:

Page 10: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

2 hours/week - lectures; 3 hours/week - example classes. Programa: Elements of Graph Theory: basic concepts; eulerian graphs; hamiltonian graphs; planar graphs; Euler formula. Introduction to Number Theory: divisibility; prime numbers; diophantine equations; modular adition; congruences modulo an integer; linear congruences and systems of linear congruences; Fermat's Little Theorem and Euler's generalisation; Wilson's Theorem; application to criptography.Métodos de Avaliação: Periodic evaluation and final written exam.Pré-requisitos: None. Resultados de Aprendizagem: On successfully completing this course, students should be able t- use the euclidean algorithm to evaluate the greatest common divisor of two integers;- solve diophantine equations;- apply properties of prime numbers and primality criteria;- understand the notion of congruence modulo an integer and its properties;- solve linear congruences and systems of linear congruences;- understand the essential concepts in Graph Theory presented in the course discuss mathematical results with clarity and rigour, constructing simple proofs;Bibliografia: Burton, D. M., Elementary Number Theory (Wm. C. Brown Publishers, 1990)Wiitala, S. A. , Discrete Mathematics - A unified approach (McGraw-Hill 1987)Fejer, P.A., Simovici, D.A., Mathematical Foundations of Computer Science (Springer Verlag, New York, 1991).Docentes:Maria Paula Freitas Sousa Mendes Martins

8502N4 - Imperative Programming Regime: S2

Page 11: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 70 Créditos: 6 Métodos de Ensino: Theorical and practical classes. Programa: Procedural (Imperative) programming The C language. Searching & Sorting. Recursion and Try-and-error algorithms. Linear Data Structures, static and dynamic (arrays and linked-lists): concepts and algorithms. Imperative Programming Introduction: The Programming concept (aims, difficulties and stages); The other programming paradigms; Imperative Languages History; Descendent Analysis of Problems; The Algorithm Concept:. C Programming Language: History and Philosophy; Information representation: data types; Simple instructions and C control structures; Information Access and storage: file management. Dynamic Data Structures: pointers, lists and trees;. Search and Sort Algothms. Recursion: problems; mathmatical case studies; "try-and-error" problem resolution. Structured Data Types: List --- Stacks e Queues; Associative Arrays; Tree-like structures --- binary trees, decision trees, expression trees, etc.Métodos de Avaliação: Theoric mark (x 0.60) and practica mark (x 0.40).Pré-requisitos: None. Resultados de Aprendizagem: At the end the student should be able to decompose a problem into smaller problems and to specify an algorithm to each of these.The student should be able to solve problems in the following areas: numeric calcultions, string manipulation, file manipulation, data structures processing (lists and binary trees). The student should also be able to code any algorithm in the C programming language.Bibliografia: Kernighan & Ritchie, The C Programming Language (ANSI C), 2nd edition, Prentice Hall Software series, 1988 P. Guerreiro, Elementos de Programação com C, FCA - Editora de Informática, 2001; L. Damas, Linguagem C, FCA - Editora de Informática, 1999; Leendert and Ammeraal, Programas e Estruturas de dados em C, Editora Presença, 1994; A.N. Ribeiro e J. Pina Miranda, Notas Práticas de Algorimtos e Estrruturas de Dados, Notas peda-gógicas, Univ. do Minho, 1995; J. A. Saraiva & A. N. Ribeiro, Estruturas de Dados: Listas ligadas dinâmicas. Notas peda-gógicas, Univ. do Minho, 1995.Docentes:José Carlos RamalhoAlberto Simões

Page 12: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

8502N5 - Language Theory Regime: S2 Tipo: Compulsory Língua de Instrução: PortugueseHoras/Semana: 56 Créditos: 6 Métodos de Ensino: Lectures and tutorials.Programa: Regular languages, Finite Automata, Context-free Grammars, Push-down automataMétodos de Avaliação: Two tests during the semester; final exam.Pré-requisitos: Elementary set theory and induction.Resultados de Aprendizagem: - describe basic concepts about formal languages, automata, and grammars;- identify regular languages;- relate the notions of finite automata, recognizable languages, and regular languages;- verify whether a word is accepted by a push-down automaton;- determine the language generated by a context-free language and a push-down automaton recognizing it;- understand automata as an abstract model of computation.Bibliografia: J. Hopcroft, J. Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 1979; J. Costa, Autómatos e Máquinas de Turing, publicação do Departamento de Matemática da Universidade do Minho, 2004; J. Martin, Introduction to languages and the theory of computation, McGraw-Hill, 1996. T. Sudkamp, Languages and Machines, Addison-Wesley, 1997.Docentes:José Carlos Espírito Santo

Page 13: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

8503N4 - Algebraic Structures Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 6 Créditos: 7 Métodos de Ensino: Lectures (3 hours/week); example classes (3 hours/week).Programa: Introduction to group theory. Introduction to ring theory. Lattices and Boolean algebras. Introduction to universal algebra.Métodos de Avaliação: Periodic assessment / Final written examination.Pré-requisitos: Basic set theory and elementary number theory.Resultados de Aprendizagem: The student should be able to:1 – Understand the notion of algebra and, in particular, the notion of operation of arity n, performing calculations with operations.2 – Distinguish some of the most important classes of algebras such as groups, rings, lattices and Boolean algebras, recognizing their fundamental properties.3 – Recognize morphisms and interpret properties involving them.4 – Apply operators on algebras, identifying the results.5 – Identify quotient algebras.6 – Solve problems and perform proves of basic results of the discipline.Bibliografia: B.A. Davey and H.A. Priestley. Introduction to lattices and order, Cambridge Univ. Press, 1990.J.B. Fraleigh. A First Course in Abstract Algebra, Addison-Wesley, 1982.T.W. Hungerford, Algebra, Springer, 1996.S. Burris e H. P. Sankappanavar, A Course in Universal Algebra, Springer-Verlag, 1981.Docentes:Carla Albertina Carvalhinho da Silva Mendes

Page 14: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

8503N1 - Algorithms and Complexity Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 70 Créditos: 6 Métodos de Ensino: Lectures, Tutorials and Lab Classes.Programa: Algorithms vs Programming Languages: what is an algorithm? Algebraic algorithmic languages. Decisions in deterministic, non-deterministic and probabilistic machines.Introduction to “Domain Theory”. Introduction to “Probability Theory”. Random variables and probabilistic model of algorithms.Asymptotic notation. P and NP problems. Reduction. NP-complete problems.Fundamental algorithms: the 2SAT and 3SAT problems. Davis-Putnam algorithm.Causality nets. Integer Linear Programming.Métodos de Avaliação: Written examination and practical assignment.Pré-requisitos: Elementary knowledge of imperative programming and data-structures.Resultados de Aprendizagem: To be able to design algorithms for solving problems of different kinds, using an appropriate strategy and adequate (including non-linear) data-structures.Recognise patterns in algorithmic behaviour.To analyse asymptotically the time and space behaviour of  algorithms. Classify algorithms according to its “worst-case” and average complexities.To be able to identify an NP-complete problem, to reduce it to another problem, and to propose simple heuristics for finding approximate solutions.

Bibliografia: José Manuel Valença. Algoritmos e Complexidade.Thomas H. Cormen,

Page 15: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms. MIT Press, Cambridge,Mass., second edition, 2001. Donald E. Knuth. The Art of Computer Programming: (1) Fundamental Algorithms, (2) Seminumerical Algorithms, (3) Sorting and Searching. Addison/Wesley, third edition, 1997/98. 3 volumes.

Docentes:

José Manuel Valença e Manuel Bernardo Barbosa

8503N2 - Analysis Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 84 Créditos: 7 Métodos de Ensino:  Theoretical and practical classes. Programa: Topological structure of Rn. Sucessions in Rn. Real functions of several variables. Multiple Integration.Métodos de Avaliação: Individual resolution of exercises  and  written examination. Pré-requisitos: One variable basic calculus. Resultados de Aprendizagem: By the end of the course the student should be able to:- recognise topological notions of Rn;- formulate simple arguments and conclusions about continuity and differenciability of several variables functions;- apply, in simple cases, the theorems of inverse function and implicit function;- identify and classify critical points;- solve problems about multiple integration.Bibliografia: - “Introdução ao análise em Rm” J. Campos Ferreira, Dep. Mat. IST- “Curso de análise, Vol II” E.L. Lima, Projecto Euclides- “Cálculo diferencial e Integral”, N. Piskounov, Editorial Lopes da SilvaDocentes: Lucia Fernandez Suarez

Page 16: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

8503N3 - Computer Communications Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 56 Créditos: 5 Métodos de Ensino: 2 hours/week of theorectical lectures; 2 hours/week of practical work.Programa:Introduction to data communications. Elements of protocols.Data link control. The HDLC protocol.Local area networks. The TCP/IP Protocol Stack. Internetworking of TCP/IP networks. Métodos de Avaliação: Written examination (70%); Experimental component (25%); Development project (15%).Pré-requisitos: None.Resultados de Aprendizagem: The students should be able t(i) discuss the fundamental concepts of data communications, communication protocols, protocol stacks and corresponding architectures, including common elements of communication protocols; (ii) analyse and instantiate these concepts, focusing on the data link layer; (iii) acquire a general background on local area networks (wired and wireless) and their operation; (iv) explain in detail the main TCP/IP protocols and internetworking principles.Bibliografia:

Page 17: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

MSL, Comunicações por Computador, Notas de apoio às aulas teóricas, Grupo de Comunicações por Computador, DI/UM, 2007.J. Kurose and K. Rose, Computer Networking: A Top Down Approach Featuring The Internet, Addison-Wesley, ISBN: 0-321-49770-8, 4th Edition 2008;W.Stallings, Data and Computer Communications, 8ª Edição, Prentice Hall, ISBN: 0-13-2433109, 2007.A.S.Tanenbaum, Computer Networks, 4ª Edição, Prentice Hall, ISBN: 0130661023, 2003.E.Monteiro e F.Boavida, Engenharia de Redes Informáticas, 3ª Edição, FCA, 2000;Docentes:Maria Solange Pires Ferreira Rito Lima

8503N5 - Logic Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 56 Créditos: 5 Métodos de Ensino: 2 hours/week - lectures. 2 hours/week – examples classes. Programa: Syntax and semantics of classical propositional logic; conjunctive and disjunctive normal forms; natural deduction for classical propositional logic; soundness and completeness theorems. Syntax, Tarski semantics and natural deduction for classical first-order logic. Introduction to intuitionistic propositional logic: Kripke semantics; natural deduction; Godel's interpretation into classical logic.Métodos de Avaliação: Periodic assessment (2 written tests) or written final exam.Pré-requisitos: Elementary notions of set theory.Resultados de Aprendizagem: On successfully completing the course the student should be able to:1. manipulate formal syntax of propositional and predicate logic;

Page 18: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

2. use first-order formulas to represent sentences in natural language;3. give meaning to formulas and decide their validity in the context of a given interpretation;  4. explain and construct formal proofs in natural deduction; 5. describe some of the consequences of soundness and completeness results;6. explain differences between intuitionistic and classical  validity.Bibliografia: 1. Logic and structure, van Dalen, Springer2. Language, Proof and Logic, Barwise and Etchemendy, CSLI PublicationsDocentes:Luís Filipe Ribeiro PintoCarla Albertina Carvalhinho da Silva Mendes

8504N2 - Computational Logic Regime: S2 Tipo: Compulsory Língua de Instrução: PortugueseHoras/Semana: 70 Créditos: 6 Métodos de Ensino: 2 hours/week - lectures. 1 hours/week – examples classes. 2 hours/week – lab. Session.Programa: Propositional logic:  Sequent Calculus, Tableaux, Resolution, Davis-Putnam; BDDs. First-order Logic: Sequent Calculus; Prenex/Herbrand/Skolen normal forms; Propositional resolution in LPO; Unification; Resolution (first order). Horn clauses and SLD resolution.Curry-Howard analogy: Term annotations in natural-deduction proof systems; proof equality and normalization; pure typed lambda-calculus and the Curry-Howard analogy.

Page 19: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Logic Programming:  Prolog language; inference and backtracking; Cut predicate; second-order predicates; generate-and-test strategy. Métodos de Avaliação: Written exam.Pré-requisitos: Elementary notions of Discrete Mathematics and Logic.Resultados de Aprendizagem: Exploit efficient methods for validity checking of propositional formulas.Justify/apply the resolution mechanism as a mean to establish the inconsistency of a first-order theory.Take advantage of logic programming in (medium-sized) problem solving.Bibliografia: Proof Theory and Automated Deduction. Jean Goubault-Larrecq & Ian Mackie , Kluwer Academic Publishers, 1997.From Logic to Logic Programming. Kees Doets, MIT Press, 1994.Proofs and Types. Jean-Yves Girard & Yves Lafont & Paul Taylor, Cambridge University Press, 1990.Docentes:José Carlos Bacelar Almeida.

8504N3 - Language Processing and Compilers Regime: S2 Tipo: Compulsory Língua de Instrução: PortugueseHoras/Semana: 70 Créditos: 6 Métodos de Ensino: 2 hours/week of theorectical lectures; 1 hour/week theorectical-practical and 2 hours/week of practical work.Programa: Language Processing Introduction: interpreters and compilers; Language processor architecture: lexical analysis, syntactic analysis and semantic analysis; Language and Grammar Comcept; Kinds of Languages and Grammars: Chomsky hierarchy.

Page 20: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Regular Languages and Lexical Analysis: concept; Regular language specification with regular expressions; Regular Languages Recognition: automaton concept; Regular Expression to Finite State Automaton Conversion; flex as an automaton generator. Non-regular Languages and Syntactic Analysis: Context Free Grammars and Languages; Parser structure; Top-Down Parsing and LL(1) invariant; LL(1) conflicts and their resolution; Top-Down Parsing; Bottom-UP Parsing: LR(0) automaton, shift/reduce and reduce/reduce conflicts; SLR(1) automaton; LALR(1) automaton; yacc as a Bottom-UP parser generator. Semantic Analysis: abstract syntax tree; concrete grammar and abstract grammar; Intermediate representation.Métodos de Avaliação: 60% (written mark) + 40% (Lab Project)Pré-requisitos: Imperative ProgrammingResultados de Aprendizagem: The student will be able to develop new domain specific languages and associated tools. He will also be able to develop front-ends and back-ends to other software applications.Basically he will be able to specify and program any transformation from a textual forma tinto another format.Bibliografia: Aho , Sethi , Ullman , Compiler Principles, Techniques and Tools , Addison-Wesley , 1986 .R. G. Crespo , Processadores de Linguagens: da concepção à implementação , IST-Press , 1998 .Pittman , Peters , The Art of Compiler Design: theory and pratice , Prentice-Hall , 1992 .Docentes:José Carlos RamalhoJosé João Almeida

8504N4 - Object Oriented Programming Regime: S2 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 70 Créditos: 6 Métodos de Ensino:

Page 21: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Lectures (2h/week), Tutorial(1h/week), Laboratory(2h/week).Programa: The Object Oriented Programming Paradigm: Data abstraction and modularity. Objects: structure and behaviour. Messages. Classes, hierarchy and inheritance. Inheritance versus Composition. Abstract Classes. The substitution principle. Dynamic binding. Polymorphism. JAVA5: The J2SE5 platform: JDK5, JVM and byte-code. Basic constructs: Primitive types and operators. Control structures. Arrays. Object level: Classes and instances. Constructors. Instance methods and variables. Scope and access modifiers. Normal and static import. Class and variable methods. Vararg methods. Class hierarchy and inheritance. Abstract classes. Interfaces and user defined types. Method overloading and method overriding. Static and dynamic types. Dynamic method lookup. Polymorphism and extensibility. JCF: parameterized types and generic collections. Parameterized interfaces. Iterators. Lists, Maps and Sets. Type safe Enumerations. Streams: character, byte and object streams. Generic classes.BlueJ: Study and practical use of the IDE BlueJ.Métodos de Avaliação: Final exam (55%) and group project(45%).Pré-requisitos: Previous knowledge of programming and data structures. Resultados de Aprendizagem: a) Understand the fundamental concepts of OOP (Objects, Classes, Inheritance, Polymorphism); b) Understand how OOP concepts map into JAVA constructs; c) Understand techniques for large scale programming;d) Design the classes and interfaces needed to implement a given software problem (modelling); e) Develop medium scale type safe, generic and extensible Java applications.Bibliografia: JAVA5 e Programação por Objectos, F. Mário Martins, Editora FCA, Setembro de 2006. - An Introduction to Object Oriented Programming, T. Budd, Addison-Wesley, 2nd Edition, 1997. - Java in a Nutshell, D. Flanagan, O´Reilly & Associates, 3th. Edition, 1999. - Core Java, G. Cornell, C. Horstmann, Prentice-Hall, 1996.Docentes:Fernando Mário Junqueira Martins António Manuel Nestor Ribeiro António José Borba Ramires Fernandes

Page 22: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

8504N5 - Operating Systems Regime: S2 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 56 Créditos: 6 Métodos de Ensino: Lectures, practical exercises.Programa: Introduction to operating systems and systems programming. Process management and inter-process communication. Memory management, file systems and device management. Case studies.Métodos de Avaliação: Written examinations.Pré-requisitos: None.Resultados de Aprendizagem: 1. To understand the role of the operating system.2. To demonstrate an understanding of the architecture and operation of modern operating systems.3. To understand the concept of process/task and the way the operating systems manages multiple activities.4. To discuss trade-offs, mechanisms and strategies for resource management.5. To write simple multi-process programs that correctly use communication and synchronisation primitives.Bibliografia: ·Operating System Concepts (7ª ed), Avi Silberschatz, Peter Baer Galvin, Greg Gagne, John Wiley & Sons , 2005. Advanced Programming in the UNIX Environment, W. Richard Stevens, Stephen A. Rago, Addison Wesley, 2005Docentes:Paulo Sérgio Soares Almeida António Luís Pinto Ferreira Sousa

8504N1 - Programme Calculation Álgebra of Programming Regime: S2 Tipo: Compulsory

Page 23: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Língua de Instrução: Portuguese Horas/Semana: 70 60Créditos: 6 Métodos de Ensino: Lectures, Tutorials and Lab Classes.Theory and lab classesPrograma: Combinators and equational laws for Functional Programming.Regular inductive data-structures and their programming algebra.Introduction to generic programming.An introduction to theory and method in programming. Reasoning about programs. Compositionality. Program combinators. Programming packages and software components. * Functional programming: motivation and historical background. The Haskell language and libraries. * Function composition. Abstraction and isomorphism. Introduction to the Hindley-Milner type system. Basic data/function combinators and properties (universal, reflection, fusion, absorption, cancellation, functorhood). Algebra of a datatype. Exchange law. McCarthys conditional. * An introduction to inductive regular datatypes. Functor algebras and the «cata-ana-hilo» triology. Polinomial recursion patterns. Case study: sorting algorithms. * Rules for encoding Haskell data definitions in the C programming language. Expressiveness and compatcness of a programming language. * Parametric polymorphism. Generic programming. Type functors. Introduction to polytypism. * Functional programming using monads. `Input/output'. Exceptions. Monad laws.Métodos de Avaliação: Written examination and practical assignment.Individual exam papers + lab assignmentsPré-requisitos: Basic knowledge of functional programming concepts and data-structures.Functional ProgrammingResultados de Aprendizagem: To be able to establish simple equational reasonings about functional programs.To write functional programs using "fold" and "unfold" recursion patterns over arbitrary regular datatypes.To be able to establish simple equational reasonings about datatype-generic recursive programs.To interpret functional programs as hylomorphisms.This course teaches a constructive method for functional programming based on a selected library of combinators and associated calculus. This introduces students to the Algebra of Programming and pointfree reasoning, as well as to polytypism and genericity.Bibliografia: J.N. Oliveira, An Introduction to Pointfree Programming, DIUM 1999.J.N. Oliveira, Recursion in the Pointfree Style, DIUM 1999.

Page 24: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

[Bir98] R. Bird. Introduction to Functional Programming Using Haskell . Series in Computer Science. Prentice-Hall International, 2nd edition, 1998. C. A. R. Hoare, series editor. [Hu00] P. Hudak. The Haskell School of Expression - Learning Functional Programming Through Multimedia . Cambridge University Press, 1st edition, 2000. ISBN 0-521-64408-9. [Ol99a] J.N. Oliveira. An Introduction to Pointfree Programming. 37p., Departamento de Informática, Universidade do Minho, 1999. [Ol99b] J.N. Oliveira. Recursion in the Pointfree Style. 33p., Departamento de Informática, Universidade do Minho, 1999. [Ol01a] J.N. Oliveira. A Quick Look at Monads, 2001. Departamento de Informática, Universidade do Minho. Chapter of book in preparation. [VB00] J.M. Valença and J.B. Barros. Fundamentos da Computação II: Programação funcional. Universidade Aberta, 2000. ISBN 972-674-318-4, 234 p.Docentes:José Nuno Fonseca de OliveiraOlga Maria Pacheco Jorge Miguel Matos Sousa Pinto

Page 25: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

8505N3 - Computability Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 56 Créditos: 6 Métodos de Ensino: 2 hours/week - lectures; 2 hours/week - aulas tutorials.Programa: Turing machines and computable functions. Partial recursive functions. Church’s thesis. Recursive and recursively enumerable languages.Decidability and semi-decidability. Recursive and recursively enumerable sets. Complexity classes P and NP. NP-complete problems.Métodos de Avaliação: Final exam. Individual project during the semester.Periodic assessment (two written tests) / Written final exam.Pré-requisitos: None.Basic formal language and automata theory as in Language Theory.Resultados de Aprendizagem: To understand the concepts of Turing machine and partial recursive function and to describe in these models computational solutions for simple problems.To know some of the evidence for Church’s thesis and to recognize its importance.To apply universal functions in computability arguments and to explain the main ideas underlying the construction of these functions.To give proofs of undecidability in Computability Theory.To relate the concepts of decidability and semi-decidability.To understand the concept of NP-complete problem and to know some examples of this kind of problem.Bibliografia: J. Hopcroft e J. Ullman, Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, 1979.N. Cutland, Computability, Cambridge, 1994.M. Davis, Computability and Unsolvability, McGraw Hill, 1982.Docentes:José Carlos Cruz da CostaJosé Carlos Soares Espírito Santo

Page 26: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

8505N5 - Concurrent Programming Regime: S1 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 56 Créditos: 6 Métodos de Ensino: Lectures and practical classes.Programa: Concurrent systems modeling, concurrency in shared-memory systems (mutual exclusion, deadlocks, semaphores, monitors), concurrency in message-passing systems (channels and ports, synchronous and asynchronous systems, client-server, faults).Métodos de Avaliação: Written exam and programming assignment.Pré-requisitos: None. Resultados de Aprendizagem: Model concurrent systems.Understand the main models and programming primitives for shared-memory concurrency.Write shared-memory concurrent applications.Understand the main models and programming primitives for message-passing concurrency.Write message-passing concurrent applications.Bibliografia: Principles of Concurrent and Distributed Programming: Algorithms and Models, M. Ben-Ari, Prentice-Hall, 2006; Java Concurrency in Practice, Brian Goetz, Tim Peierls, Joshua Bloch, Addison Wesley, 2006 Programming Erlang, Joe Armstrong, OReilly, 2007Docentes:Paulo Sérgio Soares Almeida

Page 27: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

8505N2 - Databases Regime: S1.  Tipo: Compulsory.  Língua de Instrução:  Portuguese.Horas/Semana: 56.  Créditos: 5.   Métodos de Ensino:  - Lectures (2 hours/week) and practical classes  (2 hours/week) in computer room work.Programa:  - Introduction to database systems.- The Relational Model- Relational Algebra and Relational Calculus.- Database analysis and design.- Architectures of database systems.- The SQL language.- Database systems administration.- Data security, recovery and protection.- Distributed database systems.- Web Applications of databases.- New application areas for database systems.- Tools and computational environments for databases.Métodos de Avaliação:  - 2 written tests and 1 practical project.Pré-requisitos:  None.Resultados de Aprendizagem:  At the end of the course students should be able to:- know the terminology and the basic concepts related to database systems.- acquire knowledge and expertise to design and develop database systems.- know the Relational Model, Relational Algebra and Relational Calculus.- administrate and apply security, recovering and protect policies to database systems.- deal with SQL, creating, manipulating and controlling databases effectively.- learn how to deal with database management systems.- develop efficient and robust database systems applications.Bibliografia: - Connolly, T., Begg, C., Database Systems, A Practical Approach to Design, Implementation, and Management , Addison-Wesley, 3ª Edição, 2002.- Garcia-Molina, H., Ullman, J.,  Widom, J., Database Systems: The Complete Book, Prentice Hall, 2001.- Teorey, T., Database Modeling and Design: The Fundamental Principles, II Ediçao, Morgan Kaufmann,

Page 28: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

1994.- Date C., An Introduction to Database Systems , Volume I, VI Edição, Addison-Wesley Systems Programming Series, 1996. - Date, C.J., Darwen, H., A Guide to the SQL Standard , IV Edição, Addison-Wesley Inc, 1997. - Ramakrishman, R., Database Management Systems, McGraw-Hill International Editions, 1998.  Docentes: Orlando Belo.

8505N4 - Geometry Regime: S1 Tipo: CompulsoryLíngua de Instrução: Portuguese Horas/Semana: 56 Créditos: 6 Métodos de Ensino: Theoretical and practical classes.Programa: Affine and euclidian spaces. Geometrical tranformations. Curves and surfaces.Métodos de Avaliação: Individual resolution of exercises and written examination. Pré-requisitos:Basics notions of linear algebra.Resultados de Aprendizagem: By the end of the course the student should be able to:- solve incidence and metric problems;-identify simple geometrical transformations and analise their properties;- describe differential structures on simples curves and surfaces;- apply basics notions of projective geometry to solve practical problems.Bibliografia:

“Geometry and its Applications”, W. Meyer, Harcout Academic Press (1999);

“Mathematics for 3D Game Programming and Computer Graphics”, E. Lengyel, Charles River Media (2002);“Géométrie”, M. Audin, Éditions Belin (1998)Docentes: Lucia Fernandez Suarez

Page 29: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

8505N1 - Numerical Analysis Regime: S1 Tipo: Compulsory Língua de Instrução: Horas/Semana: 70 Créditos: 7 Métodos de Ensino: Lectures (2 hours/week) and problem solving sessions in a computing lab, with MATLAB (3 hours/week) The problems to be solved are proposed to the students with 1 or 2 weeks in advance.Programa: Numerical errors and stability of algorithms. Polynomial interpolation. Numerical quadrature (Newton Cotes’ methods). Non-linear equations. Simultaneous linear equations (direct methods only).Métodos de Avaliação: Problem solving in the computing lab during the semester (about every two weeks).Pré-requisitos: Linear Algebra, functions of several variables, programming skills.Resultados de Aprendizagem: 1. To analyse, in simple cases, the numerical erros produced in floating point arithmetic. – 2. To solve problems using methods on polynomial interpolation, numerical quadrature, non-linear equations, simultaneous linear equations. – 3. To evaluate algorithms in terms of their efficiency and numerical stability. – 4. To develop MATLAB codes for the studied methods. – 5. To select MATLAB’s routines to solve problems and discuss the results obtained. -6. To explain the numerical errors in the results in terms of the conditioning of the problem and the stability of the algorithm used.Bibliografia: 1-Cálculo Científico com Matlab e Octave, A. Quarteroni, F. Saleri, Springer-Verlag Itália, 2006; 2-Métodos Numéricos, Heitor Pina, McGraw-Hill de Portugal, 1995.Docentes:Rui Ralha

Page 30: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

8506N5 - Computational Number Theory Regime: S2 Tipo: Compulsory Língua de Instrução: Portuguese Horas/Semana: 56 Créditos: 6 Métodos de Ensino: Theoretical a practical classes.Programa: Primitive roots and indexes, application to the study of some kinds of congruences. Distribution of primes, prime number theorem. Primality and pseudo-primality testing. Algoritms for prime numbers generation. The RSA cypher. Quadradic residues, quadratic reciprocity law. Rational fractions, Pell's equations. Factorization algoritms (Fermat, Pollard, via continued fractions, etc.). Representation of integers as a sum of squares. Gaussian integers and primes.Métodos de Avaliação: Written examination.Pré-requisitos: Basic number theory as in Discrete Mathematics.Resultados de Aprendizagem: Study some kinds of non-linear congruences.Apply  the knowledge about continued fractions to solve ceratin equations.Know the main factorization algoritms.Know the main primality and pseudo-primality tests.Bibliografia: David M. Burton, Elementary Number, Wm. C. Brown, 1989. Kenneth Rosen, Elementary Number Theory and its applications, Longman, 2000.Song Y. Yan, Number Theory for Computing, Springer, 2002.Docentes:

Page 31: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

José Pedro Miranda Mourão Patrício

8506N1 - Computer Graphics Regime: S2 Tipo: Compulsory Língua de Instrução: Horas/Semana: 56 Créditos: 6 Métodos de Ensino: Theoretical and practical classesPrograma: Introduction to OpenGL’s API, historical context. Coordinates systems and geometric transformations. Orthographic and Perspective projections.Textures: Application of an image to cover a polygon. Texture coordinates. Texture matrices. Filters and Mipmapping.Local Illumination: Light components, shading models: Flat Gouraud and Phong. Lighting equations.Polygon representation techniques and its impact on performance: display lists, vertex buffers. Performance analysis and bottleneck detection.Basic optimization techniques: View Frustum Culling, Spatial Partitioning Algorithms.Shaders: Introduction to the graphics pipeline. Programming the GPU with GLSL. Shaders for Illumination and Texturing. Métodos de Avaliação: Written examination and practical assignmentPré-requisitos: Basic knowledge of geometry and programmingResultados de Aprendizagem: Conceive algorithms for real time 3D applications. Apply optimization

Page 32: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

techniques to improve performance.GPU Programming for graphical effects.Analyse and evaluate algorithmic solutions for the development of 3D applications.Bibliografia: "OpenGL Programming Guide", Woo, Neider, Davis and Schneider, Addison Wesley. "Interactive Computer Graphics", Edward Angel, Addison Wesley. "Real-Time Rendering", Moller and Haines. "OpenGL Shading Language", Randi J. Rost. Docentes:António Ramires Fernandes

8506N6 - Probability and Applications Regime: S2 Tipo: Compulsory Língua de Instrução: Portuguese Carga Total: 70 Créditos: 7 Métodos de Ensino: 2 hours/week - lectures. 3 hours/week - examples classes. Programa: Introduction and basic concepts. Axiomatic theory. Random variables, random vectors and probability distributions (discrete, continuous and others). Moments, probability inequalities, moment-generating functions and characteristic functions. Univariate and mulivariate parametric families. Functions of random variables. The normal model and special properties. Related models. Limit laws. Central Limit Theorem and Laws of Large Numbers. Computational simulation (along the course).Métodos de Avaliação: Periodic assessment / Final written examination.One individual laboratorial work (worthing 45%), one individual theoretical and practical work in a computational laboratory (worthing 45%) plus two or three practical works (worthing 10%)Pré-requisitos: Real Analysis. Imperative programming. Basic knowledge of any algebraic software.

Page 33: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Resultados de Aprendizagem: 1. Understand and be able to apply basic concepts of probability

probabilistic fundamental results.2. Be familiar with several probability parametric models (discrete and

continuous, univariate e multivariate) and related asymptotic results.3. Be familiar with some stochastic simulation techniques.4. To know and to apply several limit laws.5. Be able to use appropriate software to problem solving.

Bibliografia: Pestana, D. , Velosa, S. -  Introdução à probabilidade e à estatística, Fundação Caloustre Gulbenkian, 2002 Murteira, B., Ribeiro, C., Silva, J., Pimenta, C. - Introdução à estatística, Mc. Graw Hill, 2001 Hastings, K. - Introduction to probability with Mathematica, Chapman & Hall/CRC, 2000.Docentes:Cecília Maria Vasconcelos Costa Castro Azevedo Maria Conceição Soares Serra

8506N2 - Processes and Concurrency Processes and ConcurrencyRegime: S6Tipo: CompulsoryLíngua de Instrução: PortugueseCarga Total: 56Créditos: 5Métodos de Ensino:Lectures and problem solving classes.Programa:Petri Nets:- Modeling concurrent systems with Petri nets.- Operational semantics based on transitition systems.- Fundamental net properties: boundedness, liveness, reversibility.- Determining place invariants.- Extensions to standard nets: places with explicity capacity and inhibitor arcs.- Tools for specification and animation of Petri nets (DaNAMiCS, PIPE).Temporal Logic:

Page 34: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

- Specification of safety and liveness properties with the temporal logic CTL.- Explicit model checking of CTL formulas.- Symbolic model checking of CTL formulas using OBDDs.- Tools for symbolic model checking (SMV).Process Algebra:- Automata and transition systems. Interaction and behaviour.- Modeling reactive systems with CCS. Operational semantics. Analysis and verification of transitions.- Calculating reactive systems. Strict and observational equivalence in CCS. Expansion theorem. Equation solving.- Calculating mobile systems. Motivation, syntax, semantics and equivalence between mobile processes.- Animation and process analysis using CWB and MWB.Métodos de Avaliação:Individual exams.Pré-requisitos:Basic knowledge of concurrent programming and discrete mathematics.Resultados de Aprendizagem:- Understand and compare different models and languages for the specification of concurrent systems.- Model concurrent systems of small/medium complexity using Petri nets.- Specify safety and liveness properties using temporal logic.- Understand and compare different verification techniques for temporal logic.- Use tools to verify properties of concurrent systems.- Model concurrent and mobile systems of small/medium complexity using process algebras.- Reason about concurrent and mobile systems of small/medium complexity using process algebras.Bibliografia:- Petri Nets for Systems Engineering: A Guide to Modeling, Verification, and Applications. Claude Girault and Rüdiger Valk (editors). Springer-Verlag, 2003.- Elements of Distributed Algorithms: modeling and analysis with petri nets. Wolfgang Reisig. Springer-Verlag, 1998.- Model Checking. Edmund M. Clarke Jr., Orna Grumberg, and Doron A. Peled. MIT Press, 2001.- Communicating and mobile systems: the pi calculus. Robin Milner. Cambridge University Press, 1999.- The pi calculus: A Theory of Mobile Processes. D. Sangiorgi, D. Walker. Cambridge University Press, 2001.- Reactive Systems: Modelling, Specification and Verification. Luca Aceto, A.Ingólfsdóttir, Kim Larsen, J. Srba. Cambridge University Press, 2007. Docentes:Manuel Alcino Cunha

Page 35: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

Luís Soares Barbosa

8506N3 - Semantics of Programming LanguagesRegime: S2Tipo: MandatoryLíngua de Instrução: PortugueseHoras/Semana: 56Créditos: 5Métodos de Ensino:Lectures and problem solving classes.Programa:1. Introduction. Syntax and semantics. Operational, denotational and axiomatics semantics.2. Definition and proof by induction.

Page 36: Computer Science - Universidade do Minho - …di.uminho.pt/secretaria/picture/upload/file/LCC ENG.doc · Web viewProgramme requirements - The degree in Computer Science seeks to provide

3. Introduction to the operational semantics of an imperative language.4. Introduction to denotational semantics and domain theory.5. Semantic equivalence for imperative languages.6. Operational and denotational semantics of a functional language.Métodos de Avaliação:Individual tests.Pré-requisitos:Basic knowledge of programming and discrete mathematics.Resultados de Aprendizagem:- Understand and compare different methods and techniques for modellingprogramming languages, their foundations and applications.- Use such techniques and methods in the specification of concrete programminglanguages as well as in the verification of semantic equivalences.Bibliografia:- G. Winskel. The formal semantics of programming languages. MIT Press. 1993.- M. Hennessy. The semantics of programming languages. Wiley. 1990.- B. Pierce. Types and programming languages}. MIT Press. 2000.- T. Streicher. Domain-theorectic foundations of functional programs. World Scientific. 2006.Docentes:Luís Soares Barbosa