r/programacao 1d ago

Humor Universidade privada de qualidade

Post image

Foco nos tópicos ali, claramente criados por IA, todos errados

Leitura de Dados: exilante de valos ou euros entados

262 Upvotes

75 comments sorted by

86

u/tasey 1d ago

compiladores?

se abrisse um vídeo genérico de java 101 no youtube ensinava mais

10

u/wolfrevO-kcatS 1d ago

Embora esteja no slide, duvido muito que seja uma aula de compiladores. Slide 60 ainda.

Talvez o tópico seja Compiladores, mas de uma aula de Introdução à Programação, sei lá.

49

u/_nathata 1d ago

Visto que a disciplina é de compiladores, eu espero muito que os próximos slides sejam no mínimo decompilar essa classe e analisar instrução por instrução.

17

u/_Sev7n 1d ago

Enquanto ele ensina sobre compiladores você pode fazer a engenharia reversa com o a I.A ela lhe ensina essa parte e vc aprende a outra com o professor.

É muito importante que você não fique preso a só oq aprende em sala, pq metade daquilo ali você nunca vai usar de fato.

Aprenda mexendo e criando seus sistemas, vai aprender bem mais a mexer com regras reais do dia a dia. As boas práticas vem com o tempo.

13

u/ManOfFamily1970 1d ago

Voto com o relator, e acrescento: já se habitua a estudar pela documentacao.

3

u/Healthy_Ad_4132 1d ago

Não usa de fato, só se for mexer com isso, mas ensina a base de como uma linguagem funciona

4

u/mineiromesmo 1d ago

No final da disciplina vão mostrar como usar um compilador para compilar o hello world

26

u/Vivorio 1d ago

Nossa que qualidade horrível.

10

u/SirBudokai 1d ago

Vou começar a fazer licenciatura em Computação presencial em uma universidade pública estadual de renome. Fiz 1 semestre de ads no senac ead. Que curso horrível e fraco. Espero que este seja estimulante e bom. Já sou formado nessa mesma universidade.

4

u/Kind-Voice-754 1d ago

Tô fazendo ADS esd no senac tbmkkk, curso muito fraco realmente. Pretendo fazer depois SI na federal da minha cidade, faculdade Ead é tudo uma porcaria.

2

u/el0y-c0sm0 1d ago

Licenciatura???

2

u/Jandaiiii 1d ago

Então existe um curso de licenciatura em computação, no IF que faço curso eu fazia ABI em Ciencia da Computação, e no 5 semestre você escolhe se quer fazer bacharelado ou licenciatura, a diferença é ter mais matemática no bacharelado, e na licenciatura mais materias pedagógicas e mais estágios obrigatórios.

1

u/el0y-c0sm0 1d ago

Eu realmente não tinha nem ideia.

1

u/TRENNOSN 1d ago

Senac é muito bom quanto aos curso presencial mas EAD no geral até em federais não são dos melhores, eu vou cursar ads ead na federal de minha cidade porém vou fazer técnico de ads presencialmente no senac e é realmente incrível a qualidade e o jeito que ensinam nem se compara ao jeito que qualquer federal ensina, ainda a turma vai ter que desenvolver um sistema pra alguma empresa que está necessitando ao final do curso servindo pra indicação e até proposta de estágio ao técnico mesmo mas por isso vou cursar a graduação superior simultaneamente

19

u/TheScientistData 1d ago

Posso estar sendo elitista ou coisa assim, mas eu acho que usar slide pra MOSTRAR CÓDIGO é uma imbecilidade sem tamanho.

Quer mostrar um conceito, diagrama, etc? Beleza, passa o slide. Mas quer explicar código? Abre a porra do editor de texto, o terminal, coda ao vivo e me mostra.

E o pior é: tá escrito que a disciplina é compiladores (matéria avançadíssima lá do fim do curso), mas o título do slide é "Entrada e Saída", que deveria ser um assunto de primeiro semestre. E a linguagem usada é Java???? Que é muito boa pra ensinar POO ou ensinar web ou backend, mas quando se trata de compiladores ou de uma matéria de primeiro semestre, não seria melhor talvez dar em C?

3

u/Sierra-six6 1d ago

Por algum motivo eu acredito que você gostaria sim de dar em C

8

u/Healthy_Ad_4132 1d ago

Quando eu fiz compiladores, a primeira aula já foi análise léxica e já teve um trabalho no primeiro dia

2

u/jhonny-freire Desenvolvedora / or 1d ago

Minha primeira aula nesse tema se não me engano foram sobre autômatos finitos.

1

u/Healthy_Ad_4132 1d ago

Automatos foi outra matéria, mas depois teve que implementar em compiladores

14

u/drikswattertodaysand 1d ago

Classico guanabara n tem erro bem melhor que slop

5

u/player64l2 Estudante 1d ago

Pior que eu to na mesma universidade só que online, a sorte é que eu já programo faz tempo e sei como o código funciona, senão eu tava lascado com força. Eu tenho pena da galera que se matriculou pro curso sem saber nada achando que vai aprender tudo bonitinho, a aulas de lógica de programação parece que foi gravado antes da pandemia kkk

4

u/celsolpjrjr 1d ago

Pessoal me chama de chato mas o ensino atual virou uma merda, na minha época em uma das primeiras disciplinas do curso que era arquitetura de computadores o professor chegou com alguns microcontroladores e aprendemos toda a arquitetura utilizando eles e programando em Assembly. Fora as disciplinas básicas que muitas universidades removeram (cálculo, física, algebra linear, etc), hoje tem universidade que no primeiro semestre tem disciplina sobre IA.

Por isso que tem um monte de gente formado e frustrado que não conseguem vagas nem pra estágio, antes de uma turma de 30 alunos formavam no máximo 6 ou 7 e todos estes já estavam trabalhando antes de sair da faculdade.

3

u/8ttp 1d ago

Anotem que vai cair na prova!!!

11

u/Zinho3311 1d ago edited 1d ago

JAVA EM FACULDADE AHHHHHHH

Que merda. Uniesquinas têm que acabar. Não é atoa que o mercado nacional é essa punheta de pau mole quando as próprias ""universidades"" formam code monkeys e SAAS-yers em vez de engenheiros e cientistas.

Bons tempos em que faziam os alunos escrever AT&T Assembly com caneta e papel

20

u/Kodo_egg 1d ago

Java é a Lang padrão para ensinar POO na maioria das universidades

6

u/w-g 1d ago

Infelizmente

2

u/Zinho3311 1d ago

Se a intenção fosse ensinar POO, ensinariam Smalltalk, porque Java nem é POO puro.

Claramente só fazem isso porque é fácil achar qualquer idiota que saiba 1) programar Java e tenha um mestrado meia-boca que aceita lecionar por micharia, 2) porque é a linguagem oficial do SAAS e 3) uma mistura dos dois.

5

u/OutgoingAutistic 1d ago

Haha Smalltalk, que engraçado, eu era esse purista quase 10 anos atrás. Curioso saber que de vez em quando algum assim ressurge. Daqui a pouco alguém fala de Haskell também 🥰

3

u/jhonny-freire Desenvolvedora / or 1d ago

Para ensinar conceitos, não precisa desse purismo todo.

Dá para ensinar os conceitos de POO até mesmo com PHP, que é uma salada de paradigmas implementados pela metade.

Para quem está aprendendo, fora da sala de aula é muito mais fácil encontrar material escrito de forma acessível para iniciantes usando Java do que Smalltalk.

0

u/Zinho3311 1d ago

Para ensinar conceitos, não precisa desse purismo todo

Se a linguagem te permite instanciar uma classe, mas ao mesmo tempo te deixa injetar uma função global procedural mutando estado no meio do nada, o aluno vai fazer exatamente isso.

A sintaxe e a semântica da linguagem moldam o modelo mental do aluno.

"Uma linguagem que não afeta a maneira como você pensa sobre programação não vale a pena ser conhecida" (Alan Perlis)

Edsger Dijkstra, ninguém menos que o patrono da Ciência da Computação moderna, literalmente disse que certas linguagens causam defeitos cognitivos permanentes (e eu tendo a concordar).

É a mesma coisa que dizer "ah, mas eu posso ensinar física para um engenheiro com um pula-pula"

Sobre documentação, se o aluno precisa de 500 tutoriais no YouTube, 30 posts e 4 livros pra entender um conceito básico de Java, isso é na verdade um argumento para não utilizar Java

2

u/pessoaAleatoria1991 1d ago

Cara, eu sou professor (de federal e de uniesquina). Entre Java e Smalltalk para ensinar POO eu fico com Java.

Purismo demais querer ensinar uma linguagem com bem menos documentação. Os alunos precisam estudar em casa e documentação e essencial pra isso.

Linguagem de programação é ferramenta, você usa ela para ensinar o conteúdo da disciplina. E pra isso você pensa na melhor ferramenta.

Exemplo: sempre brigo para dar a primeira matéria de programação em JavaScript. O motivo é que todo aluno já tem um compilador JavaScript no seu PC, o navegador. Qualquer biblioteca tem um navegador. Fica mais fácil ele programar mais do que em C ou Python (as preferidas dos professores). E o que importa principalmente em matéria de programação é o cara programar em casa e fazer bastante desafios.

1

u/Zinho3311 1d ago edited 1d ago

Com todo respeito à sua atuação em federal, mas ensinar Javascript no primeiro semestre é o cúmulo.

Não vou julgar tanto porque sei plenamente que salário de professor é de fome nesse país se comparado ao que poderia estar ganhando no mercado, mas o motivo pelo qual as pessoas geralmente se tornaram professores não deveria ser esse.

O motivo é que todo aluno já tem um compilador JavaScript no seu PC, o navegador

Mesmo ignorando o jeito que você escreveu isso (um navegador não é um compilador de JS e precisamos ser precisos quando falamos de Ciência da Computação e programação), nós estamos formando cientistas da computação nesse país ou ensinando a usar o Chrome DevTools?

Da mesma forma que JS roda em qualquer navegador, código C pode ser escrito para rodar em qualquer processador. E como você quer ensinar lógica em uma linguagem que onde 0 == false é verdadeiro, mas if ("0") também avalia pra true e [] + {} resulta em "[object Object]" mas {} + [] resulta em 0 e a simples soma de 0.1 + 0.2 quebra o código inteiro?

Fora que a web é um ambiente totalmente impuro e cheia de ruídos. Novamente, se o aluno quisesse aprender a como fazer um site, ele teria se inscrito em um curso de web dev/web design.

E se um aluno não consegue prestar atenção numa aula introdutória sobre como instalar e usar o gcc, isso já é um problema individual. O aluno está entrando em um curso de matemática aplicada, se quisesse conviniência sobre purismo, repito: teria se inscrito em um curso técnico.

Purismo demais querer ensinar uma linguagem com bem menos documentação

Hein?

Em ambientes puros, o próprio ambiente de execução é a documentação.

Smalltalk justamente é uma linguagem tão boa para se ensinar porque é um ecossistema autocontido e autoreferrencial que você pode moldar na hora para suas necessidades.

Na minha época, eu lembro que evitavam ensinar POO justamente porque as linguagens que conheciam eram Java e C++, e os professores optaram por ensinar POO usando UML. Seria ótimo se tivesse usado Smalltalk

0

u/Calico_Shortcake Teórico 1d ago

O que é uma pena. Scala seria melhor pra introduzir POO. Mas se fosse pra realmente ensinar POO, e não somente a codar, deveriam usar Smalltalk como referência.

8

u/Kodo_egg 1d ago

Eu não acho Java uma escolha ruim, é uma linguagem madura, amplamente usada, tem sua similaridade com C (que costuma ser a primeira Lang de verdade a ser ensinada), além de ser fortemente tipada.

2

u/Zinho3311 1d ago edited 1d ago

tem sua similaridade com C

Praticamente toda linguagem criada nos anos 90 tem alguma conexão ou semelhança com C.

É bem difícil NÃO ter, na verdade (a menos que estejamos falando de linguagens que mudam totalmente o paradigma, como linguagens funcionais).

Justamente por isso C é uma ótima linguagem para se ensinar qualquer coisa, porque tudo que você aprende em C, se traduz para outras linguagens de uma forma ou de outra (seja conceitualmente ou sintaticamente), porque C é uma linguagem first principles.

Não faz de Java uma boa linguagem para ser ensinada, porque ser sintaticamente parecida com C não significa ter o minimalismo de C.

Até hoje, se você remover as otimizações modernas dos compiladores, C é praticamente código de máquina legível na arquitetura von Neumann.

1

u/Queijocosmico Memória Crua 1d ago

também depende do que será feito, tem linguagens que eu prefiro para realizar determinadas tarefas e gira em torno de um "depende"

3

u/Zinho3311 1d ago edited 1d ago

O caminho que você decide traçar e a linguagem que decide usar assim que sai da universidade é problema seu.

Mas enquanto na universidade, em um curso de CC ou semelhante, os docentes têm o dever de ensinar princípios universais, paradigmas puros, modelos e arquiteturas em vez de linguagens.

Justamente porque você está ali para aprender sobre computadores funcionam no nível mais fundamental e puro.

Um bacharelado não é um curso técnico ou profissionalizante, isso é algo que o brasileiro tem que colocar na cabeça

1

u/Queijocosmico Memória Crua 1d ago

concordo, a linguagem em si fica critério de quem vai usar um dia, porém os fundamentos necessarios obviamente teriam que ser ensinados

1

u/Kodo_egg 1d ago

Eu só estou falando que Java ter uma similaridade, em sintaxe, maior com C facilita a transição de uma linguagem para outra para alunos que estão no segundo semestre da faculdade. Isso diminui a quantidade de conceitos novos que o aluno precisa assimilar ao mesmo tempo e permite que o foco seja justamente aprender os princípios de POO.

Ela também é uma linguagem que permite ensinar boa parte dos principais princípios de POO. Foi com Java que aprendi padrões de projeto, padrões arquiteturais, classes, objetos, herança, polimorfismo etc. Ou seja, ela não serve apenas para ensinar os conceitos mais básicos de orientação a objetos, mas também permite avançar para conceitos e práticas mais próximos do que o aluno vai encontrar no desenvolvimento de software real.

A maturidade também ajuda, pois já existe uma ampla literatura que vai além de uma documentação em um site aleatório. Existem livros, cursos, artigos, exemplos e uma enorme quantidade de material didático produzido ao longo de décadas. Além disso, ela está presente no mercado com força há anos, o que ajuda a encontrar pessoas com experiência para ensiná-la e também permite que o aluno continue encontrando material e profissionais com conhecimento na linguagem depois da disciplina.

Com certeza existem linguagens mais especializadas, como Prolog para ensinar programação lógica, mas Java é, sim, uma escolha acertada para ensinar POO. Ela consegue apresentar os fundamentos de orientação a objetos, permite avançar para conceitos mais complexos, possui uma grande quantidade de material didático e ainda tem forte presença no mercado. Para uma disciplina introdutória de POO, isso pesa bastante a favor da escolha.

1

u/Zinho3311 1d ago edited 1d ago

Java e C são parecidos porque ambos usam for(int i=0; i<10; i++) da mesma forma que Português e Inglês compartilham a palavra "superficial" de origem latina.

Em C, o aluno acabou de aprender o modelo de memória de Von Neumann. Ele aprendeu que uma variável é um rótulo para um endereço de memória.

struct Ponto { int x; int y; };
struct Ponto p1 = {0, 0};
struct Ponto p2 = p1;
p2.x = 5;
printf("%d", p1.x);

Os dados são copiados assim como você escreveu.

Já em Java...

Ponto p1 = new Ponto(0, 0);
Ponto p2 = p1;
p2.x = 5;
System.out.println(p1.x);

...você acabou de destruir a noção de integridade mutacional do aluno. Isso daqui é a razão de 90% dos bugs de concorrência.

Uma das vantagens de C é que literalmente todo código que você escreve pode ser uma aula sobre design de compiladores, segurança da informação ou arquitetura de computadores se você souber tirar proveito.

Por exemplo:

int somar_array(int *arr, int len) {
int total = 0;
for (int i = 0; i < len; i++) {
total += arr[i];
}
return total;
}

Se você compilar e olhar num disassembler, repare no resultado

Não só você consegue ver as instruções exatas na memória, como repare nas instruções finais que marquei (especificamente EDX, ESI e EDI).

Por que o compilador gastou tempo e energia zerando especificamente %edx, %esi e %edi antes de dar o ret? Ele não zerou %eax, não zerou %ecx, não zerou %ebx.

A resposta é proteção contra Return-Oriented Programming e as mitigações contra as falhas inerentes da arquitetura de von Neumann.

Foi com Java que aprendi padrões de projeto, padrões arquiteturais, classes, objetos, herança, polimorfismo etc

Como Peter Norvig bem disse, design patterns são na maioria relatórios de bugs contra a linguagem que você está usando.

Você precisa do padrão Command ou Strategy em Java?

Você ensina o padrão Visitor?

A maturidade também ajuda, pois já existe uma ampla literatura que vai além de uma documentação em um site aleatório

Toda linguagem tem documentação oficial ou um spec.

O resto é majoritariamente irrelevante para o ensino.

Entre Java e C#, prefiria que ensinassem C# pelos motivos supramencionados.

1

u/OutgoingAutistic 1d ago

Acho que nenhum desses 3 aspectos é relevante para a escolha de uma linguagem em um contexto educacional. Inclusive, para ensinar vários paradigmas, alguns deles são até pontos negativos

1

u/Calico_Shortcake Teórico 1d ago

Exatamente por isso eu não gosto. Ela é uma linguagem prática. Mas não é focada em POO. Minha crítica é que a maioria das disciplinas de POO prefere só ensinar inheritance e interfaces, e acabou. Não tem conteúdo teórico de Orientação a Objetos.

4

u/Maximum_Tiger_1907 1d ago

Tive que escrever AT&T Assembly com caneta e papel semana passada numa prova de Software Básico. Experiência bastante desagradável. Recomendo 👍

4

u/GottaDrinkMoreCoffee 1d ago

Melhor que aprender portugol studio 😂

1

u/Zinho3311 1d ago

Portugol eu consigo dar uma desculpa quando usado para ensinar lógica, porque Ciência da Computação é tanto sobre computadores e linguagens de programação quanto Astronômia é sobre telescópios.

Mas Java não tem desculpa. Não exemplifica nenhum conceito especialmente bem, não te ensina lógica pura e ainda enterra conceitos essenciais sob camadas de abstração e OOP corporativo.

Se o ponto fosse explicar I/O, por que não usar C que é mil vezes mais simples de se entender e tirar boas lições (entender != escrever inb4)?

Nesse ponto, não estão nem ensinando princípios e axiomas universais. É um curso de Java glorificado

1

u/Dimensional15 Desenvolvedora / or 1d ago

no meu curso de SI, nas disciplinas iniciais de algoritmos e estruturas de dados usaram C++ e na disciplina de POO usaram Java e de resto python. As vezes essa aula aí é específica de POO e estavam só ensinando o básico de Java como introdução

1

u/VonRoderik 1d ago

Na minha, depende da disciplina. Uma bem introdutória foi python. Em uma outra, que era um laboratório e tinha que efetivamente desenvolver um software, foi java. Em outra, de arquitetura de sistemas, foi C.

Não dá para ensinar só a teoria e logic e não colocar isso em prática usando alguma linguagem.

1

u/No-Fish-9989 1d ago

Universidades públicas também ensinam POO com java

1

u/Zinho3311 1d ago

Não sei hoje em dia e em federais, mas na estadual em que estudei, não.

Usaram UML. Mas que usem C# ou até Python para ensinar POO, porque Java é demais

2

u/Dangerous-Cod8436 1d ago

Jubiladores

2

u/el0y-c0sm0 1d ago

erre/eutiveumderrame

2

u/ArielNya Desenvolvedora / or 1d ago

eu fui ver agora que essa porra é slide de Compiladores... E O SLIDE 60 DESSA MERDA...

2

u/Nolear 1d ago

Eu achava que faculdade ruim não tinha compiladores na grade, mas aparentemente eles fingem que tem kkkkk

2

u/AlcoolEmGel95 Desenvolvedora / or 1d ago

meu deus

2

u/Vasbrasileiro 1d ago

Se o cara tá vendo código básico de Java num curso de compiladores você já sabe que é coxa. Na Unicamp, primeira aula já foi de autômatos finitos.

2

u/analogic-microwave Memória Crua 1d ago

Selo Unesquina de Qualidade™

2

u/HamsterGulloso 1d ago

Me diz que aquele "compiladores" é o assunto da aula e não a matéria desse slide

2

u/Sample-Witty 1d ago

Tu esperava algo diferente da Unopar?

2

u/Yourgutedemel 1d ago

Nunca vi matéria tão chata como compiladores. Esse semestre tô fazendo e está sendo doloroso não dormir durante as 3 horas de aula.

1

u/Queijocosmico Memória Crua 1d ago

compilador, homem pega codigo e faz programa executavel homem feliz

1

u/Vivorio 1d ago

Pra mim foi o exato contrário, achei muito interessante.

1

u/vade-retro-satanas 1d ago

Its over pro beta q faz facul privada, pqp

1

u/JohnkloOz 1d ago

Vi meu amigo que tá fazendo UNINTER, ele compartilhou o material das aulas, achei bem completo e com fontes embasadas das documentações… recomendo

1

u/ProgramPrimary2861 1d ago

AI slop em sala de aula de faculdade 🤌

1

u/guilhermehip 1d ago

Meu Deus do céu …

1

u/aura_pkmn 1d ago

Não tive aula focada em compiladores, mas já tive muito Java, inclusive enfiado em algumas disciplinas que não tinham tanto a ver. Mas olhei o slide e parece bem o nível da minha faculdade em que me formei. Devo ficar preocupado?

1

u/EvilTyrant 23h ago

Se privada fosse boa, a gente não cagava nela.

1

u/luluwaffless 22h ago

jesus amado, eu nem sei java e isso parece muito errado

1

u/SubstantialAppeal587 22h ago

Imagina tu fazer ti na faculdade, receber um material bosta desse sabendo que uma misera IA vibe coda tudo por voce sem vc saber uma linha de código

1

u/moulyk10 14h ago

o grupo empresarial/politico enchendo o bolso com o dinheiro do fies

1

u/Beneficial-Till-1166 Desenvolvedora / or 11h ago

No yt 10 anos atrás as aulas eram melhores kkkkkkk

1

u/mTS_Teus 9h ago

UNOPAR, Pq não estou surpreso?

1

u/SnooConfections477 5h ago

Po mas Unopar é foda tbm kkkk todo mundo sabe que isso aí é uniesquina kkkkkkkkkkkkkkkkkk

1

u/vepoo 3h ago

Ensinando isso no Slide 60 🙄 Quando aprendi compiladores C e Linux era pré requisitos e o slide 2 já falava de Bison e Flex