Aulas de C++

39 views
Skip to first unread message

Ponto V! - Vinícius Godoy

unread,
Jan 25, 2012, 4:29:09 AM1/25/12
to ccppb...@googlegroups.com
Oi pessoal,

Estou elaborando um conjunto de aulas que serão ministradas após a aula tradicional de C++ que a maioria das pessoas vêem na faculdade.
Gostaria de expor aos alunos temais mais complexos, ou aprofundar nos detalhes onde os programadores mais erram/confundem, para que eles saiam num nível melhor do que as faculdades costumam a lançar no mercado.

Pensei em abordar tópicos como:
  • Construção e cópia;
  • Gerência de recursos (RAII);
  • Uso exceções;
  • Templates;

Não creio que eu teria tempo de falar sobre APIs específicas, como a do Windows ou QT, embora possa citar exemplos de como essas APIs tratam alguns desses temas em aula (mostrar os smart pointers na parte de gerência de recursos, por exemplo).


Estou aberto a sugestões.


Att,

Vinícius

Gabriel Duarte

unread,
Jan 25, 2012, 4:34:36 AM1/25/12
to ccppb...@googlegroups.com
Legal! Mas mostrará só isso? Nada de ponteiros, referência, etc? Mostrar APIs é uma boa mesmo, ainda mais as bem feitas, como Qt ou Boost, assim eles poderão ter uma idéia do que é um código bem programado e talvez seguir o exemplo.
Boa sorte!

2012/1/25 Ponto V! - Vinícius Godoy <vini...@pontov.com.br>
--
Antes de enviar um e-mail para o grupo leia:
http://www.ccppbrasil.org/wiki/Lista:AntesdePerguntar
--~--~---------~--~----~---------------------------------~----------~--~----~
[&] Colabore com a Pesquisa de Preferência de Conteúdo
para Eventos do Grupo C & C++ Brasil:
http://www.surveymonkey.com/s/GBBGTXN
------~----~-------~---~---~---~---~----------------~------------~---------~
[&] C & C++ Brasil - http://www.ccppbrasil.org/
Para sair dessa lista, envie um e-mail para ccppbrasil-...@googlegroups.com
Para mais opções, visite http://groups.google.com/group/ccppbrasil
--~--~---------~--~----~--~-~--~---~----~-----------------~--~----------~
Emprego & carreira: vag...@ccppbrasil.org
http://groups.google.com/group/dev-guys?hl=en



--
Gabriel Duarte
Linux User #471185
France / Grenoble - Rhône Alpes
http://genericdev.wordpress.com/

Fabio Mazzarino

unread,
Jan 25, 2012, 5:18:54 AM1/25/12
to ccppb...@googlegroups.com
Vini:

Eu vejo muita gente que não faz idéia como funciona RTTI.

Ponto V! - Vinícius Godoy

unread,
Jan 25, 2012, 5:55:03 AM1/25/12
to ccppb...@googlegroups.com
Oi Gabriel.

Bem lembrado. Não ficou muito claro, mas pretendo falar de ponteiros e referências na parte de construção e cópia. Vou mostrar o construtor de cópia, o operador de =, mostrar como desabilita-los e como evita-los totalmente. Aí aproveito para falar da diferença ponteiros e referência.


Pensei em fazer uma abordagem estilo "Effective C++".



Fabio, bem lembrado também. Vou incluir esse tema.


Será que seria uma boa falar mais especificamente sobre o conceito de constness?

[]s,

Vinícius Godoy de Mendonça
@vinigodoy

Ponto V! - Programação de Jogos Profissional
www.pontov.com.br - @pontov - Facebook




2012/1/25 Fabio Mazzarino <fabio.m...@gmail.com>
Vini:

Eu vejo muita gente que não faz idéia como funciona RTTI.

Gabriel Duarte

unread,
Jan 25, 2012, 6:13:28 AM1/25/12
to ccppb...@googlegroups.com
Legal! Sim, que começa em C++ se confunde muito com ponteiros e referencia, não sabendo quando usar qual. Antes de começar a ensinar a programar, vai dar um overview sobre o que é OO?
Abcs

2012/1/25 Ponto V! - Vinícius Godoy <vini...@pontov.com.br>
Oi Gabriel.

Djalma Rosa dos Santos Filho

unread,
Jan 25, 2012, 6:28:47 AM1/25/12
to ccppb...@googlegroups.com
Vinicius,

Acho que seria interessante algo sobre programação com threads, até porque agora já faz parte do padrão.

2012/1/25 Gabriel Duarte <confu...@gmail.com>

Ponto V! - Vinícius Godoy

unread,
Jan 25, 2012, 7:25:47 AM1/25/12
to ccppb...@googlegroups.com
Esse overview eles tiveram.

Só para contextualizar melhor: Essa é a disciplina de programação 3. Eles tiveram C em programação 1, OO e C++ em programação 2. Em programação 2, não foi incluído o conceito de exceptions, mas foi apresentada a eles a um básico de STL (vector, string e fstream) e o básico do básico de templates.

Nesse mesmo semestre eles estarão tendo aulas de UML e projetos com outra professora, mas creio que será em mais alto nível.

Vocês acham que seria uma boa aprofundar um pouco na parte de algorítmos da STL? Essa é a última disciplina de programação "pura". É tanta coisa para explicar, num tempo tão curto...

[]s,

Vinícius

P.

unread,
Jan 25, 2012, 7:32:20 AM1/25/12
to ccppb...@googlegroups.com

Em quarta-feira, 25 de janeiro de 2012 07h29min09s UTC-2, ViniGodoy escreveu:

Pensei em abordar tópicos como:
  • Construção e cópia;
  • Gerência de recursos (RAII);
  • Uso exceções;
  • Templates;


Se você tem interesse em um viés acadêmico, que fizesse o C++ vazar para teoria de linguagens, poderia tentar esta alternativa.

  • tempo de alocação de armazenagem: estática, automática, dinâmica
  • acessibilidade de nomes: (privacidade em) unidade de tradução, (privacidade em) classe, (privacidade em) função
  • ligação (ou binding) de valores a variáveis: variáveis comuns, referências-a-lvalue, referências-a-lvalue em C++11; RVO e NRVO
  • fluxo do controle: convencional (parâmetros, retornos), alternativo (exceções), bizarro (setjmp, longjmp)
  • etc.

Estes conteúdos devem se prestar muito bem para introduzir as técnicas e justificá-las.

A técnica de RAII, por exemplo, usa a notação de construtor/destruidor para criar um vínculo entre um tempo de alocação automática e um tempo de alocação extra-linguístico, como o de um arquivo.

--

 P.

Rodrigo Mizobe

unread,
Jan 25, 2012, 7:44:30 AM1/25/12
to ccppb...@googlegroups.com
2012/1/25 P. <pedro....@gmail.com>:

> A técnica de RAII, por exemplo, usa a notação de construtor/destruidor para
> criar um vínculo entre um tempo de alocação automática e um tempo de
> alocação extra-linguístico, como o de um arquivo.
>

O conceito de destrutor deterministico do RAII x garbage colletor
seria bem interessante nessas aulas, na ultima edicao da overload tem
um texto do Paul Greynar.
Vinicius, vc poderia disponibilizar on line os materias didaticos que
forem produzidos?

Fabio Mazzarino

unread,
Jan 25, 2012, 7:47:53 AM1/25/12
to ccppb...@googlegroups.com
Vini:

Estou percebendo que está faltando Estrutura de Dados. Eu acho muito bom para reforçar os conceitos de OO. Principalmente se vc faz isso antes ou em paralelo com UML.

Ponto V! - Vinícius Godoy

unread,
Jan 25, 2012, 7:49:10 AM1/25/12
to ccppb...@googlegroups.com
Sim. Estou pensando em publicar todos no Ponto V.
O primeiro, explicando o conceito de exceções, sai no dia 8.

[]s,

Vinícius


Ponto V! - Vinícius Godoy

unread,
Jan 25, 2012, 8:02:28 AM1/25/12
to ccppb...@googlegroups.com
Oi Fabio,

A parte de estrutura de dados é coberta na disciplina de inteligência artificial, que ocorre somente daqui há um ano. Eles já viram um básico de estruturas como pilha, fila e árvores.

Se eu for falar em estruturas, será mais em alto nível, ou na forma de algum exercício. Como a disciplina é mais de linguagem, estou pensando em aprofundar mais em detalhes que envolvem mais diretamente o C++.

[]s,

Vinícius

Ponto V! - Vinícius Godoy

unread,
Jan 25, 2012, 8:25:37 AM1/25/12
to ccppb...@googlegroups.com
Oi.

Bem lembrado, eles verão threads na matéria de sistemas operacionais, nesse mesmo semestre. Vou combinar com o professor para mostrar a boost::thread na mesma época, ou para que ele mesmo apresente a biblioteca.

Aí já avisamos aos alunos que praticamente as mesmas classes de threads estarão disponíveis no C++11.

[]s,

Vinícius
Reply all
Reply to author
Forward
0 new messages