Danilo S. Carvalho, Ph.D. Research Associate - Artificial Intelligence / NLP

Computação II (DCC - UFRJ)

Curso de Computação II do Departamento de Ciência da Computação - UFRJ

Informações:

  • Professor: Danilo Carvalho (danilosc .at. dcc.ufrj.br )
  • Local: Google Meet, Google Classroom.
  • Horário: 2ª e 4ª-feira de 15h - 16h, 6ª-feira de 15h - 17h (“laboratório”).
  • Início: 24 de agosto de 2020.

  • Avaliação:

    A avaliação do curso é feita através de listas de exercícios e um projeto final de disciplina. As listas de exercícios consistem de problemas de programação que devem ser resolvidos e entregues em um certo tempo, e de um questionário discursivo à respeito das soluções elaboradas, que deve ser respondido e entregue juntamente com as soluções dos problemas. As listas serão passadas em princípio nas aulas de “laboratório” de número par (2ª, 4ª, …).

    O projeto final consiste em um problema mais elaborado, a ser resolvido em grupos, e um questionário sobre as soluções elaboradas, a ser respondido individualmente. O tema do projeto será apresentado à turma no último laboratório regular, sendo o tempo restante do curso parcialmente dedicado ao desenvolvimento do projeto.

    As notas são:

    • L[1-4]: Notas das listas de exercícios. Serão 4 listas.
    • Q[1-4]: Notas dos questionários das respectivas listas.
    • PFS: Nota do projeto final (grupo).
    • PFQ: Nota do questionário do projeto final (individual).

    O cálculo das notas é feito da seguinte maneira:

    \[NotaLista[i] = min(L[i] * \frac{Q[i]}{7}, 10.0)\] \[TotalListas = \frac{\sum_{i=1}^4{NotaLista[i]}}{4}\] \[NotaProjeto = min(PFS * \frac{PFQ}{7}, 10.0)\] \[NotaFinal = 0.4 * TotalListas + 0.6 * NotaProjeto\]

    Se \(NotaFinal >= 5.0\), o aluno estará aprovado com NotaFinal. Se \(NotaFinal < 5.0\), o aluno estará reprovado.

  • Material de apoio
  • Bibliografia:


Objetivo:

  • Habilitar o aluno à aplicação de conceitos de Programação Orientada a Objetos, para produção de código compreensível e escalável.
  • Capacitar o aluno ao desenvolvimento de programas usando a linguagem Java, usando das boas práticas apropriadas à linguagem.
  • Estimular a competência na leitura da documentação da linguagem, bem como a criação da documentação própria para os programas.


Ementa:

1ª aula

  • Introdução ao curso.
  • Apresentação à linguagem Java. [audioslides] (Apostila: 2.1 - 2.9)

2ª aula

  • Estrutura básica da linguagem. [audioslides] (Apostila: 2.10 - 2.17)
  • Observações sobre a sintaxe, boas práticas. [audioslides] (Apostila: 3.1 - 3.14)
  • Pacotes. [audioslides] (Apostila: 7.1 - 7.6)

3ª aula [1º laboratório]

  • Pacotes. [audioslides] (Apostila: 7.1 - 7.6)
  • E/S básica no terminal e uso da classe System. [audioslides]
  • Erros de compilação e execução; Exceções. [audioslides] (Apostila: 12.1 - 12.3)

4ª aula

  • Erros de compilação e execução; Exceções (cont.). [audioslides] (Apostila: 12.1 - 12.3)
  • Introdução ao Javadoc. [resumo] (Apostila: 8.3 - 8.4)
  • Introdução ao Git / GitHub. [audioslides]

5ª aula

6ª aula [2º laboratório]

7ª aula

  • Encapsulamento:
    • Visibilidade: public, private. [audioslides] (Apostila: 5.1)

8ª aula [3º laboratório]

  • Uso de condicionais vs tratamento de exceções.
  • Uso da IDE Eclipse. (Apostila: capítulo 6)
  • Exercício de uso do Git.

9ª aula

  • Encapsulamento:
    • Getters e setters; Validação de parâmetros e triggers. [audioslides] (Apostila: 5.2 - 5.5)
    • Métodos e atributos de classe (static). [audioslides] (Apostila: 5.6 - 5.7)

10ª aula

  • Herança. [audioslides] (Apostila: 9.1)
  • Sobrescrita (override) de métodos. [audioslides] (Apostila: 9.2 - 9.3)

11ª aula [4º laboratório]

12ª aula

13ª aula

14ª aula [5º laboratório]

15ª aula

16ª aula

17ª aula [6º laboratório]

18ª aula

19ª aula

20ª aula [7º laboratório]

21ª aula

22ª aula [8º laboratório]

23ª aula

24ª aula

25ª aula [9º laboratório]

26ª aula

27ª aula

28ª aula [10º laboratório]

29ª aula

30ª aula

31ª aula

  • Revisão de conteúdos e dúvidas.