logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog


Aulas de C++: como ensinar?

Estou estudando uma proposta para dar aulas de C++, e estou pensando em uma didática interessante para as aulas. Tive uma conversa com o Wanderly Caloni sobre isso e quero deixar aqui registrado. Caso alguém tenha uma sugestão ou idéia sobre o assunto, coloque nos comentários desse post. Minha idéias ficaram bem claras nesse chat, o que dispensa maiores explicações. Vamos ao chat:

Today, 09:42 Rodrigo Strauss:
como assim aulas teóricas?

Today, 09:43 Wanderley:
vc falando e uma lousa

Today, 09:44 Rodrigo Strauss:
impossível ensinar programação assim.

Today, 09:44 Rodrigo Strauss:
Vai ser eu e um projetor, um aluno por micro

Today, 09:44 Wanderley:
mmmmmm...

Today, 09:44 Wanderley:
dai facilita MUITO

Today, 09:44 Wanderley:
ainda mais q o instrutor vai saber tirar duvidas eheheehheheh

Today, 09:44 Rodrigo Strauss:
sim, e vai ser assim

Today, 09:44 Rodrigo Strauss:
to pensando em adotar uma estratégia diferente

Today, 09:45 Rodrigo Strauss:
li uma coisa no comp.lang.c++.mod e fiquei pensativo

Today, 09:45 Rodrigo Strauss:
todo mundo q ensina C++ começa pela parte difícil

Today, 09:45 Rodrigo Strauss:
ponteiros, strcpy, etc

Today, 09:45 Rodrigo Strauss:
estou pensando em já começar usando std::string

Today, 09:45 Rodrigo Strauss:
e passando tudo por valor

Today, 09:48 Wanderley:
dai vai ser vb! =P

Today, 09:51 Rodrigo Strauss:
e qual o problema? Não é mais lógico ensinar primeiro a parte fácil e depois a difícil?

Today, 09:59 Wanderley:
em ambas as formas existem vantagens e desvantagens. no caso de comecar pelo mais facil, a desvantagem eh esconder desde o comeco detalhes essenciais para programar em C

Today, 10:00 Rodrigo Strauss:
não é esconder, é só começar pelo mais fácil. E eu vou dar aulas de C++, vou deixar claro pra eles que não é aula de C

Today, 10:02 Wanderley:
separar C de C++? mmmmmmmmmm...
=P

Today, 10:03 Rodrigo Strauss:
vou explicar as diferenças e similaridades e dizer que linguagem C é mais específica

Today, 10:04 Wanderley:
seilah. penso q sao coisas indivisiveis pq uma eh parte do todo

Today, 10:04 Rodrigo Strauss:
sim... mas como vc mesmo já disse, nós não sabemos programar em C. O C tem várias limitações e diferenças q não estamos acostumados

Today, 10:06 Rodrigo Strauss:
essas aulas vão ser muito boas pra mim, pq vão me fazer estudar mais coisas e mais termos. Se vc me perguntar o q é polimorfismo eu não sei explicar

Today, 10:06 Rodrigo Strauss:
vou ter q comprar o livro do Stroustrup urgente

Today, 10:06 Wanderley:
geralmente a pratica acaba sendo mais fixada na mente de quem realmente programa =P

Today, 10:07 Rodrigo Strauss:
EU CONSEGUI! Escrevi Stroustrup certo sem consultar!
Stroustrup, Stroustrup, Stroustrup!

Today, 10:07 Rodrigo Strauss:
Bjarne Stroustrup

Today, 10:07 Rodrigo Strauss:
Bjarne Stroustrup

Today, 10:07 Rodrigo Strauss:
Bjarne Stroustrup

Today, 10:07 Rodrigo Strauss:

Today, 10:09 Rodrigo Strauss:
o seu Stroustrup é em portuga, né?

Today, 10:16 Wanderley:
eiuaheiuahieuaeihauhiauehiaueaiehiahuei
eh, sim
ta afim?

Today, 10:16 Rodrigo Strauss:
mais um clique na amazon e eu compro o meu

Today, 10:17 Rodrigo Strauss:
e to pensando em comprar esse tb:

Today, 10:17 Rodrigo Strauss:
http://www.amazon.com/exec/obidos/tg/detail/-/0201749629

Today, 10:21 Wanderley:
q baum!! =D

Today, 10:22 Rodrigo Strauss:
to quase comprando... mas eu tenho gasto uma puta grana com livros ultimamente

Today, 10:22 Rodrigo Strauss:
é sempre um bom gasto, mas é um gasto. E o bom é que livros de C++ nunca ficam desatualizados

Today, 10:27 Wanderley:
=D

Today, 10:28 Rodrigo Strauss:
vc já leu o blog do thiago adams?

Today, 10:29 Wanderley:
naum. qual o link?

Today, 10:33 Rodrigo Strauss:
http://planeta.terra.com.br/informatica/thiago_adams/codigo.htm

Today, 10:33 Rodrigo Strauss:
pena q não tem RSS

Today, 14:13 Wanderley:
onde vc viu a msg sobre ensinar c++ comecando pelo mais facil?

Today, 14:14 Rodrigo Strauss:
eu li uma mensagem no comp.lang.c++.moderated sobre um cara dizendo q o problema é q em C++ as pessoas começar pelo contrário, pelas coisas mais difíceis

Today, 14:14 Rodrigo Strauss:
vc não acha q ponteiro é uma ferramenta muito poderosa pra dar nas primeiras aulas?

Today, 14:15 Wanderley:
acho

Today, 14:15 Wanderley:
na primeira aula se dá variaveis e construções simples de programação

Today, 14:15 Rodrigo Strauss:
não é melhor que o cara que está começando use std::string ao invés de fazer um buffer overflow esperando pra acontecer?

Today, 14:16 Wanderley:
nao enquanto ele nao entender o funcionamento e os riscos de um buffer overflow

Today, 14:17 Rodrigo Strauss:
sim, mas acho q isso pode ser ensinado depois

Today, 14:17 Wanderley:
mas a lista do c++.moderated eh enorme
vc nao tem o link?

Today, 14:17 Rodrigo Strauss:
a maioria usa char* e não sabe o q é um buffer overflow

Today, 14:18 Rodrigo Strauss:
eu li ontem num post sobre c#, mas não lembro onde

Today, 14:18 Rodrigo Strauss:
esse cara não vai saber o q é um buffer overflow, mas pelo menos ele vai correr menos riscos

Today, 14:18 Wanderley:
a maioria faz isso pq nao aprendeu todos os conceitos. soh os necessarios pra sair programando...

Today, 14:19 Wanderley:
por isso q eu disse q eh vblizar o aprendizado: evitando riscos escondendo perigos

Today, 14:20 Rodrigo Strauss:
eu acho q é jogar o cara no fosso com leões só depois que ele conseguir matar um cachorro.

Today, 14:21 Wanderley:
qualquer abordagem eh valida qdo se trata de ensinar C ou C++ (ja li isso em algum livro eheheeh). mas existem vantagens e desvantagens em todas. eh vivendo, programando e aprendendo

Today, 14:22 Rodrigo Strauss:
minha experiência tem dito que fazer coisa low-level a toda hora por qualquer coisa prejudica o desenvolvimento. "Humble thyself, reuse".

Today, 14:23 Rodrigo Strauss:
se eu usar std::string não vou perder tempo com corrupção de memória. E SE FICAR LENTO, eu otimizo

Today, 14:24 Wanderley:
eu entendi. funciona. mas vc nao pode dizer q uma pessoa sabe c++ se ela nao consegue explicar o que eh uma string em C

Today, 14:39 Rodrigo Strauss:
claro, isso eu concordo

Today, 14:39 Rodrigo Strauss:
meu ponto é só que ela deve começar pelo mais fácil

Today, 14:47 Wanderley:
isso eh questao de gosto

Today, 14:47 Wanderley:
de objetivo tb

Today, 14:47 Wanderley:
ja q eles vao mexer com mfc, eh bom q se acostumem com a ideia de classe string, por ex

Today, 14:47 Rodrigo Strauss:
eu acho q é questão de didática e motivação

Today, 14:47 Rodrigo Strauss:
eu acho C difícil, imagina pra quem não sabe programar

Today, 14:48 Rodrigo Strauss:
é muito mais fácil alguém q nunca programou entender um
cout << "numero " << 5 << endl;
do que
printf("numero %d\r\n",5);

Today, 14:49 Wanderley:
o Ritchie ensina muito bem as nuances da linguagem em seu livro. eh claro q a pessoa ja tem q ter um minimo de conceitos

Today, 14:49 Wanderley:
muito mais facil entender intuitivamente. mas nao tecnicamente

Today, 14:50 Rodrigo Strauss:
as pessoas tem uma visão distorcida de C++, acham q é muito complicado. Se usar STL não é muito complicado.

Today, 14:51 Wanderley:
nao se nao der erro

Today, 14:52 Rodrigo Strauss:
sim... e algumas coisas no STL tb são phoda. como tempo de vida de um interator

Today, 14:54 Wanderley:
mas, claro, se vc usa religiosamente como manda o figurino, tudo funciona

Today, 14:56 Rodrigo Strauss:
se vc usar char* como manda o figurino nunca dá buffer overflow

Today, 14:59 Wanderley:
aih q entra o grau de dificildade =P

Today, 15:00 Rodrigo Strauss:
sim. como é mais fácil usar o std::string sem fazer besteira me parece mais óbvio ensinar isso primeiro

Today, 15:00 Rodrigo Strauss:
do mesmo jeito que eu recomendo VB para iniciantes por ser mais fácil

Today, 15:00 Wanderley:
pior q nao eh. depende do gosto e/ou objetivo
eu recomendo basicao

Today, 15:01 Rodrigo Strauss:
eu vou pensar bastante nisso. Quero criar uma geração que não use C só por costume (como a gente faz), e use realmente C++ e STL sempre (como eu quero fazer daqui pra frente)

Today, 15:02 Wanderley:
ohhhhhhhhhh
nisso eu apoio. leia o livro do Stroustrup. ele eh um categorico dessa ideia

Today, 15:04 Rodrigo Strauss:
sim... no site dele ele diz que um livro de C++ que começa com printf já começa mal...

Today, 15:05 Wanderley:
ehehehehhehehehehhe. o legal eh q ele eh categorico, mas nao eh xiita, q fala q C++ deve ser usado soh com orientacao a objetos. eh o criador, neh. dai eh outra coisa

Today, 15:09 Rodrigo Strauss:
O Criador...

Today, 15:09 Wanderley:
ehehehehhehehehehheh

Today, 15:15 Rodrigo Strauss:
comprei o Stroustrup!

Today, 15:15 Wanderley:
=D

Today, 15:15 Rodrigo Strauss:
Esse chat merece um post.
Autoriza?

Today, 15:15 Wanderley:
agora vc ouvirah a palavra tb. e logo estara pregando a palavra =P

Today, 15:16 Wanderley:
se vc acha q merece, vai la

Today, 15:16 Rodrigo Strauss:
A palavra do Criador, sem apóstulos, sem intermediários. É como se "God himself" tivesse escrito a Bíblia

Today, 15:17 Wanderley:
eiuhaieuhaiuehiauheiauhieua eh vero. sem interpretacoes erroneas. eh o proprio!


Em 23/02/2005 20:36, por Rodrigo Strauss


  
 
 
Comentários
Hugo Parente | em 11/12/2005 | #
O próprio Stroustrup tem um artigo sobre como ensinar C++ como primeira linguagem ao invés do C... tem esse artigo na página dele, bem interessante.

Eu apoio a decisão de ensinar C++ primeiro em um nível mais alto (std::string, referências, etc) nada de ponteiros, só depois introduzir a baixaria herdada do C ;-).
Rodrigo Strauss | website | em 11/12/2005 | #
Concordo que você em partes. Não se esqueça que sem ponteiros não existe polimorfismo, que é uma das principais características da orientação a objetos.
Andréa Proto | em 20/04/2007 | #
Sou professora universitária de C++, e apliquei este método de ensino e estou obtendo ótimos resultados, certamente você também conseguirá.
Sucesso
rebarba rebarba
  ::::