Finalizo hoje meu aprendizado no curso "Programming for Everybody (Python)" do coursera.org, um dos mais famosos MOOCs na internet. Esse é meu segundo curso no Coursera, o primeiro que terminei... Foi uma experiência muito interessante, obviamente, eu um engenheiro de computação, não fiz o curso para aprender a programar, quis apenas conhecer um outro tipo de curso nesta plataforma, que só tende a crescer. Aproveitei para entender um pouco sobre Python, uma linguagem muito interessante, mas que eu nunca tive necessidade ou tempo para aprender...
Nesta oportunidade, uma das coisas que me chamaram a atenção foram os métodos de avaliação adotados, e não por acaso, é um desafio avaliar o aprendizado de um aluno a respeito de programação a distância, em especial milhares de alunos num mesmo curso. O professor Dr. Charles Severance bolou uma maneira interessante para fazer isso, ele criou um sistema que interpreta o código escrito pelo aluno (como o próprio Python) e compara ao resultado esperado. Esse sistema roda numa página online, que é integrada ao sistema do Coursera, onde a nota é calculada (10 ou 0 neste caso).
O método Autograder é obviamente bastante limitado se fosse avaliado a qualidade do código produzido. Mas não é este o objetivo deste curso. Sendo bem prático e simplista, o que realmente interessa é saber se o aluno conseguiu cumprir a missão. O "diamante poderá ser polido" pela experiência, como acontece em todo caso... Além desta avaliação, existe também o Quiz, que é um sistema de múltipla escolha, padrão para todos os cursos do Coursera. Como extra (não obrigatório) foi oferecido também o Peer Graded Essays, um sistema de dissertações textuais, onde quem avalia seu texto é um grupo de outros alunos (aleatórios e anônimos), que podem inclusive deixar uma mensagem visível ao avaliado a respeito do texto.
Mesmo sendo um extra, é realmente curioso o Peer Graded Essays, aliás, pode ser um ótimo método de estudo da língua inglesa. Porém o texto produzido não é avaliado quanto à gramática. De qualquer forma, eu tive este comentário em um dos meus textos: "I thought this programming essay was interesting and well written. I will mention that there were a few verbs that were in the wrong tense, but I liked the choice of words and the explanations.". Pela correria, eu não participei dos fóruns, mas é outra fonte de textos e oportunidades para "gastar" o inglês. Deixo abaixo a chamada e o texto que eu produzi como resposta, espero que não se importem em estar em inglês...
Missão: Write an essay as to why you think it is so difficult for many people to learn programming. If you are a skilled programmer think back to when you were first learning and talk about what worked and what made it challenging. If you have tried to learn to program and had problems - talk about the factors in how you were taught that lead to non-success. If you have never even tried to learn to program, talk about what you think will be the greatest challenge to learning to program. The maximum length of the essay is 600 words. Part of the reason for a word limit is to make you express your thoughts in an organized and somewhat succinct fashion. It is acceptable to have less than 600 words. References are optional - use them if it is appropriate for your essay.
Resposta: My opinion is that programming is difficult for most people because it is completely different from everything we learn on regular schools. I mean, we learn math, languages, science and also logic... But I guess that programming is something more than this, you need to understand how a computer works in order to create a code that makes sense therefore is useful...
When I first started programming, I was very excited about it. It was everything so magic, I was motivated to understand how could those a computer transform those instructions in useful results... I guess the most weird and hard to understand topic was recursion. But we get used to it, and we really understand its power when we study computer architecture, how the machine make things happen. Then we are completely able to use the full potential a computer has to offer!
Once people understands how a computer "think", things get a lot better. Then you just have to follow some good practices, and learn specific programming language functions and style. Time is our friend...
Missão: What is the impact of programming on our world? Does everyone need to learn programming? How might individual lives and society as a whole be changed if we found a way to include programming and technology at all levels of education? It is acceptable in your essay to disagree and say that programming should not be for everybody. Make sure that whatever position you take, that you support your argument.
Resposta: I do think programming is very important nowadays, because we use technology so much, and we are so dependent on it, sometimes we don't even notice... But we also depend on cars, but few people deeply understand how cars work. Every human has hormones, but not all of us know how they act on our body.
So, my opinion is that programming is important for all as a tool. I know everybody learns math, physics, science in schools, but not everyone will be an engineer. We also learn biology, chemistry, and not all of us will graduate in medicine. So, programming is very useful for teaching logic, for example. As we know more about math and biology, we understand more about our surrounding world, just like programming helps us to understand better our modern world, and also how can we apply the methodology, mandatory on a programmed routine, to daily tasks we must accomplish.
If programming and logic were taught on every education level, I'm pretty sure we would form much better scientists, educators, and why not say citizens? Programming is a good exercise of thinking outside our own point of reference. Luckily, we would be able to find sooner talented people for the computer science field, because it is more interesting to develop our natural fortress than to fight against our very nature and get medium results in the end.
Missão: You are now nearly through a first programming class (congratulations). There are many people that feel that at some point in the future, computer intelligence will surpass human intelligence. The word for this moment is called the "singularity". There are endless movies and books about the time where technology will become the master of the human race. What do you think about the singularity? Is it coming soon? What will life be like after the singularity? Will the singularity never happen? Is there a point in time where the impact of technology on our lives will be reduced as shown in alternate future scenarios like "steam punk"? You can pick any position you like but make sure to write in a way to make your point and support your arguments.
Resposta: Singularity, this is only a singular word that might not mean what represents today. The fact is technology is increasing so much that sometimes we catch ourselves thinking "this is not possible"... In other hand, as much as we study computer technologies, we understand the artificial aspect of this new intelligence.
Today children are able to learn how to setup very complete robot kits that were not possible about 8 to 10 years ago. Many of this sets are very useful on a daily base, most of them are useful to education. But those really inteligent softwares are the ones that need so much information, and they also need to be connected to other machines or an abundant source of information. This does not remind me human beings. Humans evoluted from nothing, in the beginning we had not even a language to communicate...
Those intelligent machines increase their knowledge based on a set of rules, their program, an algorithm, therefore they are limited by it's capability. We did not build a machine that can create intelligent algorithm, so the machines need humans to make them smarter. Anyway, machines are taking place of humans as workforce. To bad or not, labor is part of human need, maybe because we need to feel useful, to be part of something...
This is what I guess might be the biggest challenge, to fulfill all human needs, making everybody to feel useful and needed, when almost anything can be done precisely and faster than most people can do. But future is not lost, we built our reality, do not underestimate human evolution capability. We are still evolving.