UFMG - ICEx - DCC
DCC003 --Algoritmos e Estruturas de Dados I -- AEDsI
1o.
Semestre de 2016 – Turma TB2
Aulas: Terças e quintas, sala 2008, 09:25-11:05
Notas
Não haverá aula na terça 28/junho
-> última aula na quinta-feira 30 de junho
Aqui neste arquivo
do tipo pdf estão discriminados vários elementos de verificação e avaliação da
disciplina;
O cabeçalho
Faltas/60 p1 p2 p3/8 p3/16
TP/32 TP Extra Final
Deve ser entendido: Número de Faltas em um total de 60
aulas, p1 e p2 notas em 8 da Prova 1 e Prova 2 respectivamente; p3/8 e p3/16
notas da Prova 3 em um total de 8 e 16 pontos respectivamente; TP/32 número
total de TPs entregues com nota superior a zero; TP nota dos TPs em 40, quem
fez 10 ou mais TPs ganhou 40! A coluna seguinte (TP Extra), de maneira linear
distribui até 10 pontos extras; A coluna “Final” mostra a soma das duas
melhores notas de prova e notas de TPs. Parabéns a todos que conseguiram
aprender alguns dos conceitos básicos de programação! Na aula de quinta
(30/junho) todas as notas poderão ser analisadas e verificadas.
As notas dos TPs (em ordem de número de matrícula!) estão aqui neste arquivo pdf.
Você deve ter uma conta na UFMG.
Guilherme:
Monitoria: todas as quartas sala/lab
1009 de 17:05 as 18:05 guilhenrique.assis [em] correio da google
Matheus:
Monitoria: todas as sextas sala/lab
1009 de 09:30 as 10:30 matheus.araujo [em] dcc ponto ufmg ponto br
Tem alguns “wikis” que podem ser interessantes:
ex. http://en.wikibooks.org/wiki/C_Programming/Standard_libraries
O objetivo desta disciplina é facilitar que o aluno domine os conceitos básicos de programação utilizando o paradigma imperativo, além disso, facilitar que o aluno aprenda uma linguagem de programação, neste caso a linguagem C e C++, e aprenda ainda alguns algoritmos e estruturas de dados simples. Exemplos de conceitos básicos de programação: fluxo de controle, variável, constante, operador, expressão, comando/operador de atribuição, comando iterativo, apontador, referência, arranjo e indexação, cadeia de caracteres, funções, arquivo, entrada e saída, estrutura de dados simples. Exemplos de algoritmos simples: cálculo de digitos verificadores, seqüências, ordenação, regras de negócio simples em jogos como senha, jogo-da-velha e sudoku.
Avaliação:
60 pontos: duas provas valendo 30 pontos cada (são dadas três provas!)
40 pontos: trabalhos práticos, listas de exercícios, testes etc.
Typically, teacher-based assessment is presented in the literature as having higher validity than external assessment. Due to its continuous nature, teacher-based assessment often allows for important achievements to be measured that could not be captured in a final examination, such as extended projects, practical assignments or oral work.
However, teacher-based assessments are often perceived as unreliable. Test items and grading standards may vary widely between teachers and schools, so that the results of internal assessment will lack external confidence and cannot be compared across schools. There might also be a high risk of bias in teacher-based assessment, i.e. the assessment is unfair to particular groups of students
(fonte: OECD)
A disciplina é baseada nas notas de aula. Quando o aluno não comparecer à aula, deve arranjar um colega que forneça as anotações de aula. Parte do material será disponibilizada neste sítio da Web.
Material suplementar
Consulte estes livros na biblioteca do ICEx, por exemplo
GUIMARÃES, Angelo de Moura, LAGES, Newton
Alberto.
Algoritmos e Estruturas de Dados,
Ed. LTC, 1994.
Existem vários cursos de C/C++ disponíveis na Internet. O problema destes cursos é que a ênfase é a linguagem. Procure cursos onde a ênfase são os conceitos de programação. Alguns sítios discutem material conceitual importante; Esta página http://www.joelonsoftware.com/articles/Unicode.html discute vários aspectos do conceito de “caractere” e aspectos relacionados como, por exemplo, a questão de “representação de caractere”.
Provas:
As provas são sem consulta, mas você *pode* trazer uma folha (folha de
consulta) tamanho A4 contendo quaisquer anotações de próprio punho; não é para
imprimir, não é para copiar (não faça colagens). A folha de consulta deverá ser
entregue junto com a prova. O objetivo da folha de consulta é evitar que o
aluno escreva na carteira, na régua, na borracha etc. O objetivo da folha de
consulta não é testar se o aluno sabe condensar centenas de folhas em uma só
folha.
São escolhidas as duas melhores notas caso o aluno faça as três provas. O objetivo de existirem três provas e serem escolhidas duas notas é evitar que o professor tenha que fazer julgamento de mérito no caso de alunos que não podem comparecer em algum dia de prova. A possível melhoria de nota é um efeito colateral.
1a. Prova:
2a. Prova:
3a. Prova:
Trabalhos Práticos:
Listas de Exercícios:
Testes Surpresa:
Material Extra:
Dicas sobre o uso polido e educado de correio eletrônico
Dicas sobre código ilegível, incompreensível e de difícil manutenção (incomprehensible)
Calendário
|
Data |
Aula |
Evento |
Assunto |
|
Março |
|
|
|
|
03 |
|
Recepção |
|
|
08 |
01 |
Introdução; Computador Simplificado |
|
|
10 |
02 |
|
Comp. Simplif.; Primeiros programas |
|
15 |
03 |
|
Variável atribuição Expressão; |
|
17 |
04 |
|
controle do fluxo de execução; ponteiro |
|
22 |
05 |
|
Fluxo de execução; ponteiro |
|
24 |
|
recesso |
|
|
29 |
06 |
|
Arranjos; números pseudo-aleatórios |
|
31 |
07 |
|
Coleção de problemas de dados |
|
Abril |
|
|
|
|
05 |
08 |
|
String(arranjo de char) struct |
|
07 |
09 |
|
Funções |
|
12 |
10 |
|
Funcões, Ponteiros e arranjos |
|
14 |
11 |
|
Ordenação,Sel. Ins. Ponteiro/Arr Char |
|
19 |
12 |
|
Entrada e Saída, recursividade |
|
21 |
|
Tiradentes |
|
|
26 |
13 |
|
E/S fread, fwrite |
|
28 |
14 |
Escopo global, aloc dinâmica |
|
|
Maio |
|||
|
03 |
15 |
|
Prova 1 |
|
05 |
16 |
|
Classe&struct público privado |
|
10 |
17 |
|
Unidades de compilação inclusão |
|
12 |
18 |
|
Composição e herança |
|
17 |
19 |
|
Composição e herança |
|
19 |
20 |
|
Sobrecarga de operadores |
|
24 |
21 |
|
Ponteiros vs. referência |
|
26 |
|
C. Christi |
|
|
31 |
22 |
|
Sobrecarga; Composição e herança |
|
Junho |
|
|
|
|
02 |
23 |
|
Prova 2 |
|
07 |
24 |
|
Herança virtual |
|
09 |
25 |
|
“trailer”Template; Exceções |
|
14 |
26 |
|
Template |
|
16 |
27 |
|
Conteineres e iteradores - |
|
21 |
28 |
|
Listas duplamente encadeadas |
|
23 |
29 |
|
Prova 3 |
|
28 |
|
||
|
30 |
30 |
|
Revisão Fial |
|
Julho |
|
|
|
|
05 |
31 |
|
xx |
|
07 |
32 |
|
xx |
|
08 |
xx |
Encerramento |
xx |
Computador simplificado – pdf
desenho Anotações de aula 1 Anotações de aula 2
Edição, compilação, execução... desenvolvendo programas
Primeiros programas em C
Variáveis - discussão inicial de comando de atribuição e expressões
Expressões ------- Primeiros exercícios
Dígitos verificadores do CPF: regras e programas - pdf
Dígitos verificadores do CNPJ: regras
Dígito/caracteres verificadores ISBN programas
Controle do fluxo de execução:
Comando condicional e iterativos
Comando escolha (switch)
Comando enquanto-faça
comando faça-enquanto
comando para
Arranjos e ponteiros Exercícios com dados(cubos/objetos com faces marcadas).
Arranjos representando matrizes: Multiplicação de matrizes
Cadeia de caracteres (arranjos de char)
Outro programa para cálculo dos dígitos verificadores de No. de CPF
Funções Mais exercícios com dados(pequenos cubos...)
typedef, unions e quase tudo mais
Nurikabe
Entrada e saida FILE e Cia
Exemplo de prova
Mais um exemplo
Primeiros programas em C++, variáveis etc
Conceitos e definição de classe
Classes derivam classes – Hierarquias – Amizade : Funções & Classes
Classes abstratas – Funções virtuais puras
Exercicios compilados de provas passadas!
Lançando e apanhando exceção
Templates – elementos para a “programação genérica”
Estruturas Lineares – “Como” colecionar ? - encadeamento
Mais um exemplo