-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remover matérias de Programação Orientada a Objetos #2
base: master
Are you sure you want to change the base?
Conversation
Nota: o conteúdo desta matéria não necessariamente será excluído do curso, mas sim será transformado em optativo. |
+1 |
Uma coisa é querer adicionar uma matéria de algoritmos (considerando que os alunos realmente tem uma base fraca nessa área). Outra coisa é remover uma das matérias mais importantes dentre aquelas que já existem nas primeiras fases. Ai você remove programação orientada a objetos e vai pegar um cara na quinta fase que sabe fazer muito bem um algoritmo mas que vai fazer um código espaguete igual faziam a 30 anos atrás. Ai pega e coloca esse mesmo cara pra trabalhar em um projeto em equipe pra ver o que acontece. Foi falado ali das disciplinas de engenharia de software e nisso eu concordo. Agora, programação orientada a objetos é uma coisa totalmente diferente. Programação é com o que boa parte que se forma no curso vai trabalhar. Sempre lembro de quando fiz SO 2 com o professor Guto. Essa é uma das matérias onde boa parte das coisas precisam ser programadas em baixo nível. Lembro de varias aulas onde o professor criticava a falta de organização e de legibilidade dos códigos. Criticava ainda a falta de utilização da orientação a objetos. Mais do que isso, ele mostrava dois códigos diferentes que geravam exatamente o mesmo assembly. A diferença era que um código podia ser facilmente compreendido e o outro, ao menos que o cara seja o Knuth, era uma merda pra ler. Ninguém vai aprender a fazer um código descente com uma matéria de algorítimos. Da mesma forma, ninguém vai aprender a fazer um algorítimo com uma boa performance na matéria de programação orientada a objetos. Uma coisa não exclui a outra. Achar que essas matérias são mutualmente exclusivas no inicio curso é querer pender muito ou para ou lado ou para outro. |
@lucasPereira desculpe se dei a entender ou realmente escrevi que o conteúdo seria removido, não é a ideia. A ideia é apenas retirar ela como matéria específica, visto que orientação a objetos é apenas um dos paradigmas que deveríamos aprender, mas deveria ser relocado para outro momento no curso. Aliás, acho que sua visão de orientação a objetos é um pouco fora do real. Orientação a objetos não é o que aprendemos na ementa: classes e objetos com métodos não são exclusividade de OO, podemos aprender essa parte facilmente, por exemplo, implementando estruturas de dados; polimorfismo também não, visto que linguagens funcionais usam muito isso; muitas vezes aprendemos a fazer código na base da gambiarra nessas matérias (extraoficialmente, hehe). Acredito que pra saber realmente o que é usar objetos (e outros paradigmas!!!), primeiro precisamos de uma base sólida de como programar de verdade. Construindo essa base sólida, e tendo alunos que sabem quando usar ponteiro e quando usar referência, ou como saber se o seu algoritmo realmente faz o esperado, aí sim podemos partir pra técnicas mais avançadas de organização de código. Claro que esta é minha visão, um pouco afetada por eu já ter feito um curso técnico antes e ter estudado bastante programação; entrei com a base necessária para entender corretamente OO e vi colegas de turma terem muita dificuldade por não ter essa base. Obrigado pelos comentários e faça suas sugestões no repositório também :) |
Sexta feira passada tivemos uma reunião ente o Calico, o PET e mais alguns convidados para debatermos esse assunto da mudança. A ideia que surgiu sobre POO nela foi de retirar isso do começo, onde o aluno não tem como entende-la completamente, ou pelo menos não tão facilmente quanto depois, e coloca-la mais a frente. Não sei se concordam, mas além disso, creio que uma só matéria de POO, com seis créditos e uma ementa totalmente nova, seria o ideal |
Acho interesante a ideia do @Ionneto sobre a reformulação da ementa da matéria de POO. Vejo que a matéria de POO, como é dada hoje, funciona meramente como uma introdução a programação e pouco tem a ver com o paradigma. @ranisalt valeu pelo feedback. Entendi o seu ponto, embora ainda discorde em alguns aspectos :-) E sim, tão logo que tenha mais tempo farei comentários no repositório também. Abraço; |
Claro, a ideia é sim ter mais programação, mas programação de mais alta qualidade também. Não só aprender a escrever código, mas também otimizar esse código, saber se ele realmente está correto, saber sua complexidade e muitas outras coisas importantes que quase não são citadas. |
Adicionando UFCG
Abstraindo, à nivel de curso e ciência, aprender orientação a objetos separadamente não faz sentido. Veja esta imagem extraída da Wikipédia:
Existe uma infinidade de paradigmas, cada um solucionando um problema específico. Por que é dedicado um ano aprendendo apenas um deles e nem mesmo a (grande) maioria dos outros é mencionado durante o curso? Afinal, cientistas da computação são solucionadores de problemas e devem aprender múltiplos paradigmas, e não apenas um escolhido arbitrariamente.
Havendo quorum suficiente (comente +1), aplicarei este merge request na linha principal. Sugestões são sempre bem vindas.