Dicas para melhorar apostilas FJ-11 da Caelum

21 respostas
andre.obueno

Olá, bem, estou aprendendo Java na faculdade e estou complementando meus estudos com a FJ-11 da Caelum.

Primeiramente gostaria de parabenizar a equipe da Caelum, a apostila é muito boa, porém, tem algumas coisas que ficam meio vagas, creio que isso ocorre com todos.

Bem, enfim, gostaria de criar um tópico aqui, onde todos possam enviar dicas e sugestões para melhorar a apostila, e também, ajudar quem está com alguma dúvida em alguma parte da apostila.

Vou começar, sugerindo uma coisa:

Estou no capítulo 11 da apostila (controlando os erros com excessões) e ao adicionar throws FileNotFoundException no código, sempre obtinha um erro: FileNotFoundEsception cannot be resolved to a type. Após pesquisar um pouco, descobri que para este exemplo, é necessário se importar uma biblioteca, sendo ela: import java.io.FileNotFoundException;

Enfim, acho que seria interessante se na apostila estivesse explicito que é necessário importar essa biblioteca, pois, quem está estudando pela mesma, ainda nem sabe o que é um import, e então, fica impossível testar as excessões…

É isso, quem tiver mais sugestões, pode contribuir também, para tornar a apostila melhor ainda do que já é :smiley:

T+

21 Respostas

khaoz

Se não me engano, nessa altura a apostila já esta usando o eclipse para os exemplos e ai basta executar o atalho para os imports serem adicionados automaticamente.

andre.obueno

Sim, todos os exemplos utilizam o eclipse, o problema, é que nesse ponto da apostila, ainda nem foi dito o que é um “import”, então, pra quem está aprendendo com a apostila (iniciante de verdade), sem o auxílio de um professor ou conhecimento de outra linguagem, fica difícil descobrir o problema… e mesmo vendo a sugestão de importação automática do eclipse, não saberá do que se trata…

Seria mais fácil se no início do capítulo (ou dos exemplos) estivesse explícito que se deve colocar a linha “import java.io.FileNotFoundException;”, e dizendo que mais pra frente seria explicado o porque desta linha…

t+

cristianonasciment

se o kra chegou no capitulo 11 de uma apostila e não souber importar uma classe q está faltando ai não é a apostila q tá errada.

T

Mas as pessoas normalmente não lêem linearmente as apostilas ou livros, portanto pode ser que você saiba um recurso avançado antes de saber um recurso básico, e não tenha a prática de usar Ctrl+Shift+Alt+Window+X ou outros atalhos do Eclipse. É sempre bom pôr (mesmo que seja um rodapé) a história do “import”.

andre.obueno

Ola Cristiano, o problema, é que mesmo seguindo a apostila, até agora nao foi falado nada de imports… e pra quem não sabe nada, e está realmente aprendendo java do zero, nem sabe o que é uma biblioteca… aí fica difícil. Creio que com uma nota de pelo menos dizendo pra importar a biblioteca facilitaria bastante, e tendo em vista que incluir essa informação é bem simples :slight_smile:

t+

T

Como já foi bastante discutido aqui no GUJ, as apostilas da caelum são para serem usadas durante o curso, logo, quem apenas as le pode ficar ‘boiando’…

quanto as exceptions, de uma olhada nesse link:
http://lucabastos.blogspot.com/search/label/Exceptions

maior_abandonado

apenas uma opinião.

ele não tinha visto um material a respeito ainda, se virou sozinho para descobrir o problema, e veio com boa vontade (ao menos creio eu, ja que li a paalvra “sugestão”), e a duvida dele pode ser de outros tb… essa é uma utilidade de deixar nos tópicos do forum a resolução do problema que teve…

andre.obueno

Cheguei no capitulo 12 e olhem o nome do capítulo: “Pacotes - Organizando suas classes e bibliotecas”

Agora estão explicando o que são packages, imports, etc., então, pra quem está seguindo a apostila inteira (como eu), ainda não saberá o que é um import no capítulo 11, com isso, com certeza não tirará tanto proveito do capítulo de excessções se não conseguir executar seus exemplos (sem importar java.io.FileNotFoundException. Por isso fiz o tópico, para que todos possam deixar dicas aqui, e sugestões, para talvez serem inseridas nas apostilas para ajudar quem está começando nessa linguagem.

Devo dizer novamente que esta apostila é muito boa :), explica muito bem os temas abordados e com exercícios bem interessantes…

qmx

é que a apostila deu a dica do ctrl + espaço

a idéia é não preocupar o aluno com coisa demais no começo

andre.obueno

Certo, entendo, mas acho que ficaria ainda melhor a apostila se simplesmente dissessem pra inserir a linha do import la sem se preocupar com o que o mesmo significa…

t+

Fabio_Kym_Nascimento

Acho a dica bem válida, mas seria interessante falar sobre alguns pontos:

  • As apostilas da Caelum são material de apoio dos cursos, muita coisa não está escrito nelas para serem discutidas em sala de aula com o instrutor.

  • Se você ler o método de ensino da Caelum, vai ver que eles primam por não tratar assuntos não relevantes ao tópico que está sendo ensinado, por exemplo, no capítulo de exceções, o foco não são os imports. Java é muito amplo e detalhado, é impossível ensinar um tópico falando sobre tudo que envolve o código.

  • Ok, mas sem os imports o código não funciona, então porque não tem os imports ali? Se você ler a apostila inteira, no capítulo que trata do Eclipse você vai ver que é ensinado ao aluno ali os atalhos do Eclipse, ali o aluno começa a ver que embora o código do Java seja muito detalhista, ele não precisa escrever tudo, pois existem ferramentas para auxiliar nesse trabalho e justamente por isso os blocos de código que tem ajuda do eclipse não são escritos na apostila, para incentivar o aluno a aprender a trabalhar com o Eclipse!

As dicas são válidas, mas elas fogem do propósito das apostilas, que é de servir de material de apoio para os cursos.

No caso essa dica seria válida para um “Livro da Caelum”, e não para as apostilas!

Só para deixar claro, eu fiz o curso FJ-11 e também concordo que a apostila pode ser melhorada (embora seja excelente), mas em outros aspectos!

alexandre.olipe

Concordo com o André. Acho que, mesmo sendo proposto no início da apostila não se aprofundar em algo que não seja prioridade, seria legal ele colocarem a linha do import no código exemplo.

Também concordo com “F?io” (rsrs que f***), pq esse realmente não é o objetivo principal da apostila (pra quem não faz os cursos da Caelum acaba sendo um concessão e, ainda bem que existe).

Mas a minha opinião é de que melhorias sempre serão bem-vindas e acho que essa é a proposta do tópico, não reclamar da apostila e sim propor “melhorias” que facilitariam a vida de quem a usa como uma fonte primária de conhecimento em java.

Gosto destas opiniões divergentes, pois acredito que sejam muito produtivas colocando diferentes pesos nos dois lados da balança e agregando diferentes visões da situação.

Parabéns a todos pelos comentários bem feitos e bem fundamentados…

Fabio_Kym_Nascimento

Não é generics no meu nome não, é Fábio!, mas o Fórum não aceita acento e eu não consigo mudar, nem acho alguem que consiga hauahu

andre.obueno

Blz, vlw, a ideia é essa msm, propor melhorias pras apostilas da Caelum ficarem ainda melhores do que ja sao :),

t+

alexandre.olipe

É tinha visto na sua assinatura… Vc registrou com caractere acentuado né… Será que não dá pra pedir pros caras desativarem esse usuário e criar um novo com o nome certo? Daí talvez conseguissem passar suas mensagens e tópicos pro “novo” usuário…

B

É só pedir p/ mudarem o nome…

Fabio_Kym_Nascimento

É só pedir p/ mudarem o nome…

Pedir pra quem? :confused:

B

Paulo Silveira ou qqr outro administrador.

DavidUser

queria que inserissem as resoluções dos desafios da apostila.

exemplo: fiz o desafio do início da apostila pag. 58 nº 1,

<blockquote>1) Um método pode chamar ele mesmo. Chamamos isso de recursão. Você pode resolver a série de fibonacci

usando um método que chama ele mesmo. O objetivo é você criar uma classe, que possa ser usada da

seguinte maneira:

Fibonacci fibo = new Fibonacci();

int i = fibo.calculaFibonacci(5);

System.out.println(i);

Aqui imprimirá 8,  que este é o sexto número da série.

Este método calculaFibonacci não pode ter nenhum laço,  pode chamar ele mesmo como método. Pense

nele como uma função, que usa a própria função para calcular o resultado.

2) Por que o modo acima é extremamente mais lento para calcular a série do que o modo iterativo (que se usa

um laço)?

3) Escreva o método recursivo novamente, usando apenas uma linha. Para isso, pesquise sobre o operador

condicional ternário. (ternary operator)</blockquote>

bem resolvi sem utilizar laços mas acho q não era assim q era pra resolver:

class FibonaciProgram{//1,1,2,3,5,8,13,21,... int i=2; public static void main(String[]args){ FibonaciProgram fibo=new FibonaciProgram(); fibo.calculaFibonacci(1,1,5); } void calculaFibonacci(int y,int x,int limite){ y=y+x; ++i; if (i==limite)System.out.println(y+x); x=y+x; ++i; if (i==limite)System.out.println(y+x); if(i<limite)calculaFibonacci(y,x,limite); } }

B

DavidUser:
queria que inserissem as resoluções dos desafios da apostila.

exemplo: fiz o desafio do início da apostila pag. 58 nº 1,

<blockquote>1) Um método pode chamar ele mesmo. Chamamos isso de recursão. Você pode resolver a série de fibonacci

usando um método que chama ele mesmo. O objetivo é você criar uma classe, que possa ser usada da

seguinte maneira:

Fibonacci fibo = new Fibonacci();

int i = fibo.calculaFibonacci(5);

System.out.println(i);

Aqui imprimirá 8,  que este é o sexto número da série.

Este método calculaFibonacci não pode ter nenhum laço,  pode chamar ele mesmo como método. Pense

nele como uma função, que usa a própria função para calcular o resultado.

2) Por que o modo acima é extremamente mais lento para calcular a série do que o modo iterativo (que se usa

um laço)?

3) Escreva o método recursivo novamente, usando apenas uma linha. Para isso, pesquise sobre o operador

condicional ternário. (ternary operator)</blockquote>

bem resolvi sem utilizar laços mas acho q não era assim q era pra resolver:

class FibonaciProgram{//1,1,2,3,5,8,13,21,... int i=2; public static void main(String[]args){ FibonaciProgram fibo=new FibonaciProgram(); fibo.calculaFibonacci(1,1,5); } void calculaFibonacci(int y,int x,int limite){ y=y+x; ++i; if (i==limite)System.out.println(y+x); x=y+x; ++i; if (i==limite)System.out.println(y+x); if(i<limite)calculaFibonacci(y,x,limite); } }

Realmente não era pra escrever assim.

Fibonacci de 0 e de 1 são sempre 1.
Fibonacci de n é a soma do fibonacci de n-1 com o fibonacci de n-2.

Pegue essas duas coisas que disse acima e faça uma função. Só lembre que vc tem que retornar um número, e não ficar escrevendo na tela.

DavidUser

nossa ótima lógica nunca tinha observado isso!
tudo se basea no padrão base: 0 e 1 de traz pra frente!

int fibonacciCompleto (int i){
        if(i==0 || i==1){
            return i;
        }else{
            return (fibonacciCompleto(i-1) + fibonacciCompleto(i-2));
        }
    }
Criado 19 de novembro de 2008
Ultima resposta 9 de mai. de 2009
Respostas 21
Participantes 11