Departamento de Informática e Estatística

Planos de Ensino
Visitante (Entrar)

Plano de Ensino

Aprovado pelo Departamento em: 7-5-2025

  1. Identificação: Visualizar em PDF
    • Disciplina: INE5402 - Programação Orientada a Objetos I
    • Turma(s): 01208C
    • Carga horária: 108 horas-aula      Teóricas: 30      Práticas: 78
    • Período: 1º semestre de 2025
  2. Curso(s):
    • Ciências da Computação (208)
  3. Requisito(s):
    • Não há
  4. Professor(es):
    • Antonio Carlos Mariani (antonio.c.mariani@ufsc.br)
  5. Ementa:
    • Algoritmo. Programação de computador. Resolução de problemas usando computador. Linguagem de Programação. Elementos de programação imperativa: variáveis simples, coleções uni e n dimensionais; tipos das variáveis; comandos; procedimentos e funções. Conceitos fundamentais do paradigma de Programação Orientada a Objetos: objeto, atributo, método, classe. Prática de programação usando alguma linguagem de programação orientada a objetos.
  6. Objetivo(s):
    • Geral: Apresentar as noções básicas de programação de computadores capacitando os alunos a analisar problemas de complexidade básica e projetar/desenvolver soluções de software sob a perspectiva de orientação a objetos.
    • Apresentar as noções básicas de programação de computadores capacitando os alunos a analisar problemas de complexidade básica e projetar/desenvolver soluções de software sob a perspectiva de orientação a objetos.
    • Específicos:
      1. Apresentar os conceitos fundamentais da programação orientada a objetos.
      2. Capacitar o aluno a analisar problemas de complexidade básica, abstraindo, modelando e implementando soluções sob o enfoque de programação orientada a objetos.
      3. Desenvolver fluência em uma linguagem de programação orientada a objetos.
  7. Conteúdo Programático:
    • CONTEXTUALIZAÇÃO [8 horas-aula]
      • Modelo conceitual
      • Processos de abstração e representação
      • Histórico sobre linguagens de programação
    • CONCEITOS BÁSICOS DA ORIENTAÇÃO A OBJETOS [10 horas-aula]
      • Classes e objetos
      • Atributos
      • Métodos, argumentos e parâmetros
    • CONCEITOS BÁSICOS DE PROGRAMAÇÃO IMPERATIVA [46 horas-aula]
      • Algoritmos e programas
      • Processo de edição, compilação e execução
      • Variáveis e Tipos de dados
      • Comando de atribuição
      • Operadores aritméticos e lógicos
      • Estruturas de controle
        • Estrutura de seqüenciação
        • Estruturas de decisão (simples e compostas)
        • Estruturas de repetição (condicionais e contadas)
    • COLEÇÕES [36 horas-aula]
      • Cadeias de caracteres (String)
      • Coleções unidimensionais (Array, Lista, Tupla)
      • Coleções bidimensionais (Matriz)
      • Coleções indexadas (Dicionário)
    • MODELO DE OBJETOS [08 horas-aula]
      • Comunicação por troca de mensagens
      • Encapsulamento e ocultamento de informações
      • Hierarquia de agregação/decomposição
      • Hierarquia de especialização/generalização
      • Herança e Polimorfismo
  8. Metodologia:

    O conteúdo da disciplina é dividido numa sequência de módulos disponíveis no ambiente Moodle, sendo que há exercícios práticos a serem desenvolvidos pelos estudantes, totalizando em torno de 130 exercícios. Os módulos são:

    • Tartaruga (turtle)
    • Estrutura de Sequenciação
    • Estrutura de Seleção
    • Estruturas de Repetição (iteração)
    • Cadeia de caracteres (String)
    • Tuplas, listas, conjuntos e dicionários
    • Coleções Bidimensionais (matrizes)
    • Orientação a Objetos

    Os aspectos teóricos da disciplina serão abordados ao longo do semestre em aulas expositivas, sempre precedidas de leitura de material correspondente disponibilizado nos ambientes Moodle e/ou Jupyter Notebooks, este último referenciado no Moodle.

    A prática de programação será desenvolvida utilizando a linguagem de programação Python por meio de implementação computacional de soluções para problemas propostos, os quais estarão referenciados no Moodle em cada um dos módulos através de atividades do tipo VPL (Laboratório Virtual de Programação). Na resolução dos problemas o estudante pode escolher o ambiente de programação Python que lhe seja mais apropriado, com preferência para o ambiente Thonny (o qual é particularmente indicado para iniciantes em programação de computadores) ou na própria atividade VPL do Moodle. Os trabalhos práticos poderão ser desenvolvidos individualmente ou em grupo, mas a postagem no Moodle, de caráter opcional, é individual, devendo ser feita via atividades VPL do Moodle.

    A resolução de atividades práticas, assim como orientações e discussões, ocorrerão ao longo do semestre através de encontros presenciais. Nestes encontros serão também parcial ou totalmente resolvidos problemas dentre aqueles que compõe as atividades práticas da disciplina, em particular aqueles indicados por estudante.


    Controle de frequência

    O registro de frequência será feito via módulo de registro de frequência do Moodle, propiciando gerenciamento e controle pelos estudantes diretamente no ambiente Moodle.

  9. Avaliação:

    Satisfeito o critério de 75% de frequência, a avaliação progressiva da disciplina será feita por meio de três provas presenciais. Considerando que os conteúdos dos módulos acima descritos são progressivamente um pré-requisito do outro, a primeira (P1) contemplará os módulos de 2 a 4, a segunda (P2) os módulos de 2 a 6 e a terceira (P3) incluirá todos os módulos.

    As provas são individuais, consistindo da resolução de uma lista de problemas propostos, nos mesmos moldes dos exercícios práticos.

    A média final da disciplina (MF) é dada por: MF = (P1 x 2 + P2 x 3 + P3 x 4) / 9

    Dado que a disciplina apresenta pelo menos 50% da carga horária consistindo de aulas práticas, conforme deliberação do Colegiado do Curso de Ciências da Computação de 18 de março de 2008, ela não prevê a realização de avaliação no final do semestre (recuperação) de que trata o parágrafo 2º do artigo 70 da Resolução 17/CUn/97.

  10. Cronograma:

    Há uma previsão de entorno de 1,5 a 2 semanas para cada um dos módulos descritos anteriormente, com desenvolvimento contínuo das atividades práticas. As provas ocorrerão com o espaçamento mínimo de uma semana após o término do último módulo englobado.

  11. Bibliografia Básica:
    • SEVERANCE, Charles R. Python para Todos. Publicação Independente, 2020. Disponível em http://do1.dr-chuck.com/pythonlearn
    • WAZLAWICK, Raul S. Introdução a Algoritmos e Programação com Python. São Paulo: Elsevier, 2017.
    • OLIVEIRA, Jayr F. e MANZANO, José Augusto N. G. Algoritmos. Érica, 2016.
    • SOUZA, Marco F. de Souza; et al. Algoritmos e Lógica de Programação. São Paulo: Thomson Learning, 2005.
  12. Bibliografia Complementar:
    • BOOCH, G., Object-Oriented Design. Benjamin/Cumminggs Pub. 1998.
    • MEYER, Bertrand. Object-oriented software construction. 2nd. ed. Upper Saddle River, NJ: Prenteice-Hall PTR, 1997.
    • RUMBAUGH, James et alii. Modelagem e Projetos Baseados em Objetos. Ed. Campus, 1994.
    • WAZLAWICK, Raul S. Análise e Projeto de Sistemas de Informação Orientados a Objetos. São Paulo: Campus. 2004.