Universidade Federal do Ceará Fundamentos de Programação (CK087) Horários:segunda, quarta e
sexta, 10 às 12h Local:
936/Auditório
email: ufc@fredbf.com
1. EMENTA |
|
Apresentação
dos Fundamentos e das técnicas necessárias para o
desenvolvimento de soluções de problemas através de
computador. Inicialmente é abordada a metodologia para
construção de algoritmos, apoiada no uso do Teorema da
Estrutura. Dessa forma são detalhadas as estruturas básicas de
programação, a "sequência", o "desvio" e o "laço", tudo
apoiado por uma pseudo-linguagem de programação, onde são
tratados, além das estruturas já citadas, conceitos sobre
"tipos e estruturas de dados", "mecanismos para a construção
de tipos", noções de "variáveis e constantes" e utulização de
"subprogramas", tudo apoiado por uma linguagem de programação
pedagógica, sendo muito utilizada a Linguagem
Pascal. |
2. CONTEÚDO |
|
Descrição
|
Assunto
|
CH
|
|
1.1.
Resolução
de problemas (como resolver um problema; como resolver
um problema através do computador; o que
é um algoritmo) |
INTRODUÇÃO
|
8h
|
1.2.
Construção e representação de algoritmos (pseudo
linguagem; noção de eficiência de um algoritmo; o que é
heurística) |
|
2.1.
Estruturas de programação (sequência; desvio - seleção simples, seleção múltipla; laço - indexado, controlado por condição) |
ALGORITMOS
|
32h
|
2.2.
Desenvolvimento de algoritmos (exemplos de algoritmos
numéricos; exemplos de algoritmos não
numéricos) |
|
|
3.1. Ambiente
de programação (sistema operacional; compilador; interpretador; estrutura
de um programa) |
PROGRAMAÇÃO
|
80h
|
3.2. Tipos de dados (conceito;
tipos primitivos; tipos construídos; mecanismos de
construção de tipos; variáveis e constantes; instruções
para implementação de tipos de dados) 3.3. Interação
com o usuário (conceito; dispositivos para
interação com o usuário; instruções para implmentação de
interação com o usuário) 3.4. Expressões aritméticass
(atribuição; operações aritméticas associadas a cada
tipo de dado) 3.5. Estruturas de controle (sequência;
desvio de sequência; laço; instruções para a
implementação de desvio e de laço) 3.6. Uso de
arquivos (armazenamento e recuperação de dados;
dispositivos para armazenagem de dados; instruções para
a implementação do uso de arquivos de dados)
3.7. Subprogramas (conceito; implementação do uso de
subprogramas) |
|
|
3. ANDAMENTO DA DISCIPLINA |
|
|
04/08
|
Não houve
aula
(1) Motivo: indefinição de horários |
|
06/08
|
Apresentação inicial da disciplina
(1) Ler Aula1 e Aula2 do material da UFMG
(2) Fazer Lista de Exercícios 1 |
|
08/08
|
Motivação
inicial
(1) Problema do ordenamento das cartas (2)
Formalizando uma solução
(3) Escrita de um algoritmo |
|
11/08
|
Não houve
aula
(1) Motivo: feriado de dia dos estudantes |
|
13/08
|
Tipos de Representação e
Propriedades de Algoritmos
(1) Revisando aula passada: (a)
descrição do exercício; (b) melhor algoritmo da aula
passada; (c) escrito em linguagem algorítmica; (d)
escrito em pascal; (e) escrito em fluxograma;
(2) Representações: (a) linguagem
narrativa; (b) fluxograma; (c) linguagem algorítmica;
(3) Propriedades: (a) não
ambíguo; (b) número finito de passos; (c) ordem dos
passos
(4) Exercícios com as
cartas na mão: (a) ordenar as cartas seguindo o
procedimento de ir colocando a menor à esquerda; (b)
escolher a menor carta; (c) calcular a média aritmética
das cartas; (d) calcular a quantidade de cartas pares;
(e) calcular a média das cartas
ímpares; |
|
15/08
|
Não houve
aula
(1) Motivo: feriado municipal |
|
18/08
|
Exercitando o
raciocínio com fluxogramas (diagramas de
bloco)
(1) Faça um algoritmo
em que o usuário entre com com dois números, e apresente
o maior valor (Explicar o conceito de ler e escrever no
algoritmo)
(2) O usuário entra
quatro números e você apresenta o somatório
deles
(3) Leia um valor em
reais, (supondo a cotação do dólar = 1.5 reais) e
apresente seu valor convertido para
dólares
(4) Uma empresa deseja aumentar o
salário dos funcionários com mais de um ano de 'casa',
sendo um aumento de 10% para os que têm menos de 10 anos
e 25% para aqueles com mais de 10 anos; (5) Imprima
os números de 1 a 100 em ordem decrescente; (6) O
usuário deve digitar a quantidade de elementos a serem
somados, e no final apresentar a soma de valores; (7)
O usuário deve ir digitando números e quando o usuário
digitar um número negativo, o algoritmo deve parar e
apresentar a quantidade de números lidos; (8) O
usuário deve digitar 100 números, e o algoritmo deve
apresentar a quantidade de números pares
lidos; |
|
20/08
|
Exercitando o
raciocínio com fluxogramas (diagramas de
bloco)
(1) Faça um algoritmo
que peça que o usuário digite dois inteiros. Em seguida,
inverta o valor dessas duas variáveis e apresente seus
valores para o usuário. (Explicar o conceito de
variável)
(2) Faça um algoritmo
que peça ao usuário para digitar um inteiro positivo N.
Seu algoritmo deve apresentar o somatório dos números
positivos pares e inferiores a
N;
(3) Faça um algoritmo que
receba doi inteiros positivos A e B. Seu algoritmo deve
imprimir para o usuário, se A é divisível por
B;
(4) Faça um algoritmo
que receba doi inteiros positivos A e B e apresenta o
MDC desses
números. |
|
22/08
|
Exercitando o
raciocínio com fluxogramas (diagramas de
bloco)
(1) Faça um algoritmo
que peça ao usuário para digitar os inteiros
positivos H e M, que representam valores em horas e
minutos, respectivamente. Em seguida, seu algoritmo pede
para que o usuário digite uma opção de 'a' até 'c',
e de acordo com a opção digitada, ele imprime na tela:
(a) apenas H convertido para minutos; (b) quantidade
total de minutos presentes em H:M; (c) quantidade total
de segundos presentes em H:M;
(2)
Faça um algoritmo que peça ao usuário para digitar um
inteiro positivo N e que diga se N é primo ou
não.
(3) Faça um algoritmo que leia
o peso P e a idade I de 20 pessoas. Seu algoritmo deve
apresentar a média de peso para as seguintes faixas
etárias: (a) até 15 anos; (b) de 16 a 30 anos e (c) de
31 anos em
diante;
(4) Faça um
algoritmo que leia dois valores positivos A e B e que
escreva A elevado a B, usando apenas os operadores
aritméticos: +, -, *, / e
MOD |
|
25/08
|
Aula
NORMAL (1) O
treinamento foi adiado para o final de Setembro (data
ainda não definida) (2) (3)
(4) |
|
27/08
|
Aula
NORMAL (1) O
treinamento foi adiado para o final de Setembro (data
ainda não definida) (2) (3) (4)
|
|
29/08
|
Aqui
(1)
(2)
(3)
(4) |
|
01/09
|
Aqui
(1)
(2)
(3)
(4) |
|
MT_1.1 03/09
|
Aqui (1) (2) (3)
(4) |
|
05/09
|
Aqui
(1)
(2)
(3)
(4) |
|
08/09
|
Aqui
(1)
(2)
(3)
(4) |
|
MT_1.2 10/09
|
Aqui
(1)
(2)
(3)
(4) |
12/09
|
Aqui
(1)
(2)
(3)
(4) |
|
15/09
|
Aula
NORMAL (1) O
treinamento foi adiado para Outubro (data ainda não
definida) (2) (3) (4) |
|
MT_1.3 17/09
|
Aqui
(1)
(2)
(3)
(4) |
Prova_Av1 19/09
|
Avaliação 1
(1)
(2)
(3)
(4) |
|
22/09
|
Aqui
(1)
(2)
(3)
(4) |
|
24/09
|
Aqui
(1)
(2)
(3)
(4) |
|
26/09
|
Aqui
(1)
(2)
(3)
(4) |
|
29/09
|
Aqui
(1)
(2)
(3)
(4) |
|
MT_2.1 01/10
|
Aqui
(1)
(2)
(3)
(4) |
|
03/10
|
Aqui
(1)
(2)
(3)
(4) |
|
06/10
|
Aqui
(1)
(2)
(3)
(4) |
|
MT_2.2 08/10
|
Aqui
(1)
(2)
(3)
(4) |
|
10/10
|
Aqui
(1)
(2)
(3)
(4) |
|
13/10
|
Aqui
(1)
(2)
(3)
(4) |
|
MT_2.3 15/10
|
Aqui
(1)
(2)
(3)
(4) |
|
17/10
|
Aqui
(1)
(2)
(3)
(4) |
|
20/10
|
Aqui
(1)
(2)
(3)
(4) |
22/10
|
Aqui
(1)
(2)
(3)
(4) |
|
Prova_Av2 24/10
|
Avaliação 2
(1)
(2)
(3)
(4) |
|
27/10
|
Aqui
(1)
(2)
(3)
(4) |
|
29/10
|
Aqui
(1)
(2)
(3)
(4) |
|
31/10
|
Aqui
(1)
(2)
(3)
(4) |
|
03/11
|
Aqui
(1)
(2)
(3)
(4) |
|
MT_3.1 05/11
|
Aqui
(1)
(2)
(3)
(4) |
|
07/11
|
Aqui
(1)
(2)
(3)
(4) |
|
10/11
|
Aqui
(1)
(2)
(3)
(4) |
|
MT_3.2 12/11
|
Aqui
(1)
(2)
(3)
(4) |
|
14/11
|
Aqui
(1)
(2)
(3)
(4) |
|
17/11
|
Aqui
(1)
(2)
(3)
(4) |
|
MT_3.3 19/11
|
Aqui
(1)
(2)
(3)
(4) |
|
21/11
|
Aqui
(1)
(2)
(3)
(4) |
|
24/11
|
Aqui
(1)
(2)
(3)
(4) |
|
MT_3.4 26/11
|
Aqui
(1)
(2)
(3)
(4) |
|
28/11
|
Aqui
(1)
(2)
(3)
(4) |
|
01/12
|
Aqui
(1)
(2)
(3)
(4) |
|
Prova_Av3 03/12
|
Avaliação 3
(1)
(2)
(3)
(4) |
|
Rep 05/12
|
Reposição 1 ou 2 ou 3
(1)
(2)
(3)
(4) |
|
08/12
|
Aqui
(1)
(2)
(3)
(4) |
|
Final 10/12
|
Avaliação Final
(1)
(2)
(3)
(4) |
|
12/12
|
Publicação Final das Notas
(1)
(2)
(3)
(4) |
|
|
4. BIBLIOGRAFIA |
|
- Livros:
- Fundamentos da Programação de
Computadores: Algoritmos, Pascal e C/C++. Ana F. G.
Ascencio e Edilene A. V. de Campos. Editora Pearson.
(Livro-texto)
- Pascal e técnicas de programação.
Eber A. Schmitz e Antônio A. de S. Teles. Editora LTC.
- Turbo Pascal 7.0: Comandos e Funções.
Roberto Rinaldi. Editora Érica.
- UNICAMP, prof. Paulo Sérgio de Moraes:
- UFPE,
profa. Anjolina Grisi de Oliveira:
- Algumas notas sobre
Pascal - Parte I: revpasc1
- Algumas notas sobre
Pascal - Parte II: Procedimentos e Funções: revpasc2
- UERJ, prof. Alexandre
Rojas:
- FACE, prof. Ricardo
Tolentino:
- UNIVERSIDADE TIRADENTES, prof.
José Maria Júnior
- Outros materiais
interessantes:
- Prof. Renato da
Costa:
- Prof. Virgílio
Vilela:
- 300 idéias para
programar computadores: 300
ideias
- Prof. Thelmo
J. M. Mesquita:
- Curso Técnico da
Prefeitura da Monte Alto (SP):
|
8. AVALIAÇÕES |
|
- Cada avaliação é
composta por uma nota da prova escrita (9.0) +
somatório dos mini-testes (cada um vale 0.5):
- Av1 = MT_1.1 + MT_1.2
+ MT_1.3 + Prova_Av1
- Av2 = MT_2.1 + MT_2.2
+ MT_2.3 + Prova_Av2
- Av3 = MT_3.1 + MT_3.2
+ MT_3.3 + MT_3.4 + Prova_Av2
- Av1, Av2 e Av3 podem
computar no máximo 10 pontos, sendo desprezados os
pontos excedentes ;
- Os mini-testes são
obrigatórios e não possuem reposição :
- Entretanto, o aluno
poderá faltar um mini-teste em Av1 e Av2, e dois
em Av3, que sua nota não será prejudicada;
- Reposição:
- O aluno só tem
direito a fazer apenas uma reposição
das três provas;
- A reposição ocorre no
final do semestre;
|
AVALIAÇÃO 1 |
NOME |
MT_1.1 |
MT_1.2 |
MT_1.3 |
Prova_Av1 |
Rep_Av1 |
Av1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AVALIAÇÃO 2 |
NOME |
MT_2.1 |
MT_2.2 |
MT_2.3 |
Prova_Av2 |
Rep_Av2 |
Av2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AVALIAÇÃO 3 |
NOME |
MT_3.1 |
MT_3.2 |
MT_3.3 |
MT_3.4 |
Prova_Av3 |
Rep_Av3 |
Av3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|