logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog

follow us in feedly

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 | e-mail | 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
Algo a dizer?
Nome:


Site:


E-mail:


Escreva o número vinte e seis:


 Não mostre meu e-mail no site, não serve pra nada mesmo...

Comentário





Os comentários devem ser sobre assuntos relativos ao post, eu provavelmente apagarei comentários totalmente offtopic. Se quiser me enviar uma mensagem, use o formulário de contato. E não esqueça: isso é um site pessoal e eu me reservo o direito de apagar qualquer comentário ofensivo ou inapropriado.
rebarba rebarba
  ::::