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





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 ;-).