Análise de Algoritmos



Documentos relacionados
UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática EMENTAS DA 3ª. ETAPA

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA. Plano de Ensino

UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática. 4 a ETAPA

UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática EMENTAS DAS DISCIPLINAS 3ª. ETAPA

UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática. 3 a ETAPA

Curso Técnico em Informática Organização Curricular. A carga horária total dos módulos é oferecida conforme quadro síntese abaixo:

Gestão de Projectos de Software - 1

LISTA DE TEMAS PARA CONCURSO DE PROFESSOR ADJUNTO EDITAL 90/2010 ÁREA DE ANATOMIA VEGETAL GERAL, COM ÊNFASE EM ANATOMIA ECOLÓGICA * * * * * *

Ementas Disciplinas Obrigatórias

Universidade Federal do ABC Rua Santa Adélia, Bairro Bangu - Santo André - SP - Brasil CEP Telefone/Fax:

Curso Superior de Tecnologia em Análise e Desevolvimento de Sistemas CÂMPUS GASPAR

Programação Orientada a Objeto

Estrutura de dados. Link do Google Drive: ED Apresentação Luiz Gonçalves Última revisão 8/12/14

Ficha da Unidade Curricular (UC)

Programação orientada a objetos usando a linguagem C++ CDTN Centro de Desenvolvimento de Tecnologia Nuclear

UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática EMENTAS DAS DISCIPLINAS 5ª. ETAPA

Programa de Unidade Curricular

Universidade do Estado da Bahia UNEB Departamento de Ciências Exatas e da Terra - Campus I

FORMULÁRIO PARA CRIAÇÃO DE DISCIPLINA

UNIVERSIDADE PRESBITERIANA MACKENZIE

PÓS-GRADUAÇÃO MATEMÁTICA APLICADA

Web site. Objetivos gerais. Introdução. Profa. Patrícia Dockhorn Costa

PCC173 - Otimização em Redes

Ementas Disciplinas Eletivas

JAVA Express com Lógica

Ficha da Disciplina COMPUTAÇÃO GRÁFICA E INTERFACES. Objectivos. Docente

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE PELOTAS PRÓ-REITORIA DE GRADUAÇÃO PLANO DE ENSINO. Semestre Letivo º. 1. Identificação Código

Universidade do Estado da Bahia UNEB Departamento de Ciências Exatas e da Terra - Campus I

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA. Plano de Ensino

Paradigmas de Linguagens de Programação

FACULDADE PROJEÇÃO ESCOLA DE TECNOLOGIA UNIDADE SOBRADINHO

Sistemas de Informação 3º ANO

PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO (PROENG) ASSESSORIA DE DESENVOLVIMENTO ASSESSORIA JURÍDICA

PLANO DE ENSINO. CURSOS: Licenciatura em Computação, Licenciatura em Matemática, Licenciatura. MODALIDADE: Presencial

UNIVERSIDADE PRESBITERIANA MACKENZIE Faculdade de Computação e Informática EMENTAS DAS DISCIPLINAS OPTATIVAS I

FACULDADE PROJEÇÃO ESCOLA DE TECNOLOGIA. Edital para o Processo de Seleção de alunos para o Laboratório de Práticas de Desenvolvimento.

EDITAL 06/2013 EDITAL DE ABERTURA DO PROCESSO SELETIVO 2014 DO PROGRAMA DE DOUTORADO EM CIÊNCIAS CONTÁBEIS E ADMINISTRAÇÃO

PLANO DE ENSINO. ATIVIDADE SEG TER QUA QUI SEX Aulas Atendimento Preparação de aula

DINÂMICA DOS FLUIDOS COMPUTACIONAL. CFD = Computational Fluid Dynamics

Computação Gráfica. Modelo de sombreamento Determina como o modelo de iluminação será aplicado e quais seus argumentos

Sistemas de Tempo Real

FACULDADE PROJEÇÃO ESCOLA DE TECNOLOGIA

Programa Analítico. Introdução. Origens da programação Orientada a Objetos. Paradigma procedural. Paradigma Orientado a Objetos.

Planificação de. Aplicações Informáticas B

EMENTÁRIO E BIBLIOGRAFIA BÁSICA

Formação em JAVA. Subtítulo

Programação em JAVA. Subtítulo

UENF - COORDENAÇÃO ACADÊMICA - Universidade Estadual do Norte Fluminense Darcy Ribeiro

Pontifícia Universidade Católica do Rio Grande do Sul FACULDADE DE INFORMÁTICA

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

DEPARTAMENTO DE ENGENHARIA ENGENHARIA AMBIENTAL 1º PERÍODO

Matemática Aplicada Mestrados em Engenharia Industrial e Engenharia Química

Programação com Objetos Distribuídos Apresentação

CURSO DESENVOLVEDOR JAVA Edição 2010

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ Campus Curitiba PLANO DE ENSINO

Visão Geral Parte 1. O que é engenharia de software?

Programação para Internet

Infra-estrutura de Software

GRADUAÇÃO EM ENGENHARIA

(P AA) 2 PACOTE DE APOIO A APRENDIZAGEM DE PROJETO E ANÁLISE DE ALGORITMOS: IMPLEMENTAÇÃO EM JAVA

PROCESSO SELETIVO DE TRANSFERÊNCIA DE ALUNOS E PORTADOR DE DIPLOMA DE GRADUAÇÃO PRIMEIRO SEMESTRE ANEXO IX ENGENHARIAS - 1º ANO CÁLCULO I

Java 3D TM API. 1. Introdução. Profa. Isabel Harb Manssour. Introdução. Roteiro. Conceitos de Computação Gráfica

Instituto de Ciências Exatas Departamento de Ciência da Computação. Plano de Curso

FORMULÁRIO PARA CRIAÇÃO DE DISCIPLINA

Java. Marcio de Carvalho Victorino

Otimização Aplicada à Engenharia de Processos

CURSO DE ENGENHARIA DE COMPUTAÇÃO Renovação de Reconhecimento pela Portaria n 123 de 09/07/12 DOU de 10/07/12 PLANO DE CURSO

Curso Superior de Tecnologia em Banco de Dados e Sistemas para Internet Disciplina: Projeto Integrador III Prof.: Fernando Hadad Zaidan

PROGRAMA DE DISCIPLINA

UNIVERSIDADE FEDERAL DE LAVRAS PRÓ-REITORIA DE PÓS-GRADUAÇÃO COORDENADOR1A DE PÓS-GRADUAÇÃO STHCTOSBJSU DISCIPLINA

Programa Analítico de Disciplina INF323 Engenharia de Software II

FAPESP FUNDAÇÃO DE AMPARO À PESQUISA DO ESTADO DE SÃO PAULO UNIVERSIDADE DE SÃO PAULO INSTITUTO DE MATEMÁTICA E ESTATÍSTICA (IME) GeoGrid

Engenharia Mecânica com linha de formação específica em Engenharia Mecatrônica

Programação em Java. Subtítulo

UNIVERSIDADE FEDERAL DE PERNAMBUCO. Relatório Perfil Curricular

PROGRAMA. Curso: Mestrado em Educação e Comunicação Multimédia. diurno. Ciclo: 2º. pós-laboral. Ano: 1º Semestre: 1º

Linguagem de Programação Orientada a Objeto. Introdução a Orientação a Objetos Professora Sheila Cáceres

Universidade do Estado da Bahia UNEB Departamento de Ciências Exatas e da Terra - Campus I

Ementas do Curso de Engenharia Civil ( até o quarto período )

Rediscussão do BC&T. Eixo de Representação e Simulação

Linguagem de Programação Introdução a Linguagem Java

Sistemas Distribuídos (DCC/UFRJ)

Escola de Economia e Gestão. Empresas e Mercados

PRÓ - REITORIA ACADÊMICA PLANO DE ENSINO

Transcrição:

Etapa 4 Curso Matutino Componente *: Critério de Avaliação*: Análise de Algoritmos 68 aulas de 45 minutos cada 4 aulas teóricas Formalizar a notação assintótica para análise de algoritmos. Apresentar análises de algoritmos iterativos e recursivos clássicos. Introduzir técnicas avançadas construção de algoritmos (programação dinâmica, algoritmos gulosos e aproximativos) e de análise (probabilística e amortizada). Análise assintótica. Recorrências. Análise de caso médio. Análise amortizada. Programação dinâmica. Algoritmos gulosos. Algoritmos aproximativos. 1. Análise assintótica 1.1. Formalização da notação assintótica 1.2. Cotas inferiores e superiores 1.3. Estimação de somas via Teorema do Confronto para séries 1.4. Resolução de recorrências 1.4.1. Método de substituição 1.4.2. Método da árvore de recursão 1.4.3. Método baseado no Teorema-Mestre 1.5. Exemplos de análise de algoritmos iterativos e recursivos clássicos (busca e ordenação) 2. Análise probabilística 2.1. Breve revisão dos conceitos de variável aleatória, esperança matemática e distribuição de probabilidade discretas 2.2. Método das variáveis aletórias indicadoras 2.3. Análise de caso médio para algoritmos clássicos 2.4. Noções de algoritmos aleatórios 3. Análise amortizada 3.1. Operações sucessivas em estruturas de dados e o problema de subestimação assintótica 3.2. Método agregado 3.3. Método baseado em atribuição de pesos (accounting method) 3.4. Método do potencial 4. Programação dinâmica 4.1. Problemas e sub-problemas 4.2. Dependências entre problemas e sub-problemas 4.3. Armazenamento e junção de soluções parciais 4.4. Exemplos clássicos de programação dinâmica 4.4.1. Multiplicação de cadeias de matrizes 4.4.2. Maior subseqüência comum 4.4.3. Árvores de busca ótimas 5. Algoritmos gulosos (greedy) 5.1. Noções de matróides 5.2. Estruturas de matróides em problemas 5.3. Estratégia gulosa 5.4. Exemplos clássicos de algoritmos gulosos 5.4.1. Problema de seleção de atividades 5.4.2. Código de Huffman 6. Algoritmos aproximativos 6.1. Soluções exatas e aproximadas de problemas 6.2. Raios de aproximação 6.3. Exemplos de algoritmos aproximativos para problemas de otimização Bibliografia Básica *: Bibliografia Complementar : CORMEN, T. H.; LEISERSON, C. E.; RIVEST, L.R. Introduction to algorithms. Cambridge : The MIT Press, 2000. LEVITIN, A.V. Introduction to the Design and Analysis of Algorithms. New York: Addison-Wesley, 2002. 35

Situação *: GOODRICH, Michael T.; TAMASSIA, Roberto. Projeto de Algoritmos. São Paulo: Bookman, 2004. MABER, U. Introduction to Algorithms: A Creative Approach. Reading: Addison- Wesley, 1989. PAPADIMITRIOU, C.H. Combinatorial Optimization: Algorithms and Complexity. Mineola: Dover, 1998. SHAFFER, C.A. A Practical Introduction to Data Structures and Algorithm Analysis. Upper Saddle River: Prentice-Hall, 2001. 36

Componente *: Análise Numérica II 51 aulas de 45 minutos cada 3 aulas teóricas Complementar a formação em análise numérica iniciada na disciplina Análise Numérica I, enfatizando os aspectos de convergência, estabilidade e eficiência para problemas que envolvam equações diferenciais. Durante a disciplina, os alunos devem realizar implementações dos principais algoritmos e testá-los em diversas situações para estimar medidas de eficiência, convergência e estabilidade. Derivação numérica. Métodos numéricos para equações diferenciais ordinárias. Métodos numéricos para equações diferenciais parciais. 1. Diferenciação numérica 1.1. Conceito de diferenciação numérica 1.2. Métodos de passo atrasado, central e adiantado 1.3. Extrapolação de Richardson 2. Métodos para equações diferenciais ordinárias 2.1. Problemas de valor inicial e de contorno 2.2. Método de Euler 2.3. Métodos de Runge-Kutta 2.4. Métodos multipasso 2.5. Equações de ordem superior e sistemas de equações diferenciais 2.6. Eficiência, convergência e estabilidade dos métodos para equações diferenciais ordinárias 3. Métodos numéricos para equações de derivadas parciais 3.1. Fundamentos de equações de derivadas parciais 3.2. Equações diferenciais parciais elípticas 3.3. Equações diferenciais parciais parabólicas 3.4. Equações diferenciais parciais hiperbólicas 3.5. Noções do método de elementos finitos 3.6. Eficiência, convergência e estabilidade dos métodos para equações diferenciais parciais Critério de Avaliação*: Bibliografia Básica *: BURDEN, R.L. Análise Numérica. São Paulo: Thomson Pioneira, 2003. Bibliografia Complementar : Situação *: BOYCE, W.E. Equações Diferenciais Elementares e Problemas de Valores de Contorno. 6.ed. Rio de Janeiro: LTC, 1998. CLAUDIO, D.M., MARINS, J.M. Cálculo numérico computacional. : teoria e prática. 3. ed. São Paulo : Atlas, 1998. IORIO, R., IORIO, V.M. Equações Diferenciais Parciais: uma Introdução. Rio de Janeiro: IMPA, 1988. SPERANDIO, D., MENDES, J.T., SILVA, L.H. Monken. Cálculo Numérico: Características Matemáticas e Computacionais. São Paulo: Pearson, 2003. 37

Componente *: Cálculo Diferencial e Integral IV 51 aulas de 45 minutos cada 3 aulas teóricas Introduzir os conceitos de equações diferenciais ordinárias, com ênfase em soluções analíticas, e seqüências/séries infinitas. Equações diferenciais ordinárias. Noções de equações de derivadas parciais. Seqüências e séries numéricas. Critérios de convergência. Séries de Potências. Séries de Fourier. Critério de Avaliação*: 1. Equações diferenciais de primeira ordem 1.1. Conceito de equação diferencial 1.2. Equações diferenciais ordinárias e de derivadas parciais 1.3. Problemas de valor inicial 1.4. Exemplos de modelagem via equações diferenciais 1.5. Noções de análise qualitativa de equações diferenciais via campos vetoriais 1.6. Equações diferenciais separáveis 1.7. Equações de primeira ordem lineares 1.8. Aplicações 2. Equações diferenciais de segunda ordem 2.1. Forma geral das equações diferenciais de segunda ordem 2.2. Problemas de valor inicial e de contorno 2.3. Equação característica 2.4. Equações de segunda ordem lineares 2.5. Método dos coeficientes indeterminados 2.6. Método de variação de parâmetros 2.7. Aplicações 3. Seqüências e séries infinitas 3.1. Conceito de seqüência 3.2. Limites e convergência 3.3. Seqüências crescentes, decrescentes, monótonas e limitadas 3.4. Conceito de série 3.5. Critérios de convergência 4. Séries de potências 4.1. Conceito de série de potência 4.2. Raio de convergência 4.3. Representação de funções via série de potências 4.4. Séries de Taylor 4.5. Séries de Maclaurin 4.6. Noções sobre Séries de Fourier 4.7. Aplicações Bibliografia Básica *: Bibliografia Complementar : Situação *: STEWART, J. Cálculo. 4. ed. São Paulo: Pioneira Thomson Learning, 2001, v.2. BOYCE, W.E., DIPRIMA, R.C. Equações Diferenciais Elementares e Problemas de Valores de Contorno. 7. ed. Rio de Janeiro: LTC, 2001. FIGUEIREDO, D.G. Equações Diferenciais Aplicadas. Rio de Janeiro: IMPA, 2001. FINNEY, R. L., WEIR, M. D., GIORDANO, Frank R. Cálculo de George B. Thomas Jr. Addison Wesley, 2002, v.2. GUIDORIZZI, H.L. Um curso de cálculo. 4. ed. Rio de Janeiro : LTC, 2000. v. 4. 38

Componente *: Introdução à Computação Gráfica 68 aulas de 45 minutos cada 4 aulas teóricas Introduzir os conceitos e processos básicos de computação gráfica. Apresentar e utilizar a biblioteca padronizada OpenGL em problemas clássicos de computação gráfica. Hardware para computação gráfica. Bibliotecas Gráficas. Modelagem poligonal. Transformações geométricas. Câmeras. Fundamentos de Teoria da Cor. Modelos de iluminação. Mapeamento de textura. Fundamentos de animação. 1. Processamento Gráfico 1.1. Conceito de Processamento Gráfico 1.2. Áreas de Processamento Gráfico: computação gráfica, processamento de imagens, visão computacional e modelagem 1.3. Exemplos 1.4. Suporte de hardware e software para processamento gráfico 2. Hardware para Computação Gráfica 2.1. Placas de vídeo e aceleração gráfica 2.2. Monitores de vídeo: CRT, LCD e plasma 2.3. Dispositivos de entrada gráfica 2.4. Integração entre dispositivos gráficos 2.5. Hardware de alto desempenho 3. Bibliotecas Gráficas 3.1. Pipeline básica da computação gráfica 3.2. Organização básica de bibliotecas gráficas 3.3. Integração com hardware 3.4. Estrutura das principais bibliotecas gráficas 3.5. Prática de compilação com OpenGL sob Linux 4. Modelagem Poligonal 4.1. Malhas poligonais 4.2. Resolução de malhas 4.3. Simplificação e refinamento 4.4. Estruturas de dados para malhas poligonais 4.5. Geração de malhas poligonais 4.6. Prática de manipulação de malhas poligonais em OpenGL 5. Curvas e Superfícies 5.1. Curvas parametrizadas ( Bézier, Splines) 5.2. Superfícies parametrizadas ( Bézier, Splines) 6. Transformações Geométricas 6.1. Sistema de coordenadas homogêneas 6.2. Transformação bidimensionais rígidas 6.3. Transformações tridimensionais rígidas 6.4. Deformações 6.5. Prática de transformações geométricas em OpenGL 7. Câmeras e Visualização 7.1. Parâmetros intrínsecos e extrínsecos de câmeras 7.2. Projeções ortogonal e perspectiva 7.3. Transformação de vista 7.4. Remoção de superfícies ocultas e clipping 7.5. Rasterização poligonal 7.6. Prática de manipulação de câmeras e visualização em OpenGL 8. Fundamentos de Teoria da Cor 8.1. Natureza física da cor 8.2. Amostragem e reconstrução de cores 8.3. Espaços de cores: CIE, RGB, HSV e CMYK 8.4. Conversão entre espaços de cores 8.5. Quantização de cores 8.6. Prática de manipulação de cores em OpenGL 9. Modelos de iluminação 9.1. Interação entre luz e material 9.2. Iluminação e shading 9.3. Modelo de iluminação de Lambert 9.4. Modelo de iluminação de Phong 9.5. Shading Flat, Phong e Gouraud 9.6. Prática de manipulação de modelos de iluminação em OpenGL 39

Critério de Avaliação*: 10. Geração e Mapeamento de Textura 10.1. Espaços de textura 10.2. Geração de textura por ruído 10.3. Geração de textura por displacement e bump mapping 10.4. Mapeamento de texturas bidimensionais 10.5. Mapeamento de texturas tridimensionais 10.6. Prática de manipulação de texturas em OpenGL Bibliografia Básica *: WATT, A. Fundamentals of three-dimensional computer graphics. Reading: Addison-Wesley, 1993. Bibliografia Complementar : ANGEL, E. Interactive computer graphics: a top-down approach with OpenGL. 2. ed. Reading: Addison-Wesley, 2000. HILL, F. S. Computer graphics : using OpenGL. 2. ed. Upper-Saddle River: Prentice Hall Press, 2001 GOMES, J.M., VELHO, L.C. Computação Gráfica. Rio de Janeiro : SBM/IMPA, 1998. v. 1. (Série de Computação e Matemática). GOMES, J.M., VELHO, Luiz Carlos. Computação Gráfica : Imagem. Rio de Janeiro : SBM/IMPA, 1995. (Série de Computação e Matemática). WATT, A. H., WATT, M. Advanced animation and rendering techniques : theory and practice. Reading : Addison-Wesley, 1992. Situação *: 40

Componente *: Introdução à Engenharia de Software 68 aulas de 45 minutos cada 4 aulas teóricas Introduzir os conceitos básicos de processos, projeto, verificação, validação, qualidade e evolução de software. Durante a disciplina, os alunos desenvolvem um projeto de software desde a especificação de req uisitos até a proposta de um plano de testes. Processo de desenvolvimento de software. Noções de gerenciamento de projetos. Análise de requisitos. Métodos de análise, projeto e implementação. Testes de software. Implantação e Manutenção. Noções de qualidade de software. Critério de Avaliação*: 1. Processo de desenvolvimento de software 1.1. Processo de engenharia de sistemas 1.2. Modelos de processo de software 1.3. Especificação de software 1.4. Projeto e implementação 1.5. Validação de software 1.6. Evolução de software 1.7. Qualidade de software 2. Gerenciamento de projetos 2.1. Atividades de gerenciamento 2.2. Planejamento de projeto 2.3. Programação de projeto 2.4. Gerenciamento de riscos 2.5. Noções de estimativa de custos 3. Engenharia de requisitos 3.1. Requisitos de software 3.2. Documento de requisitos 3.3. Estudos de viabilidade 3.4. Obtenção e análise de requisitos 3.5. Validação e gerenciamento de requisitos 3.6. Modelos de sistemas (contexto, comportamento, dados e objetos) 3.7. Noções de prototipação de software 4. Projeto de software 4.1. Projeto de Arquitetura 4.2. Projeto Estruturado 4.3. Projeto orientado a objetos 4.4. Projeto de software de tempo real 4.5. Projeto com reuso 4.6. Projeto de interfaces com usuário 4.7. Projeto de sistemas críticos 5. Verificação e validação 5.1. Planejamento de verificação e validação 5.2. Testes de detecção de defeitos 5.3. Testes de integração 5.4. Testes orientados a objetos 5.5. Validação de sistemas críticos 6. Qualidade de software 6.1. Noções de medição e métricas de software 6.2. Qualidade de processo e de produto 6.3. Medições de processo 6.4. Noções de modelos de maturidade 7. Evolução de software 7.1. Sistemas legados 7.2. Evolução de arquitetura 7.3. Reengenharia de software 7.4. Reengenharia de dados 7.5. Gerenciamento de versões 41

Bibliografia Básica *: Bibliografia Complementar : Situação *: SOMMERVILLE, I., Engenharia de Software. 6. ed. São Paulo: Addison-Wesley, 2003. GHEZZI, C., JAZAYERI, M., MANDRIOLI, D. Fundamentals of Software Engineering. Upper Saddle: Prentice Hall, 2000. HUMPHREY, W.S. Introduction to the Team Software Process. Reading: Addison-Wesley, 2000. HUMPHREY, W.S. Managing the Software Process. Reading: Addison-Wesley, 2002. PETERS, J.F., PEDRYCZ, W. Engenharia de Software: Teoria e Prática. Rio de Janeiro: Editora Campus, 2001. PRESSMAN, Roger S. Software engineering: a practitioner s approach. 5. ed. McGraw-Hill, 2000. SCHACH, S.R. Object-Oriented and Classical Software Engineering. 6.ed. Boston: McGraw-Hill, 2005. 42

Componente *: Linguagem de Programação II 85 aulas de 45 minutos cada 3 aulas teóricas e 2 aulas práticas Apresentar a linguagem de programação Java, reforçando os conceitos de orientação a objetos. Introduzir noções de programação concorrente e distribuída. Características da linguagem Java. Sintaxa básica. Tratamento de exceções. Estruturação de classes. Polimorfismo. Classes abstratas. Interfaces. Pacotes. Pacote java.lang. Noções de programação multithreading. Pacotes java.util, java.io e java.net. Interfaces gráficas via AWT e Swing. Applets. 1. Características de linguagem 1.1. Histórico da linguagem 1.2. Vantagens e deficiências da linguagem 1.3. Comparação com outras linguagens 1.4. Geração de bytecodes e a interpretação via JVM ( Java Virtual Machine ) 1.5. Integração com outras linguagens 2. Sintaxe básica 2.1. Tipos e operadores 2.2. Declaração de variáveis 2.3. Comandos condicionais(if, swtich-case) e iteração(for,while, do-while) 2.4. Arrays 2.5. Organização básica de classes e programas Java 3. Tratamento de exceções 3.1. Principais exceções 3.2. Detecção e recuperação de exceções via try-catch 3.3. Tratamentos com finally 3.4. Lançamento de exceções via throw 3.5. Sinalização de exceções com throws 3.6. Construção de classes de exceção 4. Estruturação de classes 4.1. Atributos, métodos, construtores e instanciação 4.2. Superclasses, sub-classes e o processo de herança em Java 4.3. Polimorfismo 4.4. Declarações static e final 4.5. Modificadores de acesso: public, protected, default e private 4.6. Classes abstratas 5. Interfaces 5.1. Declaração e implementação de interfaces 5.2. Extensão de interfaces 5.3. Comparação com classes abstratas 6. Pacotes 6.1. Organização e implementação de pacotes 6.2. Acesso a pacotes 6.3. Organização dos pacotes básicos da linguagem Java: java.lang, java.util. java.io, java.net, java.awt e javax.swing 7. Classes básicas e utilitárias 7.1. Pacote java.lang ( classes básicas ) 7.2. Pacote java.util ( classes utilitárias ) 8. Tratamento de E/S 8.1. Modelo de streams 8.2. Pacote java.io 8.3. Tratamento de arquivos 9. Fundamentos de programação concorrente e distribuída 9.1. Programação com threads 9.2. Métodos de sinconização e a declaração synchronized 9.3. Noções do modelo cliente-servidor e sockets 9.4. Pacote java.net 9.5. Servlets e scripts JSP 9.6. Acesso a bancos de dados via JDBC 10. Interfaces gráficas 10.1. Pacote java.awt 10.2. Pacotes javax.swing 10.3. Modelo MVC em componentes Swing 11. Applets 11.1. Modelo de execução de applets e políticas de segurança 43

Critério de Avaliação*: 11.2. Construção de applets 11.3. Integração com páginas HTML Bibliografia Básica *: Bibliografia Complementar : Situação *: XIAOPING, J. Object-oriented software development using Java: principles, patterns and frameworks. Boston: Addison-Wesley, 2002. CAMPIONE, M.; WALRATH, K. The Java tutorial: object-oriented programming for the Internet. 2. ed. Boston: Addison-Wesley, 2000. HAROLD, E.R. Java network programming. Beijing: O Reilly, 2000. HORSTMANN, C.S. Core Java 2. Palo Alto: SUN Microsystems Press, 2002. LEA, D. Concurrent programming in Java: design principles and patterns. Reading: Addison-Wesley, 1997. 44

Componente *: Programação Matemática 68 aulas de 45 minutos cada 4 aulas teóricas Introduzir o conceito de problema de otimização, sua tipologia, estrutura e dificuldades de resolução. Apresentar os principais métodos de resolução de problemas de otimização. Modelagem de problemas de otimização. Métodos gráficos. Programação Linear. Programação inteira. Programação não-linear. 1. Problemas de Otimização 1.1. Tipos de problemas de otimização 1.2. Tamanho do problema 1.3. Complexidade de problemas de otimização 1.4. Algoritmos iterativos e convergência 1.5. Modelagem de problemas 2. Programação Linear 2.1. Propriedades elementares de problemas lineares: estrutura geométrica, soluções básicas, Teorema Fundamental da Programação Linear, Convexidade 2.2. Método Simplex 2.3. Dualidade e o Método Simplex Dual 2.4. Problema de Transporte 2.5. Problema de Atribuição 3. Programação Inteira 3.1. Conceito de relaxação 3.2. Relaxação em Programação Linear 3.3. Relaxações combinatórias e lagrangeanas 3.4. Métodos do tipo branch-and-bound e branch-and-cut 4. Programação Não-Linear sem Restrições 4.1. Funções côncavas e convexas 4.2. Critérios de otimalidade para problemas de programação não-linear sem restrições 4.3. Método de Newton 4.4. Método do gradiente descendente 4.5. Método do gradiente conjugado 5. Programação Não-Linear com Restrições 5.1. Critérios de otimalidade para problemas de programação não-linear com restrições 5.2. Multiplicadores de Lagrange 5.3. Condições KKT (Karush-Kuhn-Tucker) 5.4. Método da projeção de gradiente 5.5. Método do gradiente reduzido 5.6. Método de penalidades e barreiras Critério de Avaliação*: Bibliografia Básica *: LUENBERGER, D. G. Linear and Nonlinear Programming. 2.ed. New York: Kluwer Academic Publishers, 2003. Bibliografia Complementar : BAZARAA, M. S.; SHERALI, H. D.; SHETTY, C. M. Nonlinear programming: theory and algorithms. 2nd ed. New York: John Wiley, 1993. CHONG, E. K.P.; ZAK, S. H. An introduction to optimization. 2.ed. New York: John Wiley, 2001. NASH, S., SOFER, A., NASH, S. G. Linear and Nonlinear Programming. New York: McGraw Hill, 1995. NEMHAUSER, G.; WOLSEY, L.. Integer and combinatorial optimization. New york: John Wiley, 1999. PAPADIMITRIOU, C. H.; STEIGLITZ, K.. Combinatorial optimization : algorithms 45

Situação *: and complexity. Mineola: Dover, 1998. SUNDARAM, R. K. A first course in optimization theory. Cambridge: Cambridge University, 1996. WINSTON, W. L. Introduction to Mathematical Programming. 4th Edition. New York: Duxbury Press, 2002. 46