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

Frequência


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

printf & scanf

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

Ordenação de arranjos

Cadeia de caracteres (arranjos de char)

Outro programa para cálculo dos dígitos verificadores de No. de CPF

Estruturas

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

Referências

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

Exemplo de prova

Mais um exemplo