Como aprender java na cadeira de lógica de programação?

Estou postando aqui porque a pergunta abrange didática e não somente o java.

Na minha faculdade adotam java já na cadeira de lógica de programação. Todos os exercícios são feitos nessa linguagem. Eu venho sentindo dificuldade porque é preciso conhecer não somente a lógica, mas as particularidades do java e o meu professor(repeti e já tive outro na mesma matéria que tem a mesma metodologia) não explica tudo e faz barreira quando algum aluno traz um conhecimento externo. Por exemplo, num trabalho extra pra ganhar pontos, se o aluno fizer jOptionPane ao invés de System.out.println, o professor quer saber o motivo. Imagine se for um código que não se pareça com o jeito que ele ensina. Aí é um interrogatório, vai querer saber onde aprendeu, o porque de fazer assim ou assado…
A coordenação aprova essa didática.
Se preocupam com a lógica e não com o java em si, pois diz que a cadeira é de lógica. Sim, mas se é de lógica, por que ensinam usando java?

Pra facilitar o que quero dizer, vai um exemplo:

Eu fiz um código assim:

[code]for( i=0; i<p.length; i++){
if(p[ i ] ==30){
System.out.println("30 se encontra na posição " + i);
}else{

}

}

System.out.println(“Não existe 30 em nenhuma posição”);[/code]

sem me dar conta de que mesmo que a primeira condição seja verdadeira, a segunda tbm vai ser exibida.
Pedi ajuda aqui no fórum e responderam que eu deveria fazer assim:

[code]for( i=0; i><p.length; i++){
if(p[ i ] ==30){
System.out.println("30 se encontra na posição " + i);

return;

}

}

System.out.println(“Não existe 30 em nenhuma posição”);
[/code]

Ou seja, que eu deveria usar o return. Mas os meus professores não ensinaram que eu poderia usar um return sem nada a seguir. Eles só explicaram que eu deveria usar return em métodos e dessa forma: return r, return m, return AlgumaCoisa.
Como então eu poderia adivinhar? Não vi isso nem nos livros. Só agora aprendi que posso usar return pra interromper um fluxo.

Então é ou não uma negligência por parte dos professores? Como eu posso aprender java de maneira correta, ter segurança ao fazer um exercício sem saber dessas particularidades do java? O jeito é perguntar mesmo nos fóruns, é assim que se aprende?>

O que acontece é que nas faculdades existem muitos professores que nào conhecem porcaria nenhuma de Java, mas insistem em começar a lecionar suas aulas usando a linguagem, pois “o mercado está usando Java e isso vai atrair alunos, os quais acharão nossa faculdade atualizada”.
É triste mas é verdade.
Onde eu estudei tinha professor que não sabia absolutamente nada de Java mas usava a linguagem como base para ensinar Linguagem de Programação 2 (normalmente em linguagem de programação 1 eles davam C). só que esses professores ensinavam Java sem usar NADA de orientação a objeto, na verdade tm gente lá que acha que orientação a objeto é utilizar componente gráfico.
Acho um absurdo um professor reclamar porque você utilizou algum recurso que ele não conhece. Se ele pretende usar Java para dar aulas, deve no mínimo conhecer muito bem o Java SE, isso seria básico.
Sobre JOptionPane x System.out, acho que ele deveria especificar que todo o programa deveria ser executado no console ou algo assim.
O fato é simples: grande parte dos professores da faculdade não programam de verdade. Não trabalham com isso, apenas dão aulas. Na maioria das vezes apenas repetem o que está escrito nos livrinhos toscos que eles ganham das editoras nacionais, os quais possuem conteúdo mediocre, igual à qualidade de boa parte dos nossos professores universitários.
É, faculdade particular é fogo…

Não é que seu professor não queira que você use coisas além do que ele ensinou.

Ele apenas quer verificar se foi realmente você quem fez aquilo e se você sabia o que estava fazendo!

Quantos de nós já não copiaram algoritmos da internet sem sequer saber o que significavam?

Sobre começar com Java, creio que uma introdução à algoritmos com Portugol seria legal. Ao menos que ele fosse explicando a parte de estrutura de controle com portugol… Assim o aluno aprende a projetar algoritmos e depois implementar na linguagem…

Quer aprender coisas além da disciplina? Vá em frente! E se prepare para a bateria de perguntas que teu professor vai fazer. Esse é o trabalho dele: te desafiar!

E te garanto que no fim do semestre, se você foi muito além, só vai ganhar a admiração dele.

Eu acho isso complicado… acho que introdução a logica é uma coisa meio delicada e deve ser feita em linguagem humana… dakele jeito bem basicão mesmo… (se não… fim se… ) e por ai vai… concordo com o Cassio disse… e por outro lado o que o Josenaldo disse tb é valido… ou seja… na minha opinião… o seu professor n deveria usar essa didatica… mas se usa faz com que vc corra mais atras (se realmente tiver pique) e com isso soh vc quem ganha…

quanto a correr atras em foruns e tutoriais… isso vc vai TER de fazer mesmo se tiver aula com o dono da SUN… isso faz parte da programação… ainda mais qu estamos falando em JAVA…

ABRAÇO!