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
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
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
Entrada e saida FILE e Cia mapa de entrada&saida básica
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/
)
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