Introduction to Statistics – Manual de Sobrevivência

63% dos estudantes da UoPeople desistem após falhar no curso de Introdução à Estatística.

A sentença acima é falsa, mas só de ler já dá ansiedade. Exemplo tosco do poder da estatística. Assim começo a postagem dedicada ao curso de Introduction to Statistics da University of the People.

Do que se trata

O curso foca nos conceitos básicos de estatística descritiva e probabilidade, especialmente em preparar o estudante a pensar “estatisticamente”. Ao longo das unidades fazemos análises simples, baseadas em dados-modelo fornecidos pela universidade. Estatística inferencial será o foco de outro curso, que será compartilhado posteriormente aqui no blog.

É sempre válido apresentar uma lista com os tópicos principais, assim dá uma noção do que é esperado do estudante: Variáveis discretas e contínuas, distribuição de amostras, teorema do limite central (Central Limit Theorem), lei dos grandes números (Law of Large Numbers), aproximação binomial, variância, desvio padrão, etc. O pacote básico completo de um curso introdutório.

O detalhe das teorias matemáticas não é o foco. Elas são apresentadas sempre sob uma ótica prática. O curso utiliza a linguagem R nos exercícios, portanto é necessária a instalação do programa. Esse ponto faz o curso não ser muito amigável para dispositivos móveis (se alguém souber de bons apps que rodam R, por favor, compartilhe).

Recursos do curso

Conforme citado acima, usamos bastante a linguagem R ao longo das unidades. Instalar e se familiarizar um pouco com ela antes do curso começar pode ajudar, mas dá para ir aprendendo durante os estudos sem problema. O livro de referência se chama “Introduction to Statistical Thinking (With R, Without Calculus)”, de Benjamin Yakir. O título é auto explicativo e o livro é bom!

A qualidade dos materiais, exercícios e discussões é acima da média se comparado aos outros cursos, mas, — sempre tem um “mas” —, recomendo estudar pelo Khan Academy antes, durante e depois. Os tópicos mais complicados (Z-Scores, por exemplo) são muito bem explicados no Khan. Sei que essa é minha recomendação em quase todos os cursos, mas não consigo evitar. É difícil superar a didática do Sal.

Estrutura

Adivinhou? Pois é. UoPeople sempre consistente. Aqui também tem Learning Journal, Discussion Forum, Programming Assignments, e Graded Quiz. Vamos por partes:

Learning Journal

Ele segue o padrão de revisar os conceitos e aprendizados da semana. A grande surpresa deste curso para mim foi a instrutora, Jessica Rouen. Foi a melhor que tive até o momento, incluindo vários cursos que ainda não compartilhei no blog. Sem dúvida ela foi uma grande motivação para o curso. Além das revisões, toda semana tem três pequenos exercícios para postar no Journal: funções importantes em R, estimativa de horas de estudo, definição de conceitos (distribuição de amostra x distribuição de uma amostra, por exemplo), e até a elaboração de dicas que você daria para outros estudantes que irão fazer o curso.

Discussion Forum

Da instalação do R até a probabilidade de amostras. Uso de aproximações e modelos matemáticos. Pensamento crítico na análise de dados e dos resultados. Por que utilizar determinado modelo? Para que ele serve? Quais os pontos sensíveis? A maioria dos temas exploram o pensamento crítico sobre o resultado estatístico. Aprendemos que não é sobre calcular cegamente, mas conhecer a origem dos dados, possíveis inconsistências e falácias nos resultados.

Graded Quiz

São duas avaliações durante o curso e uma avaliação final. O peso das três avaliações representa 60% da nota, então é essencial se familiarizar com as questões, fazer todos os Self-Quiz e revisar sempre que possível.

Final Exam

Segue o padrão do Graded Quiz, por isso a importância de estudar bem as questões. O exame é proctored, o que significa que ele deve ser acompanhado pessoalmente (ou online) por um observador. É permitido usar o console do R, o livro do curso, e anotações. Calculadoras básicas são permitidas, mas nada de celular, tablet ou calculadora do computador! Meu método foi criar um documento com um resumo de todas as unidades, com a lista das fórmulas principais e funções de R mais comuns. Foi o suficiente para assegurar uma boa nota, ainda que tenha exigido um certo esforço!

Considerações Finais

É sempre importante lembrar que o objetivo da estatística não é efetuar mil cálculos complicados, com resultados indecifráveis. É saber usar ferramentas que permitam estabelecer sentido no meio do oceano de dados que temos ao nosso redor.

Os métodos estatísticos nos ajudam a chegar ao que se chama de “best educated guess”. Um palpite baseado em conceitos sólidos. Um palpite com esteróides, por assim dizer. Para isso é necessário lidar com a coleta, análise, interpretação, e apresentação de dados. É uma ciência útil para todos os campos, mas que também forma a base teórica dos campos mais “avançados” do momento, como ciência de dados e machine learning. Não perca a oportunidade de fazer esse curso com dedicação! Pode ter a certeza de que ele será útil no futuro.

Como foi Programming Fundamentals na UoPeople

A pergunta mais comum, quando digo que estudo Ciência da Computação, é: “Qual linguagem de programação você aprende no curso?”. Normalmente assim, no singular, como se existisse uma linguagem única capaz de expressar tudo e construir qualquer tipo de programa. Perguntas desse tipo são frequentes e revelam o desconhecimento das pessoas a respeito da tecnologia que nos cerca. “Hoje em dia todo mundo deve aprender a programar”. “Saber programar é uma habilidade em alta demanda”. “Milhares de vagas foram abertas para programadores”. Essas frases estão por toda parte: conversas de bar, artigos de jornal, anúncios e ofertas de cursos online. Programar é o Santo Graal da modernidade, capaz de resolver todos os problemas do mundo e de quebra garantir aquele salário anual de seis dígitos.

Programming Fundamentals é o primeiro curso de programação para a maioria dos alunos da UoPeople. É possível fazer cursos que trabalham com programação antes dele, mas é em Fundamentals que a atividade de programar está no centro do curso. Ele é a base para basicamente todos os outros cursos de CS da universidade, e de também nos ajuda a entender as limitações da computação. Ele remove a aura sagrada em torno do tópico e revela a dura realidade do ato de programar.

Os objetivos do curso

Em Fundamentals entramos na história e no desenvolvimento das linguagens de programação. Aprendemos como planejar um programa, antes de efetivamente programá-lo, utilizando modelos conceituais como pseudo code e fluxogramas, que ajudam a aprimorar a lógica de um programa, sua funcionalidade e execução. Desenvolvemos programas básicos em Python, e, finalmente, discutimos as vantagens e desvantagens de certos paradigmas de programação.

A introdução do curso destaca a importância de entender profundamente os tópicos, e não apenas completar burocraticamente os exercícios. São conceitos que serão revisitados constantemente nos cursos adiante, assumindo que já sabemos os fundamentos apresentados em Programming Fundamentals. É o alicerce de toda a construção que está por vir.

Como se preparar

Apesar do curso ser introdutório, recomendo entender o que será abordado com antecedência. Neste caso, é importante preparar a mente para entrar no “modo programador”. É o que em inglês chamam de mindset. Para minha (e nossa) sorte, nosso colega Dan Fletcher (que já citei aqui anteriormente) fez uma ótima postagem com o “manual de sobrevivência” para o curso. Ele dá dicas práticas de como instalar Python, a importância do processo de debugging, o conceito de ler-pesquisar-perguntar (read-search-ask), e compartilha sites excelentes para praticar o que aprendemos.

Para os ansiosos, vale dar uma “folheada” no livro do curso, Think Python. A versão online é dinâmica, com linguagem simples e ilustrativa. Ela contém vários exercícios interativos e que podem ser executados diretamente no navegador.

A dinâmica do curso

A UoPeople é consistente na estrutura dos cursos. Todos possuem exercícios de discussão (discussion assignments), diários de aprendizado (learning journals), e provas de múltipla escolha (graded quiz). Em Programming Fundamentals a diferença está nos exercícios de redação (written assignments), que se tornam exercícios de programação (programming assignments).

Os tópicos abordados nos discussion assignments giram em torno de conceitos genéricos de programação, como linguagens compiladas/linguagens interpretadas, linguagens formais, linguagens naturais. A maioria dos temas não possuem uma resposta absoluta, o que encaixa muito bem no formato de debate proposto. Quem espera só escrever código pode se surpreender. Os conceitos apresentados em English Composition 1 e 2 serão úteis aqui, especialmente se o instrutor for rígido com a qualidade dos textos e o uso de citações e referência APA.

Os exercícios de programação exigem a criação de pequenos programas de cálculo, de interface simples com o usuário e manipulação de documentos/dados. Quem tem experiência prévia com programação, mesmo que básica, não terá dificuldades. Praticamente todos os exercícios exigem a criação de um modelo conceitual em pseudo code/flowchart, que deve ser submetido junto com o código em Python. É um trabalho adicional que pode torcer o nariz de alguns, mas é uma forma excelente de praticar como documentar adequadamente o programa e garantir que o código seja claro para a revisão de terceiros.

Por fim, os testes de múltipla escolha abordam o conteúdo do livro Think Python e sobre a história da computação. É aqui que a quantidade de conteúdo pode ficar pesada. O curso utiliza o livro de Roy A. Allan, “A History of the Personal Computer”. É uma obra extensa, um tanto desorganizada e desatualizada, que entra nos mínimos detalhes de cada época na evolução dos computadores. Para evitar se perder na quantidade de informação, recomendo fazer os self quiz antes de ler os capítulos de cada unidade. Anote apenas o que cai nos testes e passe “superficialmente” sobre o conteúdo restante.

Mesmo com todas as falhas, o livro de história abre bastante a cabeça para a complexidade por trás do longo desenvolvimento da computação. Ele mostra como evoluções no hardware contribuem para evoluções no software, e vice-versa. Reúne publicações históricas de cada década, fala sobre a computação amadora, empresas como Tandy/Radio Shack, Altair, Namco e Atari. Processadores como o Intel 8008. Personalidades como Ada Lovelace, Charles Babbage, John von Neumann, Claude Shannon, Nolan Bushnell e Toru Iwatani.

Resumão

Este é um curso que vai além de muitos cursos introdutórios de programação que vemos pela internet. Não pela qualidade técnica, mas pela abrangência. Ele não se resume a ensinar o uso de variáveis, funções, operadores lógicos, estruturas de looping, data structures e data types. Ele vai além, misturando história, conceitos de desenvolvimento de software e exercícios práticos.

A habilidade mais importante de um cientista da computação é a resolução de problemas”. Este é um paradigma que devemos manter durante todo o curso. Não se trata de aprender essa ou aquela linguagem, mas de internalizar a capacidade de resolver problemas de forma estruturada. “Programar é o processo de quebrar uma tarefa grande, complexa, em tarefas cada vez menores e suficientemente simples para serem realizadas por instruções computacionais básicas”. Aprendemos que a tarefa mais difícil ao desenvolver um programa é conceitualizar suas instruções de forma organizada. Programar é resolver um problema, é atender uma necessidade. O programa deve ter um propósito.

Para alguns o parágrafo acima pode soar óbvio, mas sei que para outros tantos não é. É comum esquecermos esses princípios. Muitos se distraem querendo saber qual linguagem será a mais popular, ou qual linguagem é “melhor”. Descobrimos que não há resposta absoluta, e que muitas respostas dependem do contexto e do problema. Manter isso em mente é o melhor caminho para sobreviver à Programming Fundamentals e manter o foco durante a longa jornada em busca do bacharelado em Ciência da Computação.

Como sempre, estou à disposição em caso de dúvidas. É só comentar ou entrar no grupo de estudantes no Facebook.

College Algebra na UoPeople

Após longa pausa estou de volta com mais uma postagem da série de cursos da UoPeople. Um dos motivos do retorno é por conta do preparo que costumo fazer antes de retomar os estudos. Esta semana volto com Databases 1.

A revisão de College Algebra é especialmente especial porque é um dos cursos que geram mais perguntas dos estudantes. Também é o que causa mais ansiedade. É natural. Matemática não é o forte da maioria e a educação brasileira é, digamos, deficitária neste quesito. O objetivo aqui é tirar um pouco dessa ansiedade, ou pelo menos ajudar na identificação dos pontos fracos e fortes. Ficamos ansiosos com o que não conhecemos.

 

Descrição do Curso

O objetivo é fornecer uma base sólida em álgebra, trigonometria e geometria analítica. Quando se diz base, é porque realmente serão tópicos demandados nos demais cursos adiante, como Introdução à Estatística, Cálculo e Matemática Discreta, por exemplo.

O curso inclui o estudo de funções lineares, quadráticas e racionais, além de introduzir funções exponenciais, logarítmicas e cálculo de círculos. Mais uma vez, tópicos que serão revisitados em outros cursos adiante.

 

Dinâmica

O material principal do curso é o livro Precalculus, de Carl Stitz e Jeff Zeager. As unidades basicamente demandam o estudo autônomo dos capítulos, com sugestão de exercícios para completar em cada capítulo. Temos também aqui o fórum de discussão, peer-reviewed exercises e o learning journal.

A dificuldade de cada unidade varia bastante. Me considero um estudante fraco em matemática, mesmo assim não tive dificuldades específicas para aprender os conceitos. De qualquer forma, considerando a grade curricular padrão no Brasil, classifico o curso como sendo relativamente difícil. As unidades de polinomiais, funções logarítmicas e exponenciais e trigonometria são especialmente desafiadoras. A parte de trigonometria especialmente por ser no final do curso, quando já estamos com menos energia. Algumas, por outro, são relativamente simples, como funções e sistemas de equações.

Claro que essa percepção irá variar bastante de aluno para aluno, bem como a familiaridade prévia dos conceitos de cada unidade.

 

Crítica

Para mim, em termos de estrutura, College Algebra foi um dos cursos mais fracos da UoPeople até o momento. O conteúdo é espremido no conceito de discussion forum + learning journal + peer-reviewed exercises + self-quiz + graded quiz. Na prática não funciona muito bem. O instrutor da minha classe não estimulou o engajamento no fórum e as discussões foram, em sua maioria, burocráticas e entediantes. Alguns exercícios foram confusos, e o livro não é um exemplo de didatismo. São faltas graves no contexto de um curso online que se propõe acessível e moderno.

 

Exame Final

O formato do exame final é semelhante ao dos quizzes apresentados nas unidades, porém não espere perguntas repetidas ou simples. Creio que a prova é gerada aleatoriamente e no meu caso caíram várias questões de trigonometria, o tópico que estudei menos.

A prova deve ser realizada sob a presença de um supervisor. Como sempre, utilizei ProctorU pela comodidade e não tive problemas. Dentre os exames finais, este é o que possui as instruções mais detalhadas. É permitido o uso de calculadora simples, o que quase ninguém mais têm hoje em dia. Calculadora científica, celulares, tablets e dispositivos similares são proibidos. Não pode checar cadernos nem materiais de referência.

 

Dicas

A principal, de longe, é: revise o conteúdo com antecedência e estude por vias alternativas! É importante identificar os pontos fortes e fracos e atacar os fracos antes do curso começar. Os prazos são curtos, o conteúdo é intenso e matemática enferrujada não se azeita em dois meses. Use e abuse de sites como Khan Academy ou similares. O ritmo de estudo nele pode ser lento, mas os tópicos são explicados com muita qualidade. Você aprende a lógica por trás dos conceitos, o que o material deste curso, assim como a maioria dos materiais de matemática, não sabe ou não tem espaço suficiente para fazer com sucesso. A sensação é quase como ter um tutor particular.

Segunda dica: caso não entenda determinado tópico, não hesite em pedir ajuda para o instrutor, colegas ou grupos de estudantes. A inteligência coletiva faz milagres e as pessoas costumam ter recomendações excelentes.

Terceira e última dica: mantenha a consistência! Esse ponto foi o meu maior erro e afetou significativamente a minha performance no curso. Não deixe as coisas para o exame final. Complete todos os exercícios, por mais tediosos que eles possam ser. O esforço pode ser um pouco maior, porém é distribuído e fará você depender muito menos da nota no exame final. Nele os exercícios são aleatórios e alguns mal-diagramados. Não dependa da sorte.

Espero ter ajudado. Como sempre, caso tenham dúvidas, deixem um comentário!