Projeto de Curricularização – Linux + Python e
Pygame
Imagem 1 – Capa do trabalho do projeto de curricularização, com a imagem das principais
tecnologias ministradas nesse projeto
Sumário
Projeto de Curricularização – Linux + Python e Pygame ....................................... 1
Sobre o Documento ..................................................................................... 3
Organização ................................................................................................ 4
Elaboração do Workshop .............................................................................. 7
Etapa 1 - Planejamento e Infraestrutura ...................................................... 7
Etapa 2 - Desenvolvimento e Conteúdo Didático ....................................... 11
Etapa 3 - Execução e Mentoria ................................................................. 14
Etapa 4 – Análise de Impacto e Qualidade ................................................ 17
Etapa 5 - Documentação Final e Disseminação......................................... 19
Anexos ...................................................................................................... 20
Anexo I – Código do jogo da Forca ............................................................ 20
Anexo II – Slides ...................................................................................... 25
Anexo III - Formulário (Google Forms) ....................................................... 27
Anexo IV – Dashboard de Resultados ........................................................ 30
1
2
Sobre o Documento
Este documento registra a documentação de um Workshop proposto pelo
professor Robson Eduardo Galloppi, na disciplina Sistemas Operacionais II, e
desenvolvido pela turma do curso de Análise e Desenvolvimento de Sistemas
(noturno) da Fatec Taquaritinga.
O projeto tem como objetivo integrar os conteúdos de Sistemas Operacionais e
Programação, a partir da proposta do professor de realizar um workshop em que
os alunos construam um jogo em Pygame em um sistema operacional diferente
do Windows.
Trata-se de uma atividade de curricularização, na qual há a integração de
diferentes disciplinas. A dinâmica consiste em os alunos levarem o conteúdo
ministrado pelo professor para outras turmas, promovendo a troca de
conhecimento.
Todas as etapas do projeto foram registradas para que a atividade possa ser
entregue e devidamente avaliada pelo docente responsável.
3
Organização
O Workshop foi dividido em 5 grupos, cada um responsável por uma etapa do
projeto. Cada grupo tem suas próprias responsabilidades e garante que os
objetivos de sua fase sejam cumpridos. Os grupos/etapas são:
Grupo 1: Planejamento e Infraestrutura
Responsável pela base do projeto: definir o "onde", "para quem" e o "como"
técnico.
Responsabilidades:
• Diagnóstico e Definição do Público-Alvo: escolher a comunidade
beneficiada e avaliar o nível de conhecimento técnico dos participantes.
• Proposta Técnica e Justificativa: documentar a escolha da distribuição
Linux (Ubuntu, Fedora etc.) e do Pygame como ferramentas para o
workshop.
• Configuração do Ambiente: preparar máquinas virtuais, instalar o Linux
escolhido e configurar o ambiente de desenvolvimento com Python e
Pygame.
• Planejamento de Conteúdo: elaborar a ementa e o cronograma detalhado
do workshop.
Entregável Principal: Documento de planejamento com cronograma, ementa e
justificativa técnica.
Grupo 2: Desenvolvimento e Conteúdo Didático
Responsável pela criação do material que será usado no workshop.
Responsabilidades:
• Criação do Jogo-Exemplo: desenvolver um jogo 2D simples em Pygame
para ser usado como guia.
• Elaboração dos Módulos Didáticos: preparar material passo a passo, com
códigos comentados e exercícios práticos.
• Criação de Material de Apoio: produzir slides, guias em PDF e,
opcionalmente, um site simples em Bootstrap para centralizar o conteúdo.
Entregável Principal: Jogo-exemplo funcional e material didático em formato
digital.
4
Grupo 3: Execução e Mentoria
Responsável pela aplicação do workshop e interação direta com a comunidade.
Responsabilidades:
• Divulgação e Inscrições: organizar a divulgação e o processo de
inscrições.
• Ministrar o Workshop: conduzir as aulas com o conteúdo preparado pelo
Grupo 2.
• Suporte e Mentoria: auxiliar os participantes durante o evento, tirando
dúvidas e resolvendo problemas.
Entregável Principal: Workshop realizado com sucesso, comprovado pela lista de
presença e registros do evento.
Grupo 4: Análise de Impacto e Qualidade
Responsável por avaliar o sucesso do projeto a partir da visão dos participantes.
Responsabilidades:
• Coleta de Feedback: elaborar e aplicar questionários de avaliação.
• Análise dos Dados: tabular os resultados e identificar pontos fortes e
melhorias.
• Registro do Evento: fazer registros em foto e/ou vídeo (com autorização)
para o relatório final.
Entregável Principal: Relatório consolidado com análise dos questionários e
registros do evento.
Grupo 5: Documentação Final e Disseminação
Responsável por consolidar e apresentar os resultados.
Responsabilidades:
• Elaboração do Relatório Final: reunir informações de todas as fases,
desde o planejamento até a análise de resultados.
• Criação da Apresentação Final: preparar material visual e roteiro para a
apresentação.
5
• Apresentação dos Resultados: expor de forma clara o impacto do projeto
e os aprendizados obtidos.
Entregável Principal: Relatório final e apresentação oral do projeto.
A primeira etapa foi concluída antes mesmo da divisão dos grupos, realizada
coletivamente por todos os alunos em uma das aulas ministradas pelo professor.
Essa fase inicial foi fundamental para estabelecer os objetivos que deveriam ser
alcançados com o projeto de curricularização.
A ideia de dividir a turma em grupos, cada um responsável por uma etapa do
projeto, surgiu a partir de uma proposta do professor, após solicitação dos alunos,
que nunca haviam trabalhado dessa forma em sala de aula. A partir desse
direcionamento, os próprios alunos organizaram as demais quatro etapas e
definiram sua participação em cada grupo.
É importante destacar que, mesmo com a divisão por etapas, o trabalho em
equipe ocorreu de forma integrada, já que muitas responsabilidades dependiam
umas das outras. Dessa forma, a comunicação foi essencial para o bom
andamento do Workshop. Para viabilizar essa troca, foram utilizados grupos no
WhatsApp: um grupo geral, acessível a toda a turma, e grupos específicos,
restritos a cada etapa do projeto.
6
Elaboração do Workshop
Etapa 1 - Planejamento e Infraestrutura
Essa fase inicial foi fundamental para estabelecer os objetivos que deveriam ser
alcançados com o projeto de curricularização, sendo realizada coletivamente por
todos os alunos em uma das aulas ministradas pelo professor.
Com ela pudemos ter as seguintes informações do projeto declaradas abaixo:
Diagnóstico
• Instituição / Público-alvo: Turma AMS. O público já é familiarizado com
conceitos de computação e programação, sendo possível desenvolver o
curso de maneira mais sucinta e eficiente, sem se prender muito a noções
básicas de informática, focando diretamente no conteúdo programático do
curso.
• Faixa Etária: Acima de 15 anos.
• Quantidade de Participantes: 15 pessoas.
• Nível de Escolaridade: Ensino Médio.
• Observação Equipamentos Alternativos: Trazer uma máquina de casa
para fazer compartilhamento da tela e não ter imprevistos na
apresentação.
• Data: 24/09/2025
• Horário: Início: 19h30 | Término: 21h30
• Infraestrutura Disponível: Laboratório Fatec - Lab 06 - Fatec Taquaritinga
• Início da divulgação: 10/09/2025 - Murais da Fatec, Coordenação, Redes
sociais
• Inscrição: Formulário do google para limitar o número de inscritos, a partir
de 10/09/2025. Nome, Nascimento, RA, E-mail institucional e Telefone.
• Feedback: Formulário Google ao final do curso: Nota para o curso em
geral; Nota para a didática; Espaço para comentários.
• Resultados Esperados:
o Criação de um jogo funcional e simples
o Familiarização dos alunos com o ambiente Linux
o Desenvolvimento de habilidades
7
o Aumento de interesse pela área de tecnologia
Proposta Técnica: Objetivo e Justificativa
Objetivo da oficina:
O objetivo desta oficina é proporcionar aos estudantes uma experiência prática
com programação em Python, por meio da criação de minigames utilizando a
biblioteca Pygame. A proposta busca explorar conceitos fundamentais como
lógica de programação, manipulação de eventos, animação e interatividade, tudo
dentro do ambiente Linux (Ubuntu), utilizando máquina virtual. Com isso,
pretende-se desenvolver o raciocínio lógico, estimular a criatividade e ampliar o
repertório técnico dos alunos, preparando-os para lidar com diferentes linguagens
e ferramentas utilizadas no mercado de desenvolvimento de software e jogos.
Justificativa da escolha do Linux:
A escolha do Sistema Operacional Linux, especificamente o Ubuntu em máquinas
virtuais, se justifica por diversos fatores. Em primeiro lugar, proporciona aos
estudantes a oportunidade de ter contato direto com um ambiente amplamente
utilizado no mundo da programação e da infraestrutura de servidores, permitindo
que compreendam a lógica de sistemas abertos e customizáveis. Além disso,
sendo um sistema leve e de fácil configuração, o Linux oferece um ambiente de
desenvolvimento completo e integrado com ferramentas de código aberto, ideal
para práticas com Python. A familiarização com Linux também prepara os alunos
para lidar com servidores e serviços de backend, ampliando seu conhecimento
prático e profissional.
Justificativa da escolha do Python + Pygame:
A opção por Python e Pygame está alinhada ao objetivo da oficina de unir
aprendizado e prática de forma acessível. Python é uma linguagem de alto nível,
amplamente utilizada em diversas áreas, desde desenvolvimento web até ciência
de dados, automação e inteligência artificial, o que garante relevância e
aplicabilidade futura para os estudantes. Já o Pygame permite que os alunos
desenvolvam jogos 2D de forma simples, visual e intuitiva, focando na lógica de
programação e na estrutura de código, sem a complexidade de engines gráficas
avançadas. Por meio dos minigames, os conceitos de programação são aplicados
na prática, consolidando aprendizados sobre estruturas de controle, funções,
manipulação de eventos e ciclos de desenvolvimento, ao mesmo tempo que
incentivam a criatividade e o engajamento dos participantes.
8
Sobre o Linux
• Padrão em servidores e infraestrutura global: O Linux é o sistema
operacional dominante em servidores de internet, supercomputadores e
dispositivos embarcados. Mostrar isso aos alunos evidencia a relevância
prática da ferramenta que estão aprendendo.
• Ambiente próximo ao mercado de trabalho: Muitas áreas de TI exigem
familiaridade com sistemas baseados em Linux (desenvolvimento
backend, nuvem, DevOps). Trabalhar nele desde cedo aproxima os alunos
da realidade profissional.
• Gestão facilitada em laboratório: Como é altamente customizável, o
Linux permite configurar imagens de máquinas virtuais padronizadas,
economizando tempo do instrutor e garantindo que todos os alunos
tenham o mesmo ambiente de aprendizagem.
• Acesso a ferramentas educacionais: Linux conta com repositórios de
software que disponibilizam gratuitamente IDEs, linguagens e utilitários de
programação sem complicações de licença ou custo.
Sobre o Pygame
• Base para projetos interdisciplinares: Além de jogos, o Pygame pode ser
usado em simulações interativas de física, matemática ou até projetos
artísticos digitais, ampliando o alcance pedagógico.
• Construção incremental: Diferente de engines prontas (como Unity), o
Pygame exige que os alunos programem diretamente a lógica dos jogos, o
que ajuda a consolidar a compreensão de algoritmos.
• Portabilidade dos Projetos: Os jogos criados podem ser exportados e
rodar em diferentes sistemas operacionais (Windows, Linux, macOS) sem
grandes adaptações, permitindo que os alunos levem seus projetos para
casa.
• Comunidade Educacional Ativa: Muitas instituições já usam o Pygame
como ferramenta de ensino, o que facilita encontrar exemplos prontos,
apostilas e até fóruns de dúvidas específicos para iniciantes.
Planejamento do Conteúdo:
1. Apresentação do projeto de forma geral.
9
2. Introdução ao ambiente em que vamos trabalhar, MV, explicar o que seria o
Linux e sua ideia
3. Introdução a lógica de programação, demonstrar para eles o básico de
lógica, como o computador pensa, como funciona um bloco de código
4. Apresentar o nosso projeto para eles, mostrar como mexer e como
funcionam os códigos, o que cada um faz, e mostrar como montar um jogo
simples.
5. Deixar aberto para que eles possam ver e montar outros jogos simples.
Ideia de Projeto: Um projeto de blocos de código, no qual, o público-alvo possa
mover esses objetos, e ir organizando a sua lógica.
10
Etapa 2 - Desenvolvimento e Conteúdo Didático
O grupo responsável por essa etapa, mesmo diante das sugestões levantadas na
primeira fase do projeto, optou por desenvolver um jogo mais simples e didático
em relação à sua lógica interna: o “Jogo da Forca”.
Funcionamento:
Com a ideia definida, os integrantes desenvolveram o jogo em suas próprias
casas, utilizando diferentes sistemas operacionais. Por ter sido feito em Python, o
jogo é compatível com diversas plataformas. Além disso, o código foi comentado
para facilitar o entendimento de cada funcionalidade implementada.
O código completo do jogo pode ser acessado no Anexo I, ao final deste
documento, ou diretamente pelo link:
[Link]
Ainda nessa etapa foi criado o seguinte material didático para a apresentação
desta oficina:
Documentação para Apresentação - Jogo da Forca (pygame)
Objetivos
• Apresentar um jogo simples em Python utilizando a biblioteca pygame.
• Mostrar conceitos básicos de programação: variáveis, funções, loops,
eventos e condicionais.
• Relacionar programação com diversão por meio de um jogo conhecido.
Estrutura da Apresentação (12–15 minutos)
1. Introdução (1 min)
• Perguntar à turma: "Quem já jogou Forca no papel?"
• Explicar: "Vamos recriar esse jogo no computador usando Python e
pygame."
2. O que é pygame? (1 min)
• Biblioteca Python usada para criar jogos 2D.
• Permite desenhar na tela, controlar teclado, mouse e sons.
• Mostrar rapidamente: "Com pygame conseguimos transformar lógica em
interação visual."
3. Regras do jogo da Forca (1 min)
• Jogador tenta adivinhar uma palavra, letra por letra.
11
• Cada erro desenha uma parte do boneco.
• Vitória: descobre todas as letras.
• Derrota: boneco completo.
4. Estrutura do Código (5–6 min)
Dividir explicação em blocos:
• Configuração inicial: importar bibliotecas, definir tela, cores e fontes.
• Lista de palavras: conjunto de possíveis palavras a serem sorteadas.
• Função desenhar_forca(): desenha a forca e o boneco conforme os erros.
• Função jogar():
o Sorteia palavra.
o Captura teclas digitadas.
o Verifica se letra existe ou não na palavra.
o Atualiza erros ou acertos.
o Mostra resultado na tela.
• Função main(): permite jogar várias rodadas.
• Mostrar cada trecho em slides curtos com prints de código, sem colocar
tudo de uma vez.
5. Demonstração ao vivo (3 min)
• Executar python forca_pygame.py.
• Jogar algumas rodadas com a turma sugerindo letras.
• Mostrar vitórias e derrotas.
6. Encerramento (2–3 min)
• Reforçar os conceitos aprendidos: loops, eventos, funções, condições.
• Destacar: "Com o pygame, podemos transformar lógica em jogos visuais."
• Convidar: "Quem quiser, pode modificar a lista de palavras ou o design do
boneco."
Dicas de Apresentação
• Interação: deixar os colegas escolherem letras.
• Visual: mostrar a tela do jogo enquanto explicam.
12
• Clareza: não explicar todos os detalhes do código, apenas a ideia principal
de cada parte.
• Tempo: reservar pelo menos metade do tempo para a demonstração
prática.
Possíveis Perguntas para a Turma
• O que acontece se digitarmos a mesma letra duas vezes?
• O que poderia ser adicionado ao jogo para ficar mais divertido? (ex.: sons,
imagens, níveis de dificuldade)
• Que outras brincadeiras conhecidas poderiam ser transformadas em jogos
com pygame?
Conclusão
Esse projeto mostra como programação pode ser usada para transformar um jogo
tradicional em uma versão digital.
O foco é aprender lógica de programação enquanto se diverte.
13
Etapa 3 - Execução e Mentoria
O grupo desta etapa utilizou o material didático proposto pelo grupo anterior e o
adaptou para o formato de apresentação de slides, adicionando e alterando o
conteúdo, tornando-o ainda mais didático e adequado para a oficina, que tem o
objetivo de transmitir mais conhecimento.
Além de focar no jogo, optaram por apresentar também informações sobre o
sistema operacional escolhido, Linux (Ubuntu), e suas diferenças em relação ao
Windows, o mais conhecido dos sistemas operacionais.
A ideia foi transmitir o conhecimento de forma mais descontraída, incluindo
alguns memes nos slides, mantendo-os, porém, informativos.
Os slides podem ser visualizados ao final deste arquivo, no Anexo II, ou
acessados pelo link:
[Link]
5dM99mYWZE/
Sobre os Slides da Apresentação:
Slide 1 – Capa da Apresentação demonstrando as
tecnologias que serão abordadas no workshop
Slide 2 – “Linux ou Windows”, introdução a
pergunta que dará início ao fluxo da apresentação.
Slide 3 – Tópicos guias respondendo as perguntas
de o que é Linux e onde é mais usado.
Slide 4 – Tabela demonstrando diferenças em
tópicos entre Linux e Windows
Slide 5 – Imagem descontraída demonstrando que
mesmo com pouco o Linux consegue oferecer até
mais eficiência que outros sistemas operacionais.
14
Slide 6 – Explicação do que Python e Pygame em tópicos.
Preparação da Infraestrutura para o Workshop
Na semana anterior da oficina, dia 17/09/2025,
todos os alunos separaram 10 máquinas com
Ubuntu, Visual Studio Code e Python instalados,
além de algumas máquinas reservas para caso alguma apresentasse problema no
momento da execução do Workshop.
Foi anotado o número de cada máquina juntamente com o respectivo usuário que
precisaria logar para ter acesso à máquina virtual instalada. Como as máquinas do
laboratório utilizado já possuem numeração, apenas foi necessário registrá-las.
Máquinas selecionadas: 01, 02, 03, 05, 08, 11, 13, 17, 19, 21
Também foram selecionadas duas máquinas reservas no caso de alguma falha
técnica, sendo elas as máquinas 07 e 14.
A presença de pelo menos 10 alunos da Turma do AMS foi garantida pelo professor,
por isso a quantidade de máquinas preparadas.
Execução do Workshop
O Workshop foi realizado na data prevista, 24/09/2025, as 19h30 no Laboratório 06
do Bloco A1. A equipe chegou com antecedência para preparar as máquinas e a
apresentação.
Durante o início das atividades, foi notada uma instabilidade técnica nas máquinas
virtuais (especificamente na execução do ambiente Python/Pygame), o que
inviabilizou a prática guiada de programação simultânea para todos. Diante disso,
o Grupo 3 agiu rapidamente para manter a qualidade do workshop, alterando a
dinâmica para uma abordagem Expositiva.
A equipe se concentrou na apresentação do conteúdo teórico e lógico preparado
nos slides. Os conceitos de lógica de programação e a estrutura do jogo foram
explicados detalhadamente pela equipe expositora. Enquanto isso, as máquinas
com o sistema Ubuntu, apesar do problema com o Python, permaneceram ligadas
e disponíveis nas bancadas, dessa forma, os alunos que tiveram interesse puderam
utilizar os computadores para navegar e se familiarizar com a interface do Linux
durante e após a apresentação, de forma livre e exploratória.
15
Os alunos também puderam acompanhar a execução lógica do programa em
Python e sugerir alterações, mantendo a interatividade proposta inicialmente.
A decisão de alterar a abordagem da dinâmica garantiu que o conteúdo fosse
transmitido através da apresentação, mantendo o contato prático com o Sistema
Operacional como uma atividade complementar de familiarização para os
interessados.
16
Etapa 4 – Análise de Impacto e Qualidade
Metodologia de Coleta de Dados
Para medir a eficácia do workshop e o impacto do projeto na comunidade escolar,
o Grupo 4 estabeleceu uma metodologia híbrida de coleta de dados, visando
capturar tanto o feedback direto dos participantes quanto indicadores
comportamentais objetivos durante a apresentação.
O processo de avaliação ocorreu em três frentes simultâneas ao final da exposição:
1. Feedback Digital: Os alunos foram instruídos a
responder um formulário via Google Forms,
acessado através de um QR code projetado em
tela. Este formulário focou na autoavaliação do
aprendizado técnico e no despertar de interesse
pelas tecnologias apresentadas.
O formulário pode ser visualizado ao final deste arquivo, no Anexo III, ou acessado
pelo link:
[Link]
ZSfDi8C6uNH61M0gbxg/viewform?usp=dialog
2. Levantamento Físico: Para garantir a adesão e permitir um feedback mais
detalhado, os participantes foram liberados em pequenos grupos (de 2 a 3
alunos) para responder a um questionário físico complementar.
3. Análise de Comportamento: Durante todo o workshop, membros do Grupo
4 atuaram como observadores, registrando métricas de engajamento
individual (nível de atenção, participação ativa, reação às explicações e
expressão corporal) em uma planilha de controle.
Os dados coletados foram consolidados e
processados em um painel de Business
Intelligence (Power BI) para gerar os
indicadores finais do evento.
O dashboard de resultados pode ser visualizado no Anexo IV deste arquivo ou
acessado em:
[Link]
MGRjZWRiY2NmOGE5IiwidCI6ImNmNzJlMmJkLTdhMmItNDc4My1iZGViLTM5ZDU
3YjA3Zjc2ZiIsImMiOjR9
Análise dos Resultados
17
A análise dos dados revela que, apesar das adaptações técnicas necessárias
durante a execução do Workshop (mencionadas na Etapa 3), o engajamento da
turma se manteve em níveis satisfatórios.
1. Indicadores de Atenção e Participação: Conforme demonstrado nos gráficos
de análise comportamental, a grande maioria dos participantes foi classificada
com o nível de atenção "Muito atento". Isso valida a qualidade da apresentação,
mesmo sem a atividade prática guiada originalmente planejada, o conteúdo visual
e a oratória dos apresentadores foram suficientes para manter o interesse da turma
do início ao fim.
A participação ativa seguiu um padrão de "Participa quando solicitado", indicando
que a turma manteve uma postura de respeito e acompanhamento, interagindo
sempre que os apresentadores abriam espaço para dúvidas ou interações.
2. Receptividade ao Conteúdo (Linux e Python): A análise da "Reação às
Explicações" aponta que aproximadamente 77,78% dos alunos demonstraram
interesse ou curiosidade visível durante a apresentação. Quanto ao "Trabalho
Prático", os dados mostram que uma parcela significativa conseguiu "Executar sem
ajuda" as tarefas propostas. Considerando as circunstâncias, isso se refere
principalmente à navegação e exploração do ambiente Linux (Ubuntu), que operou
com estabilidade. Isso confirma que um dos objetivos principais, a familiarização
com um Sistema Operacional diferente do Windows, foi atingido com sucesso.
3. Percepção Emocional Geral: O indicador de "Reação Emocional Geral"
apresentou predominantemente os estados "Neutro" e "Curioso", com picos de
"Entusiasmado". A presença de comportamentos "Neutros" é esperada dada a
natureza mais técnica e menos "mão na massa" que o workshop assumiu, mas a
ausência quase total de comportamentos negativos (apenas um registro de
"Cansado/desinteressado") reforça a qualidade da didática aplicada pelos
apresentadores.
Conclusão
A compilação dos questionários (Google Forms e físico) com a análise de
comportamento permite concluir que o workshop foi bem-sucedido em despertar
o interesse dos alunos. As métricas indicam que a "curiosidade" foi o sentimento
motriz da turma, cumprindo o papel da curricularização de abrir novas perspectivas
tecnológicas para os estudantes do AMS.
18
Etapa 5 - Documentação Final e Disseminação
Considerações Finais e Consolidação do Projeto
A última etapa deste projeto de curricularização consiste na documentação de
todo o trabalho desenvolvido pelos cinco grupos na área da disciplina Sistemas
Operacionais II.
O desenvolvimento deste trabalho permitiu simular um ambiente real de projeto de
TI, onde a divisão de tarefas, a comunicação interpessoal e a capacidade de
resolução de problemas foram tão importantes quanto o conhecimento técnico.
Análise dos Objetivos Alcançados:
• Integração de Tecnologias: O projeto cumpriu o objetivo de apresentar o
Linux e o Python aos alunos da turma AMS. Mesmo com a adaptação para
um modelo mais expositivo devido a questões técnicas, o conteúdo lógico
foi transmitido e o ambiente Linux esteve disponível para contato e
familiarização por parte dos estudantes.
• Trabalho em Equipe: A divisão em grupos (Planejamento, Desenvolvimento,
Execução, Qualidade e Documentação) forçou a turma a exercitar a
comunicação e a gestão de imprevistos.
• Resiliência: A equipe de execução demonstrou maturidade ao contornar as
falhas de ambiente, garantindo que a apresentação ocorresse e que o
conhecimento fosse compartilhado, validando a experiência de "gestão de
crise" em projetos de TI.
Conclusão
Conclui-se que o Workshop atingiu seu propósito principal: promover a troca de
conhecimento e a curricularização da extensão. Os participantes tiveram contato
com uma alternativa Open Source robusta (Linux/Ubuntu) e viram na prática a
lógica de programação aplicada.
Para a turma que organizou o workshop, fica o aprendizado sobre o ciclo de vida de
um projeto, desde a concepção da infraestrutura até a análise de qualidade pós-
evento.
19
Anexos
Anexo I – Código do jogo da Forca
#IMPORTAÇÕES
import pygame
import random #para escolher palavras aleatórias
import sys #para sair do jogo
# Inicialização do pygame
[Link]()
# Configurações de tela
WIDTH, HEIGHT = 1200, 600
WIN = [Link].set_mode((WIDTH, HEIGHT)) #tamanho da tela
[Link].set_caption("Jogo da Forca - Pygame")
# Cores (rgb) e fontes
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (200, 0, 0)
GREEN = (0, 180, 0)
BLUE = (0, 0, 200)
FONT = [Link]("arial", 60)
# Título
titulo = [Link]("Jogo da Forca", True, BLACK)
titulo_rect = titulo.get_rect(center=(WIDTH // 1.9, 40)) #pega o retângulo do título e
centraliza
#fontes menores para o restante do jogo
FONT = [Link]("arial", 36)
FONT_SMALL = [Link]("arial", 24)
# Lista de palavras
PALAVRAS = [
"PYTHON", "PROGRAMACAO", "ALGORITMO", "COMPUTADOR", "MATEMATICA",
"FUTEBOL", "CIENCIA", "RESPONSABILIDADE", "SUSTENTABILIDADE", "AMIZADE"
]
# Estados da forca (desenho)
def desenhar_forca(win, erros):
20
base_x, base_y = 150, 500
# Estrutura fixa
#Desenha a estrutura fixa da forca, conforme aumentam os erros, desenha cada
parte do boneco, cabeça - corpo - braços - pernas
[Link](win, BLACK, (base_x + 100, base_y - 400), (base_x + 250,
base_y - 400), 5)
[Link](win, BLACK, (base_x, base_y), (base_x + 200, base_y), 5) #
base
[Link](win, BLACK, (base_x + 100, base_y), (base_x + 100, base_y -
400), 5) # poste
[Link](win, BLACK, (base_x + 100, base_y - 400), (base_x + 250,
base_y - 400), 5) # topo
[Link](win, BLACK, (base_x + 250, base_y - 400), (base_x + 250,
base_y - 350), 5) # corda
# Desenho do boneco conforme erros
if erros > 0:
[Link](win, BLACK, (base_x + 250, base_y - 320), 30, 3) # cabeça
if erros > 1:
[Link](win, BLACK, (base_x + 250, base_y - 290), (base_x + 250,
base_y - 200), 3) # corpo
if erros > 2:
[Link](win, BLACK, (base_x + 250, base_y - 270), (base_x + 200,
base_y - 230), 3) # braço esq
if erros > 3:
[Link](win, BLACK, (base_x + 250, base_y - 270), (base_x + 300,
base_y - 230), 3) # braço dir
if erros > 4:
[Link](win, BLACK, (base_x + 250, base_y - 200), (base_x + 200,
base_y - 150), 3) # perna esq
if erros > 5:
[Link](win, BLACK, (base_x + 250, base_y - 200), (base_x + 300,
base_y - 150), 3) # perna dir
# Função principal do jogo
def jogar():
palavra = [Link](PALAVRAS)
letras_certas = []
letras_erradas = []
erros = 0
max_erros = 6
21
#Sorteia uma palavra. Inicializa listas para letras certas e erradas, contador de
erros e máximo de erros permitidos.
clock = [Link]()
run = True
while run:
[Link](30)
[Link](WHITE)
[Link](titulo, titulo_rect)
#Mantem o jogo rodando a 30 frames por segundo, preenche a tela de branco e
desenha o título.
# Eventos
for event in [Link]():
if [Link] == [Link]:
[Link]()
[Link]()
if [Link] == [Link]:
if [Link]():
letra = [Link]()
if letra in palavra and letra not in letras_certas:
letras_certas.append(letra)
elif letra not in palavra and letra not in letras_erradas:
letras_erradas.append(letra)
erros += 1
#Verifica eventos, se o jogador fechou a janela ou pressionou uma tecla. Se a tecla
for uma letra, verifica se está na palavra.
#Atualiza as listas de letras certas e erradas e incrementa o contador de erros.
# Mostrar palavra
exibicao = ""
for ch in palavra:
if ch in letras_certas:
exibicao += ch + " "
else:
exibicao += "_ "
texto_palavra = [Link](exibicao, True, BLUE)
[Link](texto_palavra, (400, 200))
#Cria uma string com letras certas e _ para não descobertas. Desenha essa string
na tela.
22
# Mostrar letras erradas
texto_erradas = FONT_SMALL.render("Letras erradas: " + ",
".join(letras_erradas), True, RED)
[Link](texto_erradas, (400, 300))
# Desenhar forca e boneco
desenhar_forca(WIN, erros)
# Condições de vitória/derrota
if all(ch in letras_certas for ch in palavra):
texto_vitoria = [Link]("Você venceu!", True, GREEN)
[Link](texto_vitoria, (400, 400))
[Link]()
[Link](3000)
return
if erros >= max_erros:
texto_derrota = [Link]("Você perdeu! Palavra: " + palavra, True, RED)
[Link](texto_derrota, (400, 400))
[Link]()
[Link](3000)
return
[Link]()
#Se todas as letras foram descobertas, mostra mensagem de vitória. Se os erros
atingirem o máximo, mostra mensagem de derrota.
def main():
while True:
jogar()
# Tela de reinício
[Link](WHITE)
msg = [Link]("Pressione ENTER para jogar novamente ou ESC para sair",
True, BLACK)
[Link](msg, (100, 250))
[Link]()
esperando = True
23
while esperando:
for event in [Link]():
if [Link] == [Link]:
[Link]()
[Link]()
if [Link] == [Link]:
if [Link] == pygame.K_RETURN:
esperando = False
if [Link] == pygame.K_ESCAPE:
[Link]()
[Link]()
if __name__ == "__main__":
main()
24
Anexo II – Slides
25
26
Anexo III - Formulário (Google Forms)
27
28
29
Anexo IV – Dashboard de Resultados
30