Aulas de Programação, Gestão de TI e mais
TL;DR: O GitHub com todos os exercícios está aqui. A playlist do YouTube com todas as aulas está aqui. Meu perfil no Repl.it com todos os códigos está aqui. Recomendo que você acesse e siga agora esses três links.
Aulas remotas
As aulas do curso de Sistemas de Informação na universidade retornaram no início deste mês, e estamos trabalhando de forma remota emergencial durante a pandemia. Isso significa que todas as disciplinas que leciono para os alunos de SI da unidade Ituiutaba da UEMG estão sendo disponibilizadas nesse formato.
Optei por gravar as aulas e disponibilizá-las no YouTube, de forma que, além dos meus alunos, qualquer pessoa possa ter acesso a esse material. Não se trata de um curso específico de uma linguagem ou tecnologia X ou Y, mas sim de aulas de um curso de graduação em tecnologia. Exploro linguagens, técnicas e proponho desafios e atividades voltadas para a prática (conhecimento técnico) de TI.
Estou trabalhando neste semestre com 3 disciplinas:
Programação Orientada a Objetos II, onde utilizamos a linguagem Python. Optei por trabalhar com Python por ser uma linguagem moderna, orientada a objetos, de uso geral e com uma curva de aprendizagem menor que outras linguagens. Além disso, utilizo a excelente plataforma Repl.it (https://repl.it/@baciotti), onde os alunos podem editar, salvar, depurar, compartilhar e testar os códigos online. O bacana é que não é necessário instalar nada nas máquinas, e imediatamente eles podem testar todos os códigos.
Gestão de TI, uma disciplina teórica onde exploramos melhores práticas de gestão de TI, COBIT, ITIL. Nessa disciplina, além das apresentações, incentivo a leitura de artigos científicos sobre o tema. Portanto, as atividades dessa matéria envolvem leitura e escrita.
Tópicos Avançados em Banco de Dados, uma disciplina prática que continua de onde a disciplina de Banco de Dados parou nos semestres anteriores. É uma matéria optativa, focada em trabalhar os diversos objetos de banco (triggers, views, etc.), além de revisar todos os comandos DDL e DML do SQL. Optei por trabalhar com SQLite nas aulas iniciais, pois é uma biblioteca pequena e simples de utilizar. Também utilizamos MySQL. Há centenas de exercícios disponíveis.
Quem já foi meu aluno sabe que gosto de focar em dois pilares durante as aulas. O primeiro é a simplicidade: o aluno deve ser capaz de começar a programar/testar imediatamente. Instalar IDEs, linguagens, bancos, bibliotecas, configurar, etc., fica para um segundo momento. Quando trabalhamos com programação, por exemplo, nos primeiros 30 minutos de aula o aluno já está escrevendo código. O segundo pilar é a quantidade de exercícios e atividades a serem desenvolvidas pelos alunos. Trabalhando com banco de dados, facilmente temos listas com 40 ou 50 exercícios, totalizando cerca de 400 exercícios ao final do curso. A maioria deles são exercícios simples e repetitivos no início, mas que aumentam gradativamente em dificuldade e adicionam novos recursos.
Além disso, todas as aulas de disciplinas técnicas são estruturadas como desafios. Eu explico o conceito inicial, dou um ou dois exemplos e, em seguida, os alunos precisam resolver os problemas. Esses problemas sempre exigem um conhecimento além do que foi explicado, ou seja, o aluno que está aprendendo a programar é obrigado a pesquisar e testar códigos. E, claro, isso não é diferente do que um programador faz no dia a dia. Não entrego tudo pronto.
Um exemplo interessante é na matéria de programação. Eu forneço um código de CRUD em Python completo com acesso a banco SQLite. Em seguida, os alunos precisam montar outro CRUD, exigindo relatórios com conversão de valores de R$ para dólares. A cotação atualizada do dólar é obtida através de uma consulta a uma API, explorando conceitos de JSON, API, Web Services, Banco de Dados, Classes, etc., em uma única atividade. Também forneço fontes extras de consulta.
Aulas já publicadas
Segue abaixo as aulas já postadas. Tudo que eu for postando ficará disponível nessa playlist. Optei por criar uma playlist em conjunto para as 3 disciplinas, ficando tudo centralizado. As aulas seguem um padrão de nomenclatura facilitando para você identificá-las:
- [GTI] → Gestão de TI
- [POO2] → Programação Orientada a Objetos II
- [TABD] → Tópicos Avançados em Banco de Dados
Aqui está a Playlist com todas as aulas
(Siga essa playlist para receber as notificações de novas aulas)
As aulas que já estão publicadas hoje no momento que estou criando esse texto estão abaixo. Mas siga a playlist acima para receber as novidades. Marque também esse repositório como seu favorito, pois todas as atividades serão postadas aqui.
Aulas introdutórias para todas as disciplinas
[Geral] Aula 00 - Aulas remotas emergenciais UEMG Sistemas 2020-1
Aulas de Gestão de TI
[GTI] Aula 01 - Introdução e Primeira atividade
[GTI] Aula 02 - Planejamento estratégico, o que é ciclo PDCA
Aulas de Programação Orientada a Objetos II
[POO2] Aula 01 - Introdução e forma de trabalho
[POO2] Aula 02 - Listas 1 e 2 e apresentação de slides
[POO2] Aula 03 - O que é Orientação a Objetos? POO
[POO2] Aula 04 - Criando uma classe de Conta
[POO2] Aula 05 - Herança e acesso a banco de dados SQLite
[POO2] Aula 06 - Construindo um cadastro de agenda com Python e SQLite
[POO2] Aula 07 - Construindo um cadastro de agenda com Python e SQLite Parte 2
[POO2] Aula 08 - Como acessar uma API com valor do dólar em Python (JSON + AwesomeAPI + Requests)
Aulas de Tópicos Avançados em Banco de Dados
[TABD] Aula 01 - Tópicos Avançados de Banco de Dados: Forma de trabalho e atividade 1, SQLite
[TABD] Aula 02 - Normalização de Banco de Dados e Criação de um Diagrama
[TABD] Aula 03 - Concluindo o Diagrama e utilizando o SQLite Studio
A plataforma que a universidade utiliza é o Microsoft Teams para as aulas. Então, todas as atividades eu posto ali. Porém, para facilitar a todos que queiram também resolver as atividades, colocarei todas elas dentro do GitHub no endereço https://github.com/baciotti/AulasRemotas.
Eu utilizo e recomendo que meus alunos trabalhem os códigos dentro do Repl.it. Todos os códigos que desenvolvo durante as aulas estão disponíveis nessa plataforma. Ela é gratuita e permite que você crie quantos códigos quiser nas mais diferentes linguagens. A vantagem é que fica tudo centralizado e você pode acessar de qualquer máquina. Acesse e siga o meu Repl.it https://repl.it/@baciotti. Explorarei com vocês depois outras maneiras de se trabalhar completamente online de forma produtiva.
Espero que esse material seja útil :)