CEA030 — Programação de Computadores I

Prof. José Romildo Malaquias
Sala COM-05
Instituto de Ciências Exatas e Biológicas
Universidade Federal de Ouro Preto
romildo@iceb.ufop.br

2011/1

Sumário

1 Dados gerais
2 Objetivos
3 Ementa
4 Programa analítico das aulas de preleção
5 Metodologia de Ensino
6 Atividades Discentes
7 Bibliografia
8 Apostilas
 8.1 Apostilas de Portugol
 8.2 Apostilas de C/C++
9 Avaliações
10 Grupo de discussão
11 Recursos utilizados
12 Anotações de aulas
13 Listas de exercícios
14 Roteiros de aulas práticas
15 Notas e frequências
16 Novidades

1 Dados gerais

Departamento: Ciências Exatas e Aplicadas
Unidade: Instituto de Ciências Exatas e Aplicadas
Número de créditos: 4
Carga horária semanal: 2 teóricas + 2 práticas = 4 total
Duração em semanas: 18
Carga horária semestral: 72 horas-aula
Pré-requisitos:
:

2 Objetivos

Desenvolver a capacidade de construir programas de pequeno e médio porte com a utilização de conceitos de programação estruturada.

3 Ementa

1.
Conceito de algoritmo e estratégias básicas de solução de problemas por meio de algoritmos.
2.
Conceitos básicos de linguagens de programação de alto nível:
2.1.
variáveis,
2.2.
tipos primitivos,
2.3.
atribuição,
2.4.
operadores,
2.5.
expressões,
2.6.
fluxo de execução de programas,
2.7.
procedimentos e funções,
2.8.
vetores,
2.9.
ponteiros,
2.10.
entrada e saída de dados.
3.
Alocação de mémória:
3.1.
estática,
3.2.
de pilha,
3.3.
dinâmica.
4.
Tipos de dados estruturados.
5.
Implementação de programas de pequeno porte.

4 Programa analítico das aulas de preleção








Unidades e assuntos

número
de
aulas

número
de
aulas
acumulado

referências
bibliográficas








1.
Visão geral do curso

01

01








2.
Estrutura básica de um computador

01

02








3.
Algoritmos

3.1
Importância das técnicas de programação

3.2
Conceitos de lógica de programação e algoritmos

3.3
Definição de algoritmo

3.4
Principais formas de representação de algoritmos:

3.4.1 descrição narrativa

3.4.2 fluxograma

3.4.3 pseudo-código

02

04








4.
Linguagens de programação

4.1
Conceitos de programa e linguagens de programação

4.2
Regras de sintaxe

4.3
Programa compilador

4.4
Erros de sintaxe e erros de lógica

4.5
Bibliotecas

4.6
Programa-fonte, programa-objeto e programa executável

4.7
Diretiva de inclusão

01

05








5.
Tipos e variáveis

5.1
Conceitos de variáveis e constantes

5.2
Tipos de dados pré-definidos

5.3
Inicialização de variáveis

5.4
Operadores e expressões

5.5
Conversão de tipos

02

07








6.
Entrada e saída de dados

6.1
Funções de entrada e saída:

6.1.1 scanf()

6.1.2 printf()

6.1.3 gets()

6.1.4 getche()

6.1.5 puts()

02

09








7.
Comandos de controle de fluxo

7.1
Comandos de seleção:

7.1.1 if

7.1.2 if else

7.1.3 switch

7.2
Comandos de repetição:

7.2.1 while

7.2.2 do while

7.2.3 for

7.3
Comandosbreak e continue

7.4
Aninhamento de blocos em programas

11

20








8.
Funções

8.1
Definição de funções e protótipos

8.2
Regras de escopo

8.3
Variáveis locais e globais

8.4
Funções com retorno de valor

8.5
Passagem de parâmetros por valor e referência

8.6
Variáveis static

8.7
Argumentos da linha de comando

8.8
Funções recursivas

10

30








9.
Diretivas de preprocessamento: macros e compilação condicional

02

32








10.
Vetores

10.1
Declaração e inicialização

10.2
Matrizes

10.3
Passagem de vetores como parâmetros para funções

04

36








11.
Strings

11.1
Representação

11.2
Manipulação

11.3
Funções para manipulação de strings

04

40








12.
Ponteiros

12.1
Declaração

12.2
Utilização

12.3
Inicialização

12.4
Operações

12.5
Ponteiros para ponteiros

12.6
Ponteiros para funções

12.7
Relação entre ponteiros e vetores

08

48








13.
Alocação dinâmica de memória

13.1
Funções: malloc(), calloc(), realloc(), e free()

13.2
Alocação dinâmica de vetores e matrizes

06

54








14.
Algoritmos simples de pesquisa e ordenação

08

62








15.
Tipos de dados definidos pelo programador: estruturas

06

68








Avaliações

04

72








5 Metodologia de Ensino

6 Atividades Discentes

7 Bibliografia

[1]

E. A. V. ASCENCIO A. F. G. CAMPOS. Fundamentos da Programação de Computadores.

[2]

C Completo e Total. 3 ed. São Paulo: Pearson, 1997.

[3]

Construção de Algoritmos. São Paulo: SENAC, 2002.

[4]

Dominando a Linguagem C. Rio de Janeiro: Ciência Moderna, 2004.

[5]

Estruturas de dados usando C. São Paulo: Makron Books, 1995.

[6]

N. A. C. GUIMARÃES A. M. LAGES. Algoritmos e Estruturas de dados. Rio de Janeiro: Livros Técnicos e Científicos Editora S.A., 1985.

[7]

Paul Deitel Harvey Deitel. C++ Como Programar. quinta edição. ISBN-10: 978-85-7605-056-8. Pearson, 2006.

[8]

Introdução à Programação: 500 algoritmos resolvidos. Rio de Janeiro: Campus, 2002.

[9]

Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados. 2 ed. São Paulo: Pearson, 2000.

[10]

V.V. MIZRAHI. Treinamento em Linguagem C++ – Módulos 1 e 2. Makron Books, 1995.

[11]

Harry FARRER outros. Algoritmos Estruturados. terceira edição. Rio de janeiro: Livros Técnicos e Científicos Editora S.A., 1999.

8 Apostilas

8.1 Apostilas de Portugol



Título

Autor


Prof. Marcelo Rudek


Profa. Olinda Nogueira Paes Cardoso


8.2 Apostilas de C/C++



Título

Autor


Curso de Programação em C

Prof. Renato Cardoso Mesquita - DEE/UFMG


Aspectos Formais da Computação – Linguagem C

Prof. Camillo - PUCPR


Introdução à Linguagem C

GACLI - UNICAMP


Programação em C – Um Curso Básico e Abrangente

Prof. Menotti – DCC/UFMG


Linguagem de Programação C

Profa Isabel Harb Manssour


9 Avaliações





avaliação peso data assuntos




Prova 1 3




Prova 2 3




Aulas práticas e listas de exercícios 4




Exame especial 10 De acordo com a resolução CEPE xxxxx




10 Grupo de discussão

Existe um grupo de discussão sobre o conteúdo do curso no Google Groups que deverá ser utilizado ativamente pelos alunos, professor e monitores durante o curso.

O professor e os monitores poderão propor questões para discussão no grupo, bem como problemas para serem resolvidos.

Caberá aos alunos discutir as questões e problemas propostos, apontando soluções básicas e/ou soluções alternativas ou comentando o assunto. Os alunos poderão também propor algum problema ou levantar alguma questão para discussão que julgarem interessante.

O endereço do grupo de discussão é http://groups.google.com/group/cea030.

Cada aluno deverá se inscrever imediatamente no grupo e começar a participar das discussões.

11 Recursos utilizados

12 Anotações de aulas




Assunto

Arquivo Data



01. Introdução

01-introducao.pdf 28/04/2011



02. Algoritmos

02-algoritmos.pdf 05/05/2011



03. Portugol

03-portugol.pdf 05/05/2011



04. Processo de programação

04-processo-de-programacao.pdf 05/05/2011



05. Tipos, variáveis e expressões

05-tipos-variaveis-expressoes.pdf 06/05/2011



06. Entrada e saída de dados

06-entrada-saida.pdf 12/05/2011



07. Estruturas de seleção

07-estruturas-condicionais.pdf 19/05/2011



08. Estruturas de repetição

08-estruturas-de-repeticao.pdf 02/06/2011



09. Vetores

09-vetores.pdf 09/06/2011



13 Listas de exercícios




Assunto

Lista Data



01. Valores, tpos, expressões, entrada e saída

cea030.lista.01.pdf 19/05/2011



02. Estruturas de seleção

cea030.lista.02.pdf 19/05/2011



03. Estruturas de repetição

cea030.lista.03.pdf 02/06/2011



04. Vetores

cea030.lista.04.pdf 09/06/2011



14 Roteiros de aulas práticas




Assunto

Prática Data



Funções

Jogo da velha



15 Notas e frequências

Resultados de avaliações e frequências

16 Novidades

2011 Junho 09

2011 Junho 02

2011 Maio 19

2011 Maio 11

2011 Abril 28