UFMG - ICEx - DCC

DCC003 --Algoritmos e Estruturas de Dados I -- AEDsI
1o. Semestre de 2017 – Turma TB2

----

Aulas: Terças e quintas, sala 2013, 09:25-11:05

Frequência

Notas  Finais

----

Monitoria: todas as segundas-feiras sala/lab 1010 de 11:00 as 12:00 jessicasena [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 as linguagens 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, operações sobre sequências de diferentes tipos, ordenação de valores, verificação de 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! Escolhem-se as duas melhores notas.)
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 livros de introdução à programação nos diferentes tipos de bibliotecas.

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.

----

Material Extra:

Dicas sobre o uso polido e educado de correio eletrônico

----

Calendário
 

Data

Aula

Evento

Assunto

Março

 

 

 

14

01

 

 Introdução – Computador Simplificado

16

02

 

 Comp. Simplificado Variável Atribuição Expressão

21

03

 

 Variável Atribuição Expressão op.lógicos op sobre bits, ponteiros

23

04

 

 Controle do fluxo de execução if while for

28

05

 

 Controle do fluxo: desenhando triângulos

30

06

 

 Arranjos

Abril

 

 

 

04

07

 

 Funcão – Registro de Ativação; Simulação de lanç. de dados

06

08

 

 Arranjo, Ponteiro, Estrutura, Enumeração, indexar/selecionar

11

09

 

 Arranjos e Ponteiros

13

 

Recesso

 

18

10

 

String, arranjos de caracteres, ponteiros, struct, enum

20

11

 

Ordenação, Inserção, Seleção

25

12

 

 Funções recursivas

27

13

 

 Entrada e saída

Maio

 

 

 

02

14

 

 Entrada e saída; texto Dados binários

04

15

 

 Prova 1

09

16

 

 C++; espaço de nomes cout/cin classe Revisão Prova 1

11

17

 

 C++; struct vs class public/private C static const

16

18

 

 Composição herança construtores destruidores

18

19

 

 Referência Composição herança

23

20

 

 Referência Composição Herança

25

21

 

 Operador “new” Operator overloading – software livre

30

22

 

 Templates

Junho

 

 

 

01

23

 

 Prova 2

06

24

 

 Revisão

08

25

 

Coleções e iteradores, vector e list

13

26

 

Encadeamento simples e encadeamento duplo

15

 

C Christi

 

20

27

 

Operações em estruturas encadeadas

22

28

 

revisão Entrada e saída

27

29

 

Prova 3

29

30

 

Revisão da Prova 3

Julho

 

 

 

04

 

 

 

06

 

 

 

11

 

 

 

13

 

 

 

14

XX

Encerramento

 

 

 

---Material Linguagem C
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
A collection of Dice Problems – primeiras respostas

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

 

--------Material C++

Primeiros programas em C++, variáveis etc

Conceitos e definição de classe

Classes derivam classes – Hierarquias – Amizade : Funções & Classes
( tutoriais - http://www.cplusplus.com/doc/tutorial/inheritance/  )

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