Skip to content

brawlingthebits/uff-programming-fundamentals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Repositório de Questões de Fundamentos de Programação - CEDERJ/UFF

Este repositório contém uma coleção de questões de provas antigas da disciplina de Fundamentos de Programação do curso de Tecnologia em Sistemas de Computação do CEDERJ, oferecido em parceria com a Universidade Federal Fluminense (UFF). O objetivo é fornecer um recurso valioso para estudantes atuais e futuros, permitindo que pratiquem e se familiarizem com o estilo e conteúdo das avaliações.

Cobertura atual: 2016-2 a 2026-1.

Por que aqui e não no Drive

O material original da turma vive em uma pasta do Google Drive, onde as resoluções chegam compactadas em .zip. No celular isso é praticamente inutilizável: não dá para ler o código sem baixar e extrair.

Aqui os arquivos .py ficam soltos e versionados, então o GitHub os exibe com destaque de sintaxe direto no navegador ou no aplicativo — dá para estudar as resoluções no ônibus, sem baixar nada.

Sobre o CEDERJ e a UFF

O CEDERJ (Centro de Educação Superior a Distância do Estado do Rio de Janeiro) atua como um mediador entre a Universidade Federal Fluminense (UFF) e os alunos. Esta parceria permite que a UFF ofereça cursos de graduação a distância, como o de Tecnologia em Sistemas de Computação, ampliando o acesso ao ensino superior de qualidade no estado do Rio de Janeiro.

Sobre a Disciplina

Fundamentos de Programação é uma disciplina ministrada no segundo período letivo do curso. Ela tem como pré-requisito a disciplina Projeto e Desenvolvimento de Algoritmos. O principal objetivo é ensinar uma linguagem de programação, especificamente Python, capacitando o aluno a implementar, executar e testar diferentes soluções para problemas computacionais.

Objetivos da Disciplina

  • Objetivo Geral: Capacitar o aluno no uso de uma linguagem de programação procedimental para implementar, executar e testar soluções para problemas.
  • Objetivo Específico: Ensinar programação utilizando a linguagem Python.

Ementa

A disciplina abrange os seguintes tópicos:

  1. Introdução
  2. O Ambiente de Desenvolvimento de Programas
  3. Variáveis, Tipos e Comandos Básicos
  4. Estruturas de Controle: Sequência, Seleção e Repetição
  5. Subprogramação: Funções, Passagem de Parâmetros e Recursividade
  6. Representação de Dados: Listas, Vetores e Matrizes, Strings e Tuplas, Arquivos, Conjuntos, Dicionários
  7. Noções de Complexidade de Algoritmo

Estrutura do Repositório

O repositório está organizado da seguinte forma:

  • AD1s: Questões da Avaliação a Distância 1
  • AD2s: Questões da Avaliação a Distância 2
  • AP1s: Questões da Avaliação Presencial 1
  • AP2s: Questões da Avaliação Presencial 2
  • AP3s: Questões da Avaliação Presencial 3

Dentro de cada pasta, você encontrará subpastas organizadas por semestre (por exemplo, 2026-1, 2025-2, etc.).

Dentro do semestre, a prova mantém o nome real e a resolução fica em Gabarito:

AD1s/
  2025-1/
    AD1—2025.1.pdf          <- o enunciado da prova
    Gabarito/
      Q1-AD1-2025-1.py      <- resolução, renderizada pelo GitHub
      Q2-AD1-2025-1.py

Resoluções dos Tutores

A pasta Gabarito de cada semestre traz as resoluções fornecidas pelos tutores da disciplina. Quando o gabarito original veio compactado, o conteúdo foi extraído para que o código fique legível direto no GitHub — inclusive pelo celular.

Alguns semestres também trazem arquivos de apoio (.txt, .bin) usados como entrada pelas questões.

Nota: semestres mais antigos ainda usam a nomenclatura anterior (kata.pdf e katas dos tutores). O conteúdo é o mesmo.

Contribuições

Contribuições são bem-vindas! Se você tiver questões adicionais, resoluções alternativas ou melhorias para as existentes, sinta-se à vontade para abrir um pull request.

Aviso Legal

Este repositório é mantido por estudantes e não é oficialmente afiliado ao CEDERJ, à UFF ou à disciplina de Fundamentos de Programação. As questões e resoluções são compartilhadas para fins educacionais.

Bônus - Plataformas e Recursos Recomendados para Prática Adicional

Plataformas de Desafios de Programação

  1. Code Wars (https://www.codewars.com/):

    • Oferece uma ampla variedade de desafios de programação em diferentes níveis de dificuldade.
    • Suporta múltiplas linguagens de programação, incluindo Python.
    • Permite que você veja as soluções de outros usuários após completar um desafio, o que é ótimo para aprender diferentes abordagens.
  2. Bee Crowd (https://www.beecrowd.com.br/):

    • Anteriormente conhecido como URI Online Judge, mencionado no guia da disciplina.
    • Fornece uma grande coleção de problemas de programação, muitos dos quais são usados em competições de programação.
    • Oferece um ambiente de julgamento online para testar suas soluções.

Recursos para Projetos Práticos

  1. App Ideas (https://github.com/florinpop17/app-ideas):

    • Uma coleção de ideias de aplicativos para todos os níveis de experiência em programação.
    • Ótimo para praticar construindo aplicações completas e adquirir experiência em desenvolvimento de projetos.
  2. Project Based Learning (https://github.com/practical-tutorials/project-based-learning):

    • Uma lista curada de tutoriais de programação em que você aprende construindo aplicações.
    • Abrange várias linguagens e tecnologias, permitindo que você aplique seus conhecimentos de Python em contextos mais amplos.
  3. Build Your Own X (https://github.com/codecrafters-io/build-your-own-x):

    • Tutoriais passo a passo para construir suas próprias versões de tecnologias populares.
    • Excelente para entender como as coisas funcionam "por baixo dos panos" e aprofundar seus conhecimentos técnicos.

About

A repository with leetcode from the programming basics course at the Federal University of Fluminense.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages