Teaching - Programação C - 2020/I


Cronograma de Aulas e Conteúdo Programático
Programação C - 2020/I

Aulas as Quintas-Feiras a partir das 19h10
Metodologia
Cronograma Ementa Objetivos Contexto Conteúdo Programático Metodologia Avaliação Bibliografia
Cronograma
Data da Aula Conteúdo Previsto Comentários
20-Fev-20 Aula 1
Introdução.
Revisão geral de algoritmos.
Fundamentos matemáticos.
Crescimento de funções.
Exercícios de Revisão 1.
27-Fev-20 Aula 2
Revisão geral da linguagem C.
05-Mar-20 Aula 3
Revisão geral da linguagem C.
Diferenças de programação para Windows e Linux.
Definição do escopo do Trabalho 2 [T2].
12-Mar-20 Aula 4
Análise e comparação de algoritmos.
Notação BigO
Análise Assintótica.
19-Mar-20 Aula 5
DOJO 1 (kake) [D1].
26-Mar-20 Aula 6
Algoritmos Avançados.
02-Abr-20 Aula 7
Algoritmos Avançados.
09-Abr-20 RECESSO! Não haverá aula.
16-Abr-20 Aula 8
Trabalho 1 [T1].
23-Abr-20 Aula 9
Algoritmos de Ordenação.
30-Abr-20 Aula 10
Algoritmos Elementares de Grafos.
07-Mai-20 Aula 11
Operações Especiais sobre Matrizes.
14-Mai-20 Aula 12
DOJO 2 (kake): manipulação de imagens [D2].
21-Mai-20 Aula 13
Apresentação do Trabalho 2 [T2].
Enunciado Avaliação 1.
28-Mai-20 Aula 14
Projeto Gamer: desenvolvimento de jogo.
04-Jun-20 Aula 15
Projeto Gamer: desenvolvimento de jogo.
11-Jun-20 Aula 16
Projeto Gamer: desenvolvimento de jogo.
18-Jun-20 Aula 17
Projeto Gamer: desenvolvimento de jogo.
25-Jun-20 Aula 18
Projeto Gamer: desenvolvimento de jogo.
02-Jul-20 Aula 19
Apresentação em aula do Projeto Gamer [TF].
09-Jul-20 PROVA DE EXAME [PE]. Conteúdo: toda a matéria!
Ementa
A Disciplina apresenta as técnicas de programação necessárias a criação de programas com acesso a bases de dados relacionais. Para tal, são trabalhadas as principais bibliotecas de acesso a dados do mercado nas tecnologias Java e C#. O aluno é introduzido, ainda, a implementação de algoritmos avançados e as técnicas para comparação e avaliação de algoritmos.
Objetivos
Apresentar os conceitos básicos e avançados de bibliotecas de acesso a dados em aplicações orientadas a objeto. Apresentar algoritmos avançados e técnicas de análise e comparação de algoritmos.
Contexto
Esta disciplina complementa a formação em programação necessária ao curso de Bacharelado em Sistemas de Informação e trata de uma técnica de programação atual e muito presente, tanto nas organizações comerciais quanto de pesquisa acadêmica. Com esta disciplina, o aluno estará preparado a implementar projetos de software durante todo o restante do curso.
Conteúdo Programático
UNIDADE I - Acesso a Dados.
1. Acesso a base da dados com ADO.Net
2. Acesso a base de dados com JDBC.
3. Hibernate e nHibernate.
4. Java Persistance API.
5. Entity Framework + Linq.
6. Controle de transações de banco.
UNIDADE II - Algoritmos Avançados.
1. Algoritmos de Ordenação.
2. Estruturas em Árvore.
3. Algoritmos elementares de grafos.
4. Operações especiais sobre matrizes.
UNIDADE III - Comparação e Análise de Algoritmos.
1. Fundamentos matemáticos.
2. Crescimento de Funções.
2. Notação de Landau. Big O. 
Metodologia
Aulas expositivas e interativas.
Estudos de caso.
Trabalhos práticos de implementação.
Resolução de exercícios.
Apresentação de trabalhos desenvolvidos (em grupos e individuais).
Avaliações escritas..
Avaliação
Para ser aprovado, o aluno precisa ter no mínimo 75% de presença nas aulas e atingir uma média final de pelo menos 7.0 no Grau 1. A média final no Grau 1 será calculada da seguinte forma:

G1 = ((D1×1 + D2×1 + T1×2 + T2×2 + TF×4)) / 10

onde:
G1: Média Final do Grau 1.
D1: Dojo 1: participação na atividade. Vale 10 pontos.
D2: Dojo 2: participação na atividade. Vale 10 pontos.
T1: Trabalho 1: trabalho realizado em aula. Vale 10 pontos.
T2: Trabalho 2: trabalho teórico (Unidade I). Vale 10 pontos.
TF: Trabalho Final: realizado entre as aulas e 18. Vale 10 pontos.

Alunos que atingirem Média Final no Grau 1 menor do que 4.0, ou não registrarem presença em pelo menos 75% das aulas, estarão automaticamente reprovados na disciplina.
Alunos que atingirem G1 ≥ 4.0 e G1 < 7.0 irão automaticamente para exame, onde deverão atingir uma Média Final do Semestre de pelo menos 6.0, calculada conforme a seguir:


MF = (G1 + PE) / 2

onde:
MF: Média Final do semestre.
G1: Média Final do Grau 1.
PE: Prova do Exame: conteúdo: toda a matéria do semestre. Vale 10 pontos.
Bibliografia
Básica:
  • CORMEN, Thomas H; LEISERSON, Charles E; RIVEST, Ronald L; STEIN, Clifford. Algoritmos: teoria e prática. Rio de Janeiro: Campus, 2002. 916 p. ISBN 9788535209266.
  • LAFORE, Robert. Estruturas de dados & algoritmos em Java. Rio de Janeiro: Ciência Moderna, 2004. 702 p. ISBN 9788573933758.
  • GOODRICH, Michael T; TAMASSIA, Roberto. Projeto de algoritmos: fundamentos, análise e exemplos da Internet. Porto Alegre: Bookman, 2004. 696 p. ISBN 9788536303031.
  • GOODRICH, Michael T; TAMASSIA, Roberto. Estruturas de dados e algoritmos em Java. 2.ed. Porto Alegre: Bookman, 2002. 584 p. ISBN 9788536300436.
Complementar:
  • PEREIRA, Silvio do Lago. Algoritmos e lógica de programação em C: uma abordagem didática. São Paulo: Érica, 2013. 190 p. ISBN 9788536503271.
  • REESE, George. JDBC e Java: programação para banco de dados. São Paulo: Berkeley, 2001. 371 p. ISBN 9788572515948.
  • TARIFA, Alexandre; FACUNTE, Emerson; GARCIA, Marcus. C#: desenvolvendo uma aplicação comercial. 2006 Rio de Janeiro: Brasport, 2006. 176 p. ISBN 9788574522715.
  • TURTSCHI, Adrian; WERRY, Jason; HACK, Greg; ALBAHARI, Joseph. C# .NET: guia do desenvolvedor Web. 2.ed. Rio de Janeiro: Alta Books, 2004. 517 p. ISBN 9788576080671.
  • SHARP, John. Microsoft visual C# 2008: passo a passo. Porto Alegre: Bookman, 2008. 624 p. ISBN 9788577802630.
Conteúdo Adicional

Recent Posts

Installing MPI on Ubuntu
19. Sep. 2013 Instalar o MPI no Ubuntu é fácil. Basta rodar o seguinte comando: sudo apt-get install libcr-dev mpich2 mpich2-doc...
Installing CUDA 5.0 on Kubuntu 11.10
25. Jan. 2013 A instalação do novo pacote da NVIDIA para o CUDA5.0 no Kubuntu (ou Ubuntu) 11.10 é fácil, basta atentar às seguintes observações...
nbody simulations
19. Nov. 2011 Here we have some very basic simulations I made using the C code I developed...

Contact

Filipo Novo Mór
PPGCC - PUCRS
Av. Ipiranga, 6681
Porto Alegre – RS – Brazil
CEP 90619-900
Phone +55 51 3320.3500
filipo.mor at gmail.com