Linguagens de programação nas faculdades

[quote=andre_mbm]Vini, não tem graça estrutura de dados em Java. O aluno vê superficialmente.
O que o aluno vai aprender? Como ele vai saber manipular ponteiros, como ele vai saber fazer alocação de memória? Como ele vai entender o fluxo de uma lista ligada ou duplamente ligada de uma forma profunda em Java? Grafos?

[/quote]

André, pra isso servem as referências aos objetos. Elas podem muito bem substituir os ponteiros de linguagens com C,C++ e Pascal. É só não usar as estruturas prontas da linguagem. Eu só não gosto de que se ensine Java para estruturas de dados, porque mesmo pra um programa simples em Java rodar, o aluno tem que saber o básico de OO, e quase sempre a turma ainda não viu isso, acho que isso acaba tirando a atenção do objetivo de se aprender estruturas de dados.

Na minha faculdade (de SI), nós praticamente víamos uma linguagem nova a cada semestre (é, cada professor tinha a sua preferida). Em lógica de programação trabalhamos o Portugol (lembram?) e vimos uma pincelada de Haskel. Estrutura de dados foi com Pascal. Linguagem estruturada foi com C, Linguagem estruturada pra Web foi PHP e Linguagem OO e Linguagem OO pra Web foi Java, em Projeto de Banco de dados o professor deixou livre e eu usei VB .NET (tava de saco cheio de linguagens C-like).

[quote=andre_mbm]Vini, não tem graça estrutura de dados em Java. O aluno vê superficialmente.
O que o aluno vai aprender? Como ele vai saber manipular ponteiros, como ele vai saber fazer alocação de memória? Como ele vai entender o fluxo de uma lista ligada ou duplamente ligada de uma forma profunda em Java? Grafos?[/quote]

E quem disse que tem que manipular ponteiros para saber estrutura de dados? As referências mais do que atendem o que é necessário. A lista ligada existe em java, sem aquela parafernalha toda de malloc e calloc. Se quer uma linguagem de mais baixo nível, que force o aluno a dar “deletes”, use então o C++. Também é OO, usa uma sintaxe muitíssimo mais amigável e deixa o aluno “ver” que está apagando coisas, com um delete bem camarada.

Aliás, OO é legal porque deixa as estruturas bem destacadas. Modela-se o nó, pode-se fazer a distinção da estrutura nó e do seu valor, etc.

Grafos por si só já é uma matéria espinhosa. Os algoritmos para percorrer grafos são complexos, e não tem porque torna-los ainda mais penosos com uma gerência de memória de baixo nível.

Acho que tem é a confusão aí. Alocar e desalocar memória é uma coisa, estruturas de dados é outra completamente diferente. Em Java e C# é possível estudar estruturas de dados numa profundidade tão adequada quanto em linguagens de mais alto nível, sem aquela parafernalha toda de ponteiros, ou de um ambiente onde as IDEs são primitivas e o depurador ajuda muito pouco.

[quote=ovelha]Fala sério que vc é de Santa Rita do Sapucai! Eu vou ai no carnaval, no bloco do urso.

Eu conheço prq a minha familia toda é de Borda da Mata, fica a uns 50k dai. Conheço bastante gente que se formou na escola tecnica dai.[/quote]
Huahua…sou sim. O bloco esse ano vai dar mais de 6000 pessoas.

Meu Deus… a gente ouve cada uma…[/quote]

Vini, não tem graça estrutura de dados em Java. O aluno vê superficialmente.
O que o aluno vai aprender? Como ele vai saber manipular ponteiros, como ele vai saber fazer alocação de memória? Como ele vai entender o fluxo de uma lista ligada ou duplamente ligada de uma forma profunda em Java? Grafos?

[/quote]

Questão de ponteiros e gerência de memória não tem nada haver com algoritmos, e sim com performance. Um algoritmo pode ser muito bem implementado em qualquer linguagem, assim como qualquer estrutura de dados.

Em trabalho de processamento de imagens, eu usava pascal com delphi, e meu professor o pascal com lazarus, meus filtros processavam a imagem mais rápidos que os filtros dele, porque eu usava ponteiros, mas os algoritmos eram os mesmos.

[code]var byteArray:TByteArray;

for j:=0 to bitmap.height()-1
begin

byteArray:=bitmap.ScanLine(j);

[/code]

ou

[code]

for j:=0 to bitmap.height() -1
begin
for i:=0 to bitmap.width()-1
begin
bitmap.getPixels(y,j);[/code]

Uma simples questão de performance, mas não alterou o algoritmo de mapeamento da imagem.

Quem estiver interessado em processamento de imagens com pascal, esse site me ajudou muito na universidade:

http://www.efg2.com/Lab/

Bom tive
algoritmos em C
programação 1 em C
programação 2 em JAVA
programação 3 em .NET

achei muito produtivo, tenho sorte de não conhecer cobol ou delphi…