UFMG - ICEx - DCC

DCC003 --Algoritmos e Estruturas de Dados I -- AEDsI
2o. Semestre de 2018 – Turma TA2

----

Aulas: Terças e quintas, sala 2013 07:30-09:10

Frequência
Notas

Notas  Finais

----

Monitoria: todas as sextas-feiras sala/lab 1010 de 09:30 as 10:30 washington ponto ramos [em] dcc [ponto] ufmg [ponto] br

----

Tem alguns “wikis” que podem ser interessantes:

ex. http://en.wikibooks.org/wiki/C_Programming/Standard_libraries
Mas existem muitos problemas conceituais em muitas páginas

----

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, simulações simples com dados.

----

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 e linguagem C. 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. Só serão levados em conta eventos que a UFMG considera nas normas.

----

Material Extra:

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

----

Calendário
 

Data

Aula

Evento

Assunto

Ago

 

 

 

07

 

Recep.

Não haverá aula – Recepção dos calouros

09

01

 

Introdução – Computador Simplificado; Code::Blocks, Dev-C++

14

02

 

Computador Simplificado – Primeiros programas, fluxo de execução

16

03

 

Computador Simplificado, Primeiros programas, variáveis

21

04

 

Computador Simplificado, Primeiros programas, variáveis

23

05

 

Computador Simplificado, Primeiros programas, variáveis

28

06

 

O tipo endereço; operadores *&; Iteração: comando para (“for”)

30

07

 

Iteração: comando enquanto (“while”); “do while()”; switch

Set

 

 

 

04

08

 

Operador condicional ?: switch, números pseudo-aleatórios rand() 

06

09

 

Arranjos: indexação; estruturas: seleção 

11

10

 

Arranjos: indexação; estruturas: seleção

13

11

 

String===arranjo de char; strlen, strcpy TP0; arranjismo&ponteirismo

18

12

 

Registro de Ativação->Funções

20

13

 

Registro de Ativação->Funções, “static”, var. globais, malloc() 

25

14

 

Não existe parâmetro do tipo arranjo; Função recursiva;

27

15

 

 Prova 1

Out

 

 

 

02

16

 

 Revisão

04

17

 

Entrada e saída: texto

09

18

 

Entrada e saída: binário

11

19

 

Revisitando Recursividade

16

20

S. Conh

Recursividade hanoi(); Entrada e saída texto & binário

18

21

S. Conh

Hanoi(); variáveis globais; modificador “static”

23

22

 

 Prova 2

25

23

 

Revisão

30

24

 

Revisão, linha de comando

Nov

 

 

01

25

 

Struct e class using; namespace, linha de comando

06

26

 

Enumerações, union, préprocessador,

08

27

 

Enumerações, union, préprocessador

13

28

 

Prova 3 

15

 

Pr. Rep

 

20

29

 

Revisão

22

30

 

Revisão final

27

 

 

 

29

 

 

 

Dez

 

 

 

04

 

 

 

06

 

 

 

11

 

 

 

13

 

 

 

 

 

Enc.

15-dez encerramento semestre

 

 

---Material Linguagem C (BNF)
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

Entrada e saida FILE e Cia mapa de entrada&saida básica

Exemplo de prova

Mais um exemplo de prova

 

--------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