DC-UFRPE/Bacharelado em Ciência da Computação/Introdução a Programação II

Programa da Disciplina

editar
Nome: Introdução à Programação II
Código: 14118
Departamento: Departamento de Computação (DC)
Área: Computação
Carga-horária total: 60 horas
Créditos: 4
Pré-requisitos: Introdução à Programação I

Ementa

editar
  • Paradigma orientado a objetos.
  • Conceitos de programação orientada a objeto: abstração, generalização, modularização e encapsulamento. Sintaxe básica JAVA.
  • Orientação a objetos com JAVA: classes e objetos, tipos abstratos de dados, objetos e mensagens, herança, polimorfismo.
  • Arquitetura em N-camadas instanciação de padrão estilo MVC na prática.
  • Boas práticas de programação orientada a objetos e padrão de codificação.
  • Projeto de desenvolvimento.

Objetivos

editar

Aprender a, usando conceitos e recursos do mundo computacional, abstrair problemas do mundo real e conseguir "traduzir eles" para que possamos resolver pensando de forma computacional, através do paradigma orientado a objeto.

Conteúdo

editar

1. Conceitos básicos de programação

1.1. O que fazer antes de começar a programar

2. Conceitos básicos de orientação a objetos

2.1. Abstração

2.2. Generalização

2.3. Modularização

2.4. Encapsulamento (information hiding)

3. Programação Orientada a Objetos

3.1. Conceito

3.2. Fundamentos de programação orientada a objetos

3.3. Classes (tipos abstratos de dados) e Instâncias (objetos)

3.4. Escopo de classes, construtores e métodos.

3.5. Métodos e mensagens (construtores e destrutores)

3.6. Passagem de parâmetros

3.7. Composição e herança

3.8. Superclasse e subclasse

3.9. Interfaces

3.10. Classes abstratas

3.11. Sobrescrita (Overriding) e sobrecarga (Overloading)

3.12. Polimorfismo (casts e conversão de tipos)

4. Linguagem de Programação Java

4.1. Tipos primitivos de dados

4.2. Operadores

4.3. Estruturas de controle de fluxo e desvio condicional

4.4. Expressões

4.5. Coletor de lixo (Garbage Collection)

4.6. Recursão

4.7. Exceções

4.8. Genéricos

5. Estruturação de sistemas em camadas

5.1. Arquitetura em N-camadas

5.2. Exemplo com arquitetura de 3 camadas (GUI, negócio e dados)

5.3. Introdução ao padrão MVC

6. Coleções

6.1. Arrays / Collections

6.2. Set

6.3. Map

6.4. List

6.5. Enum

7. Interface Gráfica com o usuário (GUI)

7.1. Java Swing / JavaFX

7.2. Componentes gráficos e tratamento de eventos

8. Depuração e documentação de programas

8.1. Depuração modular

8.2. Testes unitários

8.3. Introdução à documentação de requisitos, de classes e de código

9. Projeto de desenvolvimento

9.1. Todos os conceitos abordados na disciplina serão avaliados através da execução prática de

projeto de desenvolvimento, com entregas parciais durante o semestre e definidas em plano de

ensino.

10. Playlist sugerida para estudo.

Bibliografia Básica

editar

1. Deitel, Harvey M. et. al. Java como Programar, 8ª. edição. Prentice Hall - Br, 2010.

2. Cornell, Gary; Horstmann, Cay S. Core Java, Volume I - Fundamentos. 8ª Edição. Pearson Education

Br, 2010.

3. Schildt, Herbert. Java - A Referência Completa. Alta Books, Tradução da 8ª edição, 2014.

Bibliografia Complementar

editar

4. Schildt, Herbert. Java Para Iniciantes - Crie, Compile e Execute Programas Java Rapidamente, 6ª.

edição. Bookman, 2015.

5. Andrea Stein, Lynn. Interactive Programming in Java. Disponível gratuitamente em:

http://www.cs101.org/ipij/).

6. Eckel, Bruce. Thinking in Java. 4ª. edição, 2006. (3ª. edição disponível gratuitamente em

http://www.mindview.net/Books/TIJ/)

7. Sierra, Kathy. Use a Cabeça Java. Alta Books, 2005.

8. Meyer, Bertrand. Object-Oriented Software Construction. Segunda Edição. Prentice Hall, 2000.

(Capítulos 1, 2, 3 e 4).