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.
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.
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.
- 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.
A disciplina abrange os seguintes tópicos:
- Introdução
- O Ambiente de Desenvolvimento de Programas
- Variáveis, Tipos e Comandos Básicos
- Estruturas de Controle: Sequência, Seleção e Repetição
- Subprogramação: Funções, Passagem de Parâmetros e Recursividade
- Representação de Dados: Listas, Vetores e Matrizes, Strings e Tuplas, Arquivos, Conjuntos, Dicionários
- Noções de Complexidade de Algoritmo
O repositório está organizado da seguinte forma:
AD1s
: Questões da Avaliação a Distância 1AD2s
: Questões da Avaliação a Distância 2AP1s
: Questões da Avaliação Presencial 1AP2s
: Questões da Avaliação Presencial 2AP3s
: Questões da Avaliação Presencial 3
Dentro de cada pasta, você encontrará subpastas organizadas por semestre (por exemplo, 2024-1, 2023-2, etc.).
Em muitas pastas, você encontrará uma subpasta chamada "katas dos tutores". Estas contêm resoluções das questões fornecidas pelos tutores da disciplina.
O termo "kata" é usado neste contexto para se referir aos exercícios de programação. Originário das artes marciais, um kata é uma sequência de movimentos que são praticados repetidamente para aperfeiçoar a técnica. Na programação, katas são exercícios curtos e focados que ajudam a desenvolver habilidades específicas através da prática repetida.
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.
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.
-
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.
-
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.
-
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.
-
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.
-
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.