Por que ensinar C na faculdade ?????????????

935 views
Skip to first unread message

edson araujo corral

unread,
Mar 30, 2012, 10:49:28 AM3/30/12
to python...@googlegroups.com
Galera acho que todos de voces ja ouvi falar do livro ''How to Think Like a Computer Scientist".. ai surge minha duvida no livro os autores comentam que Python e muito melhor ensinar programacao para alunos iniciantes no curso de ciencia da computacao.. 

Os alunos aprendem os conceito principais de programacao muito mais rapido.. Sem falar da sintaxe limpa, um exemplo helloworld e escrita com uma unica linha, diverente de Java ou C++.

Mas a duvida por que as universidade nao usa Python como A primeira linguagem de programacao para os alunos aprenderem ???

--
2012 -  Edson Araujo Corral - iOS developer 

Daniel Ribeiro Gomes

unread,
Mar 30, 2012, 10:54:24 AM3/30/12
to python...@googlegroups.com
Olá Edson,

a respeito da utilização de Pyhton para o ensino de programação (e aí entra, também, as disciplinas de análise e implementação algorítmos), esta já é a realidade no exterior.

Universidades consagradas, como o MIT, nos EUA, já utilizam o Python para todo e qualquer tipo de implementação.

No Brasil, pelo contrário, o Java tem tomado o espaço das outras linguagens nas universidades, simplesmente pelo fato de que o mercado de trabalho tem solicitado mais essa linguagem.

Na realidade, existe uma confusão no que diz respeito ao ensino de lógica e programação. Quando falamos em lógica, algorítmos em específico, falamos em apenas uma forma de pensar, estruturar um raciocínio, e aí deveríamos ter uma linguagem multi-paradigma, como o Python, ou até mesmo utilizar pseudo-código.

Na parte de programação, onde as disciplinas tratam de conteúdos específicos, a ideia é preparar os alunos para o mercado de trabalho. E o mercado de trabalho brasileiro, hoje, tem uma maior demanda de Java.

Daniel Ribeiro Gomes Pereira
iPhone: +55 (48) 9111-0931



--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

Elyézer Mendes Rezende

unread,
Mar 30, 2012, 10:54:48 AM3/30/12
to python...@googlegroups.com
Conhecimento (ou falta) dos professores.

Muitos professores ensinam C porque conhecem. Outros já usam Java...

No meu caso foi assim, tinha aula com um professor sobre C e o outro
já usava Java.

Por isso minha opinião é o (a falta) conhecimento.

> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
> http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
> python-brasi...@googlegroups.com

--
Elyézer Mendes Rezende
http://elyezer.com

Denis Costa

unread,
Mar 30, 2012, 10:56:03 AM3/30/12
to python...@googlegroups.com
Em 30 de março de 2012 11:49, edson araujo corral <edsc...@gmail.com> escreveu:

Na minha faculdade (Fatec de São José dos Campos), a primeira linguagem é Python. Matéria dada pelo Fernando Masanori.


--
Denis Costa

"Então plante seu próprio jardim e embeleze a sua própria alma, em vez de esperar que alguém traga-lhe flores." - Shakespeare

@maltzsama

unread,
Mar 30, 2012, 11:01:38 AM3/30/12
to python...@googlegroups.com
Ensinam C porque eh uma linguagem imortal. Senao eles ensinariam COBOL ou RPG.

Python eh legal, mas na minha opnião o aluno precisa conhecer o inferno pra depois ver o céu. Sem C ele nunca saberá a merda de acessar um endereçamento errado de memoria. SIMPLES ASSIM.

Demetrius Albuquerque
Linux & SO www.maltzsama.blogspot.com



Glauber Kiron

unread,
Mar 30, 2012, 11:07:27 AM3/30/12
to python...@googlegroups.com
Em 30 de março de 2012 11:49, edson araujo corral <edsc...@gmail.com> escreveu:

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com



Acho que esse assunto bastante extenso, porque também há de se ver qual o foco do curso.
Mas falando do ensino de C. creio que isso é algo que já vem de tempos, onde o paradigma que tinhamos da computação era outro completamente diferente. Quando se começou a ensinar C nas universidades não existia a Web como ela é hoje, não existia a mobilidade como ela é hoje. Também há o fato do mercado, como disseram, algumas focam no Java por pura demanda de mercado. 

Onde estudo (Fatec São Caetano). A linguagem ensinada é Python, levando para o lado da facilidade de aprendizagem, é indiscutível, além do número de alunos que ficam de DP na matéria ser menor, o aproveitamento também está sendo bem maior, a professora já consegue abordar algumas coisas POO porque os alunos estão assimilando melhor a linguagem, e POO nem faz parte da ementa para o primeiro semestre.

Mas não creio que o ensino de outras linguagens deva ser descartado, fazendo isso estaremos criando profissionais quadrados, creio que um bom analista e desenvolvedor conhece mais de uma linguagem, tanto de paradigma Procedural quanto OO.

Também não dá para esperar que a Universidade/Faculdade cubra todas as possibilidades do que é pedido lá fora, é interessante ensinar linguagens de paradigmas diferentes, mas no final creio que o próprio interessado, no caso o aluno tenha de saber em qual ele vai investir.


Marcelo F Andrade

unread,
Mar 30, 2012, 11:09:55 AM3/30/12
to python...@googlegroups.com
Concordo com o que disse o Daniel: ensino de lógica de
programação é uma coisa, mas ensino de linguagem de
programação é outra.

Essa discussão é recorrente. Claro que Python pode ocupar
posição de principal linguagem para o primeiro contato com
programação no ensino superior (acho até que já está ocupando).
Mas, em particular, confesso que acho válido o ensino de C,
especialmente considerando que o aluno está convivendo com
arquitetura de computadores e sistemas operacionais em
paralelo.

O que talvez faltasse seria uma abordagem mais abrangente
que conseguisse mostrar do código à utilização na realidade,
talvez até com estudo de código-fonte de uma pilha TCP de
sistemas *nix, por exemplo.

Atenciosamente.

--
MARCELO F ANDRADE
Belem, Amazonia, Brazil

"I took the red pill"

jeferson perito

unread,
Mar 30, 2012, 11:20:34 AM3/30/12
to python...@googlegroups.com
C é extremamente válido na minha opinião por que o estudante precisa aprender conceitos que linguagens mais modernas escondem, e ter esse conhecimento é muito interessante em questões de performance, tomadas de decisão, arquitetura, etc...

Manipular ponteiros, alocar memória volátil dinamicamente, verificar problemas como memory leak, isso aumenta o conhecimento da base da pirâmide que são os conceitos de desenvolvimento de software... e C ainda é bastante utilizado como aqui na empresa, temos um produto CAD em C++, foi escolhido C++ exatamente por questões de performance, pois é um software que faz muito cálculo matemático complexo.

Ou seja, muito software desktop feito em em C/C++, como navegadores.

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
   http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
   python-brasi...@googlegroups.com



--
Atenciosamente,

Jeferson Viana Perito

www.jefersonperito.com

Daniel Ribeiro Gomes

unread,
Mar 30, 2012, 12:18:24 PM3/30/12
to python...@googlegroups.com
O que não podermos é viver na hipocrisia! A universidade - os cursos de TI - não foi criada para ensinar as pessoas a como trabalhar!! A universidade serve pra nos abrir a mente para diferentes perspectivas de mundo, novas formas de ver o "eu", ingerir conceitos abstratos....

A linguagem utilizada para demonstrar exemplos de programação não deve ser uma preocupação do acadêmico, afinal de contas, qualquer linguagem é igualmente "aprendível", basta ter vontade!

Daniel Ribeiro Gomes Pereira
iPhone: +55 (48) 9111-0931



Ricardo Lima Mazzolli

unread,
Mar 30, 2012, 12:20:39 PM3/30/12
to python...@googlegroups.com
hehehe Concordo com a opinião dos senhores... Ensinar C na faculdade
hoje em dia é como ensinar física Newtoniana no segundo grau e
assumí-la como verdadeira nos tempos de hoje. Por quê?

Mas podemos olhar pelo lado bom... Todo mundo aprende C na faculdade
mas ninguém aprende Python. Logo, todo o conhecimento em Python que
você puder absorver vale ouro. ;-)

Abração!

Em 30 de março de 2012 12:20, jeferson perito <jefp...@gmail.com> escreveu:

--
Que as pulgas de mil camelos infestem o fundilho daquele que estragar
meu dia e que os braços sejam muito curtos para coçar. Amém.

Laerte M. Rodrigues

unread,
Mar 30, 2012, 12:35:07 PM3/30/12
to python...@googlegroups.com
pessoal, sou prof universitário e tenho algumas considerações em relação ao ensino da lignuagem C em relação a Python

1 - A tipagem forte da linguagem C permite ao aluno discenir os diferentes formas de armazenar informações (int,double,string...)
2 - A estrutura de delimitação da linguagem utilizando ; e {} também ajuda mostrar os "limites" de instruções por bloco
3 - O aluno que aprende sobre o funcionamento da memória com a alocação dinâmica tem uma melhor visão do comportamento de objetos na linguagem OO

estou colocando isto, pq uma vez peguei uma turma para dar AED (Algoritmo e estrutura de dados)  onde alguns alunos aprenderam a programar em python, e mtos deles não tinham estas bases bem concretas, tendo mta dificuldade de aprender.

Não menosprezo python (tanto q adoro programar com ela e tenho até projetos com o msm) mas para ensinar, é preciso o aluno entender o funcionamento básico de certas coisas.

Hj eu dou aula de Bioinformática e Inteligencia Artificial e vejo q os alunos q aprenderam C tem + facilidade de entender a linguagem python de kra (isto pq mostro a biblioteca Biopython).
Grato,

Laerte Mateus Rodrigues
Mestrando em informática (PUC Minas)


Leonardo Jobim

unread,
Mar 30, 2012, 1:10:53 PM3/30/12
to python...@googlegroups.com
Saber C/C++ fornece uma base sólida  de conhecimento em programação , sem paralelos em linguagens de alto nível como Python, PHP, JS, etc ...

Alysson Bruno

unread,
Mar 30, 2012, 1:34:20 PM3/30/12
to python...@googlegroups.com
Para ensinar a Programar: Python, Portugol, para ensinar Estrutura de Dados: Python, Java e C, para ensinar orientação a objetos: Python, Java, C++, Smalltalk, para ensinar SO: C, Assembly, Shell Script, Python, para ensinar arquitetura de computadores: Assembly, C, Java, Python, Haskell. Também podemos colocar Java e outras linguagens no meio.

Desde quando a Faculdade tem que ensinar uma ou duas linguagens apenas? Ela ensina a pensar, aprender linguagem tem a internet.

paz e amor (love and peace),

Alysson Bruno
Palmas(TO)
Brasil

http://abruno.com


Leia Heo Sargila. Uma história fantástica. Num mundo chamado de Aravel, os humanos, saveales, vivem algumas aventuras, conheça a história de como tudo foi criado, na versão ouvida pelo Imperador Sädir (Conto a história da criação), leia sobre o bravo Ivan que enfrentou uma besta que devorava crianças (A lenda do Dragão), conheça a bela Zayra e sua vida (Guerra em Radest) e finalmente veja como uma guerra praticamente extinguiu os savelas (Romance Proibido), tudo isso disponível de graça aqui: http://goo.gl/AXv1g

Diego Manenti Martins

unread,
Mar 30, 2012, 3:10:01 PM3/30/12
to python...@googlegroups.com
Já precisei mudar de faculdade algumas vezes e tive aula de
programação/estrutura de dados/algoritmos com vários professores.
Em todas elas foram usados C ou Java. Alguns professores deixavam
livre para o aluno escolher.
Os professores que se preocupavam em ensinar a linguagem foram de
longe os piores. Aprender a linguagem, o que é relativamente simples,
fica por conta do aluno. O professor deve ensinar conceitos/técnicas e
não se preocupar com a ferramenta que o aluno vai usar.
Alguns professores escolhem uma linguagem para facilitar seu trabalho
na hora de avaliar o aluno mas algumas vezes acontece de o aluno
associar os conceitos de estrutura de dados com C ou de orientação a
objetos a Java por exemplo. E isso são coisas que existem em todas as
linguagens de programação.


2012/3/30 Alysson Bruno <alysso...@gmail.com>:

--
diego

Welson de Avelar Soares Filho

unread,
Mar 30, 2012, 3:33:57 PM3/30/12
to python...@googlegroups.com
Não tive C nem C++ durante toda graduação em Ciência da Computação (UFJF).
No sétimo período tive que fazer Teoria dos Compiladores. "Teoria" só no nome, porque a avaliação do semestre foi desenvolver um compilador (para uma linguagem inventada pelo professor) desde a análise léxica até a geração de código mips32. O professor exigiu que fosse em C++. Segundo ele, precisamos aprender uma linguagem decente para desenvolver um compilador.

Foi doloroso aprender C/C++ assim, na base do tôco! Mas sabe,...depois que meu compilador gerou o código mips32 e fui aprovado me senti um programador diferente. Tanto pela disciplina quanto pela exigência que a linguagem impôs sobre mim.

E fora que C até mais que C++ é largamente utilizada para pesquisa. Muito pela performance. Quem segue neste caminho precisa dominar C e C++. O bom é que cada vez mais tenho visto papers usando Python! Pena que meu orientador não deixa eu usar Python no meu TCC! =(

Abraços...

Welson de Avelar Soares Filho
Juiz de Fora - Minas Gerais


Em 30 de março de 2012 16:11, Daniel Ribeiro Gomes <drgo...@gmail.com> escreveu:
O importante é apresentar os diferentes paradigmas de programação, eventualmente, monstrando aos alunos linguagens com paradigmas funcional, estruturado, orientado a objetos, matemático, etc.

Daniel Ribeiro Gomes Pereira



Daniel Ribeiro Gomes

unread,
Mar 30, 2012, 3:11:31 PM3/30/12
to python...@googlegroups.com
O importante é apresentar os diferentes paradigmas de programação, eventualmente, monstrando aos alunos linguagens com paradigmas funcional, estruturado, orientado a objetos, matemático, etc.

Daniel Ribeiro Gomes Pereira
iPhone: +55 (48) 9111-0931



Em 30 de março de 2012 16:10, Diego Manenti Martins <dmma...@gmail.com> escreveu:

Fernando Rocha

unread,
Mar 30, 2012, 4:06:32 PM3/30/12
to python-brasil
Olá professor Laerte,

On Mar 30, 1:35 pm, "Laerte M. Rodrigues" <laertemat...@gmail.com>
wrote:
> pessoal, sou prof universitário e tenho algumas considerações em relação ao
> ensino da lignuagem C em relação a Python
>
> 1 - A tipagem forte da linguagem C permite ao aluno discenir os diferentes
> formas de armazenar informações (int,double,string...)

Vendo de outro ponto de vista, com tipagem dinâmica, dá pra deixar pra
explicar o que é tipo no momento certo e não no momento do 'hello
world', isso pra mim é uma das vantagens de python, a introdução de
conceitos de forma gradual.

> 2 - A estrutura de delimitação da linguagem utilizando ; e {} também ajuda
> mostrar os "limites" de instruções por bloco

Eu já acho que quanto menos, melhor, pois o aluno tem menos ruído. Não
lembro de ter tido problemas pra assimilar blocos por identação.

> 3 - O aluno que aprende sobre o funcionamento da memória com a alocação
> dinâmica tem uma melhor visão do comportamento de objetos na linguagem OO
>
> estou colocando isto, pq uma vez peguei uma turma para dar AED (Algoritmo e
> estrutura de dados)  onde alguns alunos aprenderam a programar em python, e
> mtos deles não tinham estas bases bem concretas, tendo mta dificuldade de
> aprender.
>
> Não menosprezo python (tanto q adoro programar com ela e tenho até projetos
> com o msm) mas para ensinar, é preciso o aluno entender o funcionamento
> básico de certas coisas.

Isso já é mais complicado porque depende do contexto. Eu tive
algoritmos e estruturas de dados em Python, e estou fazendo estruturas
de dados II em C.

Sendo essa a primeira vez que desenvolvo algoritmos mais complexos em
C, e não tive muita dificuldade com a linguagem/conceitos, o fato de
eu já conhecer conceitos como por ex: tipos, ponteiros (devido ao
estudo de refências em python) ajuda a pegar as coisas rapidamente.

Óbvio que há coisas a ser aprendidas que não se vê em python, por ex:
operações com ponteiros para alocação de memória.

[]s
Fernando Rocha

>
> Hj eu dou aula de Bioinformática e Inteligencia Artificial e vejo q os
> alunos q aprenderam C tem + facilidade de entender a linguagem python de
> kra (isto pq mostro a biblioteca Biopython).
>
> Em 30 de março de 2012 13:20, Ricardo Lima Mazzolli <ric...@gmail.com>escreveu:
>
>
>
>
>
>
>
>
>
> > hehehe Concordo com a opinião dos senhores... Ensinar C na faculdade
> > hoje em dia é como ensinar física Newtoniana no segundo grau e
> > assumí-la como verdadeira nos tempos de hoje. Por quê?
>
> > Mas podemos olhar pelo lado bom... Todo mundo aprende C na faculdade
> > mas ninguém aprende Python. Logo, todo o conhecimento em Python que
> > você puder absorver vale ouro. ;-)
>
> > Abração!
>
> > Em 30 de março de 2012 12:20, jeferson perito <jefper...@gmail.com>
> > escreveu:
> > > C é extremamente válido na minha opinião por que o estudante precisa
> > > aprender conceitos que linguagens mais modernas escondem, e ter esse
> > > conhecimento é muito interessante em questões de performance, tomadas de
> > > decisão, arquitetura, etc...
>
> > > Manipular ponteiros, alocar memória volátil dinamicamente, verificar
> > > problemas como memory leak, isso aumenta o conhecimento da base da
> > pirâmide
> > > que são os conceitos de desenvolvimento de software... e C ainda é
> > bastante
> > > utilizado como aqui na empresa, temos um produto CAD em C++, foi
> > escolhido
> > > C++ exatamente por questões de performance, pois é um software que faz
> > muito
> > > cálculo matemático complexo.
>
> > > Ou seja, muito software desktop feito em em C/C++, como navegadores.
>
> > > Em 30 de março de 2012 12:09, Marcelo F Andrade <mfandr...@gmail.com>

Mario Domenech Goulart

unread,
Mar 30, 2012, 4:21:48 PM3/30/12
to python...@googlegroups.com
On Fri, 30 Mar 2012 13:35:07 -0300 "Laerte M. Rodrigues" <laerte...@gmail.com> wrote:

> 1 - A tipagem forte da linguagem C permite ao aluno discenir os
> diferentes formas de armazenar informações (int,double,string...)

"Força" de tipagem é algo muito subjetivo em linguagens de programação.
O melhor que se pode dizer com relação a C é que a tipagem é estática.

Mario
--
http://parenteses.org/mario

Anderson Unsonst

unread,
Mar 30, 2012, 4:25:59 PM3/30/12
to python...@googlegroups.com
Olá, sou novo na lista, vou dar meu primeiro pitaco aqui, mas acho que
quem aprende a programar c/c++ aprender python com um piscar de olhos
ou estou enganado ?! mas acho que deveria sim ter um modulo extra para
python :D

Emerson Bastos

unread,
Mar 30, 2012, 4:34:59 PM3/30/12
to python...@googlegroups.com
Boa questão... e boa a posição de todos aqui !
Eu sou desenvolvedor de jogos e trabalho com algumas linguagens como C++, java e Csharp...
Na minha opinião o C é para a programação com o latim é para a língua portuguesa. ninguém aprende latim hoje na escola e por conseqüência muitas regras e estrutura de palavras que tem como origem o latim ficam perdidos e por muitas vezes sem razão de ser. Vivemos sem o Latim... sim certamente... mas o profundo conhecimento que pode aliviar em muito a tensão de ter de decorar algumas regras.  Seria  muito mais tranquilo se tivéssemos a base da coisa,  assim como nomes em biologia. o C nos da uma base profunda de como toda estrutura de dados se monta em memória e como é o comportamento destes artefatos na arquitetura de um computador. Aprender linguagens com outras facilidades de escrita como Python, Java, CSharp ou outras futuras passariam a ser bem melhor compreendidas com os alicerces em mente. Compreender questões que hoje em dia "sob certo aspecto" não se tem mais muita preocupação como processamento ou memória,  mas que acabamos sempre voltando ao ponto zero o que é engraçado, uma vez que programar para dispositivos móveis por exemplo nos fez ter de repensar sobre memoria, sobre processamento e ter uma base boa de como isso é arranjado. Saber portanto sobre C nos torna melhores e mais bem preparados para aprender linguagens novas e mais avançadas.

Em 30 de março de 2012 11:49, edson araujo corral <edsc...@gmail.com> escreveu:

Marcelo Nunes

unread,
Mar 30, 2012, 4:39:19 PM3/30/12
to python...@googlegroups.com
Acho que existe um aspecto do ensino de programação que é o interesse do aluno. Programação é um processo criativo, então ensinar a programar é muito diferente do que ensinar português, história, geografia, ou até mesmo álgebra ou geometria.

Ou seja, o aluno que tiver interesse em aprender a programar vai aprender com qualquer linguagem, o que não tiver interesse (e também aquele que só ACHA que tem interesse) não vai aprender com linguagem nenhuma. Acho que se você fizer uma estatística entre alunos com um semestre de experiência em programação testando qual o percentual dos alunos capaz de resolver algum problema comum (um algoritmo de ordenação, por exemplo), o resultado não vai ser muito diferente de uma linguagem para a outra.

Ricardo Lima Mazzolli

unread,
Mar 30, 2012, 8:52:47 PM3/30/12
to python...@googlegroups.com
Alysson...

Não sei qual sua profissão mas dizer que as faculdades de hoje ensinam
a pensar é um tanto utópico... No máximo a agir como um macaquinho que
é treinado para ordenar vetores e criar pilhas de ISBNs...

Usando suas palavras, para aprender a pensar, tem a internet.
Principalmente se você sabe como pesquisar (experiência essa adquirida
também e somente na internet). E, claro... Criar, criar e criar.

Programar se aprende programando da mesma forma que administrar se
aprende administrando. ;-)

Dado o recado.

Em 30 de março de 2012 17:39, Marcelo Nunes
<marcelope...@gmail.com> escreveu:

> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
> http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
> python-brasi...@googlegroups.com

--

Leonardo Santagada

unread,
Mar 31, 2012, 3:59:39 AM3/31/12
to python...@googlegroups.com
2012/3/30 Mario Domenech Goulart <mario....@gmail.com>:

Força é meio subjetivo mesmo. Pra mim C é fracamente estaticamente
tipado. Os tipos em C só delimitam quantos bits um dado ocupa e algum
comportamento, que podem ser modificados com casting (inclusive com
casting para void o que remove quase todos os comportamentos).


--

Leonardo Santagada

Alysson Bruno

unread,
Apr 1, 2012, 8:11:46 PM4/1/12
to python...@googlegroups.com
A tentativa e erro não é a melhor forma de aprender. Há vários motivos pelos quais a faculdade é uma boa opção, normalmente o pessoal não vê a faculdade com bons olhos por pura preguiça. E a internet é uma boa fonte de informação, mas não substitui uma boa faculdade (a menos que você esteja falando de EaD, mas ainda é uma faculdade ;) ). Infelizmente a qualidade de nossas faculdades talvez deixem a desejar, mas isso não é problema do formato faculdade e sim de qualidade mesmo.

paz e amor (love and peace),

Alysson Bruno
Palmas(TO)
Brasil

http://abruno.com


Leia Heo Sargila. Uma história fantástica. Num mundo chamado de Aravel, os humanos, saveales, vivem algumas aventuras, conheça a história de como tudo foi criado, na versão ouvida pelo Imperador Sädir (Conto a história da criação), leia sobre o bravo Ivan que enfrentou uma besta que devorava crianças (A lenda do Dragão), conheça a bela Zayra e sua vida (Guerra em Radest) e finalmente veja como uma guerra praticamente extinguiu os savelas (Romance Proibido), tudo isso disponível de graça aqui: http://goo.gl/AXv1g





LSKBR

unread,
Apr 1, 2012, 9:05:39 PM4/1/12
to python...@googlegroups.com, edson araujo corral
Oi Edson,

Eu concordo que Python é uma ótima linguagem como primeira linguagem de programação.
Mas nem tudo é Hello World e muitas vezes o professor ou o coordenador do curso ensaiam de apresentar Java ou C++...
para facilitar cursos futuros. Exemplo: apresentam um Java troncho em ICC para depois afinar num curso de OO.
Outros por não conhecerem Python ou descartarem Python por ser script.

Algumas faculdades são também assombradas por fatalistas que pregam o ensino de linguagens do mercado.
Quando fiz faculdade, em aprendi Pascal, C, Java, Modula, Prolog, Assembly do MIPS e outros bichos. Nenhuma destas linguagens foi ensinada diretamente, mas no contexto das disciplinas de ICC, estruturas de dados, sistemas operacionais, etc. Já na época tinha fantasma dizendo que deveríamos aprender Word e outros praguejando Prolog. O esquema era que deveríamos aprender as linguagens sozinhos, eles só nos davam um bom motivo :-D

Eu fiz faculdade depois de já estar trabalhando, depois de um curso técnico em informática... 18 anos depois eu tenho uma visão pessoal.
Acredito que o melhor mesmo é aprender e ter contato com o maior número possível de linguagens na faculdade. De preferência, linguagens com paradigmas diferentes.

Python é muito boa, mas se for a única, estaremos repetindo o mesmo erro.

Eu acredito que só programar numa linguagem é como falar apenas uma língua.

Eu defendo Python como primeira linguagem por ser uma das mais fáceis de aprender.
Além disso,  a taxa de retorno do Python é excelente. Você consegue premiar o aluno, pois este fica contente em saber que consegue fazer algo útil sozinho. Com C, muitos desistem, pois o esforço inicial é grande e a impressão é que o trabalho não rende.

<brincadeira>ICC com Java ou C++ é terrorismo :-D</brincadeira>

[]

Nilo
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com


-- 

----------------------------------------
Nilo Menezes
----------------------------------------
Livro: http://www.nilo.pro.br/iprog/
Blog: http://junglecoders.blogspot.com
Home Page: http://www.nilo.pro.br
Hobby: http://invasores.sourceforge.net
----------------------------------------

Glauber Kiron

unread,
Apr 1, 2012, 10:10:43 PM4/1/12
to python...@googlegroups.com
Em 1 de abril de 2012 22:05, LSKBR <ls...@yahoo.com.br> escreveu:
Oi Edson,

Eu concordo que Python é uma ótima linguagem como primeira linguagem de programação.
Mas nem tudo é Hello World e muitas vezes o professor ou o coordenador do curso ensaiam de apresentar Java ou C++...
para facilitar cursos futuros. Exemplo: apresentam um Java troncho em ICC para depois afinar num curso de OO.
Outros por não conhecerem Python ou descartarem Python por ser script.

Algumas faculdades são também assombradas por fatalistas que pregam o ensino de linguagens do mercado.
Quando fiz faculdade, em aprendi Pascal, C, Java, Modula, Prolog, Assembly do MIPS e outros bichos. Nenhuma destas linguagens foi ensinada diretamente, mas no contexto das disciplinas de ICC, estruturas de dados, sistemas operacionais, etc. Já na época tinha fantasma dizendo que deveríamos aprender Word e outros praguejando Prolog. O esquema era que deveríamos aprender as linguagens sozinhos, eles só nos davam um bom motivo :-D

Eu fiz faculdade depois de já estar trabalhando, depois de um curso técnico em informática... 18 anos depois eu tenho uma visão pessoal.
Acredito que o melhor mesmo é aprender e ter contato com o maior número possível de linguagens na faculdade. De preferência, linguagens com paradigmas diferentes.

Python é muito boa, mas se for a única, estaremos repetindo o mesmo erro.

Eu acredito que só programar numa linguagem é como falar apenas uma língua.

Eu defendo Python como primeira linguagem por ser uma das mais fáceis de aprender.
Além disso,  a taxa de retorno do Python é excelente. Você consegue premiar o aluno, pois este fica contente em saber que consegue fazer algo útil sozinho. Com C, muitos desistem, pois o esforço inicial é grande e a impressão é que o trabalho não rende.

<brincadeira>ICC com Java ou C++ é terrorismo :-D</brincadeira>

[]

Nilo

Exatamente!

Diego Rocha

unread,
Apr 2, 2012, 10:33:37 AM4/2/12
to python...@googlegroups.com
Pessoal,

Eu acho que aprender C (na faculdade ou não) é fundamental para a formação de um programador, é claro que a maioria nunca vai programar em C fora da faculdade (mesmo que existam vários projetos open source em C o pessoal só pensa nas empresas).
C te obriga a conhecer mais a fundo o funcionamento dos softwares e do computador, chegando até a ser "chato", muita gente fala que não gosta de C por que "não tem string".
Fiz técnico e agora faço faculdade, e vi nos dos cursos muita gente que não entende a diferença de passagem de parâmetro por valor e por referência.
Quando o cara aprende ponteiro em C (normalmente em outras linguagens esse conceito não é ensinado), fica claro a diferença.

Se não for ensinado na faculdade a maioria dos alunos vai fingir que ele não existe ("Ah isso é coisa da década de 60, ninguém usa mais isso"), e vão ser programadores displicentes, mal acostumados com linguagens modernas se um dia precisarem programar em alguma linguagem sem garbage collector vai chover memory leak.

Enfim, mesmo que não venha a ser usado fora do meio acadêmico pelo aluno a linguagem C ajuda o programador a "pensar em mais baixo nível".

Atenciosamente,
Diego Rocha

Ricardo Lima Mazzolli

unread,
Apr 2, 2012, 2:07:50 PM4/2/12
to python...@googlegroups.com
Agora o nosso amigo Diego disse tudo. Essa é a verdadeira utilidade do
ensino do C hoje em dia. E isso se aplica a outras linguagens também
(muitas delas não abordadas na faculdade) como, por exemplo, o
Assembly. Apesar de, hoje em dia, não se utilizar mais (a não ser por
aqueles que trabalham com programação em baixo nível), ainda é uma boa
pedida para curiosos de plantão e traz uma bagagem violenta para quem
quer fazer a diferença no mercado de trabalho.

Mas que eu ainda acho a linguagem C chata, não tenha dúvidas disso.
hehe Com ou sem memory leak. :P

Dado o recado. :P

Em 2 de abril de 2012 14:27, Alfredo Guilherme Silva Souza
<alfredo.bio...@gmail.com> escreveu:
>
> Concordo com tudo o que você disse diego !
> A faculdade não ensina a linguagem, ensina os conceitos, pois os conceitos
> não variam muito de linguagem para linguagem, muda a sintaxe, mas os
> conceitos geralmente são os mesmos.
> C é uma ótima linguagem de programação, se você tem uma boa habilidade em C
> terá mais facilidade em aprender qualquer outra linguagem.
>
> No dia 2 de Abril de 2012 11:33, Diego Rocha <di...@diegosrocha.com.br>
> escreveu:

>> --
>> ------------------------------------
>> Grupo Python-Brasil
>> http://www.python.org.br/wiki/AntesDePerguntar
>>
>> <*> Para visitar o site do grupo na web, acesse:
>> http://groups.google.com/group/python-brasil
>>
>> <*> Para sair deste grupo, envie um e-mail para:
>> python-brasi...@googlegroups.com
>
>
> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
> http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
> python-brasi...@googlegroups.com

--

Alfredo Guilherme Silva Souza

unread,
Apr 2, 2012, 1:27:43 PM4/2/12
to python...@googlegroups.com

Concordo com tudo o que você disse diego !
A faculdade não ensina a linguagem, ensina os conceitos, pois os conceitos não variam muito de linguagem para linguagem, muda a sintaxe, mas os conceitos geralmente são os mesmos.
C é uma ótima linguagem de programação, se você tem uma boa habilidade em C terá mais facilidade em aprender qualquer outra linguagem.

No dia 2 de Abril de 2012 11:33, Diego Rocha <di...@diegosrocha.com.br> escreveu:

--

Luciano Ramalho

unread,
Apr 2, 2012, 3:36:17 PM4/2/12
to python...@googlegroups.com
2012/4/2 Ricardo Lima Mazzolli <ric...@gmail.com>:

> Mas que eu ainda acho a linguagem C chata, não tenha dúvidas disso.
> hehe Com ou sem memory leak. :P

C é chata porque você perde muito tempo com coisas elementares que não
faz mais sentido perder tempo hoje em dia (como alocação/desalocação
de memória, lidar com strings através de toscos arrays de bytes etc.).

As dificuldades iniciais de C como primeira linguagem fazem com que as
listas de exercícios sejam uma sucessão de problemas idiotas e sem
sentido como "dados um numero inteiro, determine se ele é um
palíndromo". Porque lidar com strings, arquivos e APIs para fazer qq.
coisa mais interessante vai implicar entender ponteiros, e isso não é
coisa que se cobre nas primeiras semanas de programação.

Mas tem um jeito de tornar C uma linguagem muito interessante:
aprender C programando o Arduino:

http://arduino.cc/

Quando você tem 2Kb de RAM, e 32Kb de memória flash, mas o seu
programa roda em um robô, ou controlando uma obra de arte interativa
ou um show pirotécnico, aí sim vc vai estar motivado para espremer
cada bit da memória.

O Etienne Delacroix, físico, artista e professor, me ensinou uma coisa
muito importante: discutir qual é a melhor primeira linguagem a
ensinar é bobagem.

Bom mesmo é desenvolver um currículo para apresentar duas ao mesmo
tempo, e sempre contrastando uma com a outra, para que o aluno perceba
o que é realmente essencial da programação, e o que é detalhe desta ou
daquela linguagem.

Python e C formam a melhor dupla de primeiras linguagens para ensinar
hoje, em minha opinião. Mas no lugar de Python pode ser JavaScript
também (pena que aí a sintaxe parecida pode atrapalhar), ou Scheme
(afinal se o cara não ver na faculdade dificilmente verá fora dela, o
que é uma grande pena porque aprende-se muito sobre teoria de
linguagens com qualquer dialeto de Lisp).

O Santagada me contou que na URGS foi assim ele gostou: no primeiro
semestre de computação aprendeu Scheme e C ou assembly, não lembro
qual, falaí, Santagada!

[ ]s
Luciano


--
Luciano Ramalho
Twitter: @luciano
Autor e instrutor da Academia Python na Globalcode
http://python.globalcode.com.br

Leonardo Santagada

unread,
Apr 2, 2012, 5:39:47 PM4/2/12
to python...@googlegroups.com
2012/4/2 Luciano Ramalho <luc...@ramalho.org>:

> O Santagada me contou que na URGS foi assim ele gostou: no primeiro
> semestre de computação aprendeu Scheme e C ou assembly, não lembro
> qual, falaí, Santagada!

UFRGS (a gente não pronuncia o F porque somos bairristas, mas a
universidade é federal). O primeiro semestre tem pascal e assembly e
agora é Scheme e assembly. Eu acho muito massa o contraste absurdo
entre as duas. Mas o assembly é para uma maquina virtual chamada
neander que tem só um acumulador e faz uma duzia de operações. Ahh no
primeiro semestre também tem teoria da computação que a gente faz
programas com maquina de turing e outras abstrações basicas bem massa.

Eu ainda acho que é o melhor jeito de ensinar computação é com
assembly e não C, porque ai tu tem certeza do que a maquina esta
fazendo (bom certeza certeza só depois com organização de computadores
e técnicas digitais). Programação é com Python.

Eu sou a favor de um curso top down, ensinar primeiro web com python e
talvez flask/django e depois ir mostrando o resto, mas não parar em C,
falar de assembly e maquinas de turing, se bobear calculo lambda.

--

Leonardo Santagada

Diego Manenti Martins

unread,
Apr 2, 2012, 6:04:08 PM4/2/12
to python...@googlegroups.com
2012/4/2 Leonardo Santagada <sant...@gmail.com>:

> Eu ainda acho que é o melhor jeito de ensinar computação é com
> assembly e não C, porque ai tu tem certeza do que a maquina esta
> fazendo (bom certeza certeza só depois com organização de computadores
> e técnicas digitais). Programação é com Python.

Eu aprendi a 'programar' em assembly, no curso técnico em eletrônica
em um microcontrolador com 31 instruções 1k de flash 68 bytes (isso
mesmo, bytes) de ram. Aprender a usar um microcontrolador nesse nível,
acessar periféricos barramentos etc, ajuda bastante a entender um
monte de coisa na computação depois.

--
diego

Welson de Avelar Soares Filho

unread,
Apr 2, 2012, 6:33:44 PM4/2/12
to python...@googlegroups.com
[meu terror]
Não! Cálculo lambda nãããããããoooo.... *-*

[]s.


Welson de Avelar Soares Filho
Juiz de Fora - Minas Gerais


Marcelo Nunes

unread,
Apr 2, 2012, 7:40:59 PM4/2/12
to python...@googlegroups.com
Tive uma experiência parecida quando cursei Eng. de Computação na Univ. Federal do Rio Grande (FURG -- Usamos o "F" na frente para não confundir com a UFRGS) em 1998. Na época a primeira linguagem era Pascal. No terceiro semestre estudei C rapidamente em Linguagens de Programação, em menos de um mês de aula.Foi uma passagem (propositadamente) rápida, então não houve tempo para ganhar "horas de vôo" com a linguagem. Então, no quinto semestre quando cursei a disciplina de Sistemas Operacionais o professor solicitou que implementássemos uma simulação de um sistema de arquivos (com árvores-b e tal) e exigiu que fosse em C. Aí a gente teve que se virar para ganhar experiência rápido, mas no final foi bem legal!

Fernando Masanori Ashikaga

unread,
Apr 3, 2012, 9:25:54 AM4/3/12
to python...@googlegroups.com
Estou utilizando Python como linguagem de introdução aqui na FATEC, mas também mostro como é o assembler via import dis. Sempre há alunos "polidores de bits" que amam isso. No mesmo semestre mostro algo de processing, linguagem "lúdica". Isto atende outro grupo de alunos, com perfil de "efeitos gráficos". Dá para produzir coisas fantásticas com pouco código. Na FATEC São José dos Campos C é dado em semestres posteriores. Realmente algo importante é treinar bastante, para isso uso o codingbat.com e os exercícios do Google Python Class, que já vem todos com testes prontos. Os alunos daqui gostaram bastante de programar fazendo os testes antes. Posso estar falando uma heresia, mas acho que quem aprende bem o Python acaba até gostando de C depois, principalmente se usa o CPython e acessa o código fonte. Eu ouvi do Guido que sua segunda linguagem preferida era C numa palestra lá no Dropbox.
Meus dois cents...

Leonardo Santagada

unread,
Apr 3, 2012, 1:27:23 PM4/3/12
to python...@googlegroups.com
2012/4/3 Fernando Masanori Ashikaga <fmas...@gmail.com>:

> Estou utilizando Python como linguagem de introdução aqui na FATEC, mas
> também mostro como é o assembler via import dis. Sempre há alunos "polidores
> de bits" que amam isso. No mesmo semestre mostro algo de processing,

Só acho ruim porque a vm do python é beeem de alto nível e não se
parece em nada com um computador de verdade (bom talvez um pouco com o
Burroughs http://en.wikipedia.org/wiki/Burroughs_large_systems) e isso
que eu acho legal em assembly.

> linguagem "lúdica". Isto atende outro grupo de alunos, com perfil de
> "efeitos gráficos". Dá para produzir coisas fantásticas com pouco código. Na
> FATEC São José dos Campos C é dado em semestres posteriores. Realmente algo
> importante é treinar bastante, para isso uso o codingbat.com e os exercícios
> do Google Python Class, que já vem todos com testes prontos. Os alunos daqui
> gostaram bastante de programar fazendo os testes antes. Posso estar falando
> uma heresia, mas acho que quem aprende bem o Python acaba até gostando de C
> depois, principalmente se usa o CPython e acessa o código fonte. Eu ouvi do
> Guido que sua segunda linguagem preferida era C numa palestra lá no Dropbox.
> Meus dois cents...

C é uma ótima linguagem para usar, agora para aprender a programar é
péssima, só menos pior do que pascal (eu e o luciano discordamos
disso).

>
> Em sexta-feira, 30 de março de 2012 11h49min28s UTC-3, edson escreveu:
>>
>> Galera acho que todos de voces ja ouvi falar do livro ''How to Think Like
>> a Computer Scientist".. ai surge minha duvida no livro os autores comentam
>> que Python e muito melhor ensinar programacao para alunos iniciantes no
>> curso de ciencia da computacao..
>>
>> Os alunos aprendem os conceito principais de programacao muito mais
>> rapido.. Sem falar da sintaxe limpa, um exemplo helloworld e escrita com uma
>> unica linha, diverente de Java ou C++.
>>
>> Mas a duvida por que as universidade nao usa Python como A primeira
>> linguagem de programacao para os alunos aprenderem ???

--

Leonardo Santagada

Italo Maia

unread,
Apr 3, 2012, 1:33:16 PM4/3/12
to python...@googlegroups.com
Toda linguagem ensina algo, para bom ou para mau. Se aprende muita coisa com pascal, com C, com lua, com java, com python, xyz. Acho que só há um problema quando as pessoas se prendem a uma só linguagem, no ambiente acadêmico. Faculdade/Universidade é local de aprendizado.

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
   http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
   python-brasi...@googlegroups.com



--
"A arrogância é a arma dos fracos."

===========================
Italo Moreira Campelo Maia
Bacharel em Ciência da Computação - UECE
Desenvolvedor WEB e Desktop (Java, Python, Lua)
Coordenador do Pug-CE
-----------------------------------------------------
http://www.italomaia.com/
http://twitter.com/italomaia/
http://eusouolobomau.blogspot.com/
-----------------------------------------------------
Turtle Linux  9.10 - http://tiny.cc/blogturtle910
Turtle Linux 10.10 - http://bit.ly/cEw4ET
===========================

Lucas Brigida

unread,
Apr 3, 2012, 1:43:13 PM4/3/12
to python...@googlegroups.com
Eu estou no 3º ano de Ciência da Computação na Unifei (Universidade Federal de Itajubá), e aqui ainda se aprende programação utilizando linguagem C em S.O Linux. A maioria da sala, digo mais de 85% da turma foi muito bem nas provas e nos exercícios. A linguagem realmente é pouco difícil para pessoas que na época não tinha muita familiaridade de como era o funcionamento e arquitetura de um computador, mas como a Introdução a programação e a disciplina de Arquitetura de Computadores são lecionadas no mesmo período, a compreensão dos alunos tanto na parte de programação quanto de arquitetura foi positiva. 
Por isso eu defendo que se ensine linguagem C primeiro, pois a maioria das outras linguagens derivam do C, além de facilitar o entendimento quando o aluno aprende a programar em assembly. Devido a familiaridade de se preocupar  com número de bits, manipulação de dados na memória e disco. Ao invés de mostrar apenas a mágica que são as linguagens de alto nível, assim quando estiverem mais amadurecidos com a programação não irão apenas preocupar-se com modelagem e todos os aspectos de um linguagem de alto nível, mas também com a construção de um código otimizado.

Marcelo Boá

unread,
Apr 3, 2012, 11:36:37 PM4/3/12
to python...@googlegroups.com
Pow, eu tbm fiz tecnico em eletrônica e aprendi um pouco de Assembly no Z-80 (eh punk). Tenho plena clareza do funcionamento dos sinais processados, pacotes... programei em algumas linguagens já e hoje tenho percebido que cada linguagem tem uma função/característica um pouco diferente... O bom é ser poliglota! Tenho claro que na faculdade não se aprende muita coisa (a menos que seja federal ou estadual) e confesso que gostaria de ter aprendido um pouco de compiladores. Até entrei em um grupo ccpp e embora eu programe no Arduino o que eu vejo naquela lista é meio punk! E isso que sou programador Java.

Em 3 de abril de 2012 14:43, Lucas Brigida <lucasb...@gmail.com> escreveu:
Eu estou no 3º ano de Ciência da Computação na Unifei (Universidade Federal de Itajubá), e aqui ainda se aprende programação utilizando linguagem C em S.O Linux. A maioria da sala, digo mais de 85% da turma foi muito bem nas provas e nos exercícios. A linguagem realmente é pouco difícil para pessoas que na época não tinha muita familiaridade de como era o funcionamento e arquitetura de um computador, mas como a Introdução a programação e a disciplina de Arquitetura de Computadores são lecionadas no mesmo período, a compreensão dos alunos tanto na parte de programação quanto de arquitetura foi positiva. 
Por isso eu defendo que se ensine linguagem C primeiro, pois a maioria das outras linguagens derivam do C, além de facilitar o entendimento quando o aluno aprende a programar em assembly. Devido a familiaridade de se preocupar  com número de bits, manipulação de dados na memória e disco. Ao invés de mostrar apenas a mágica que são as linguagens de alto nível, assim quando estiverem mais amadurecidos com a programação não irão apenas preocupar-se com modelagem e todos os aspectos de um linguagem de alto nível, mas também com a construção de um código otimizado.

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com



--
Best Regards,

Marcelo Boá



Electronics Technician
Bachelor of Information Systems Student
Twitter: @marceloboah

Josafa Alves Oliveira

unread,
Apr 3, 2012, 11:49:13 PM4/3/12
to python...@googlegroups.com
pessoal, o grupo é de python, entendem, python, aqui devemos falar de python, certo, a linguagem python, entendem, python, python, python, procurem um outro grupo para discutir outros assuntos, aqui discutirmos python, python, alguma duvida, aqui é sobre python, python, certo, então isso quer dizer que não é C, C++, Ruby, ou qualquer outra, resumo, aqui é python certo. o nome do grupo é python-brasil, ta bom ou ta dificil.?????

Diego Manenti Martins

unread,
Apr 4, 2012, 6:43:33 AM4/4/12
to python...@googlegroups.com
Então vamos criar um tópico perguntando qual a melhor IDE para python :)

2012/4/4 Josafa Alves Oliveira <josafao...@hotmail.com>:

--
diego

Valmir

unread,
Apr 4, 2012, 12:41:09 PM4/4/12
to python...@googlegroups.com
Que estresse hein?

Luciano Ramalho

unread,
Apr 4, 2012, 12:41:08 PM4/4/12
to python...@googlegroups.com
2012/4/3 Leonardo Santagada <sant...@gmail.com>:

> C é uma ótima linguagem para usar, agora para aprender a programar é
> péssima, só menos pior do que pascal (eu e o luciano discordamos
> disso).

Existe muito preconceito em relação a Pascal porque os acadêmicos
sempre pensam em algum Pascal ideal e obsoleto descrito nos livros do
Wirth.

O meu contato com Pascal foi via Turbo Pascal, e não como plataforma
para fazer exercícios de CS-101 mas sim como ferramenta profissional.
Ganhei a vida com ele alguns anos. Quase todas as alegadas limitações
do Pascal em relação ao C não existem no Turbo Pascal. Você consegue
até fazer os casts mais malignos, e tratar o mesmo padaço de memória
de várias formas diferentes, se for preciso.

Por outro lado Pascal tem algumas vantagens que eu acho fundamentais,
como uma sintaxe menos traiçoeira (if (x=3) faz a coisa certa: = é
igual; atribuição é := e não é uma expressão; não tem ++x e x++ mas
tem inc(x); etc etc.) tem strings em vez de toscos arrays de chars, e,
mais importante, faz bounds checking, ou seja, aborta quando você
tenta escrever além dos limites de uma estrutura.

(É um absurdo que os padrões de engenharia de software são tão baixos
que é prática usual desenvolver sistemas de missão crítica em uma
linguagem que não faz bounds checking; no futuro isso vai ser
considerado crime, como fazer uma cirurgia sem lavar as mãos ou
pilotar embriagado).

Mas eu passei a gostar mais de C depois que fui obrigado a usá-la em
algumas disciplinas do IME, e hoje reconheço que é bem elegante, no
espírito de um assembler de alto nível. Apenas jamais deveria ser
usada para criar sistemas que controlam equipamentos pesados ou
qualquer coisa que possa ferir alguém ;-).

Luciano Ramalho

unread,
Apr 4, 2012, 12:46:41 PM4/4/12
to python...@googlegroups.com
2012/4/4 Josafa Alves Oliveira <josafao...@hotmail.com>:

Josafa, muito grato pela sua preocupação em manter a ordem no grupo!

A comunidade Python se orgulha de ter interesse em aprender linguagens
de programação em geral. Muitos de nós conhecemos Python porque
gostamos de explorar novas linguagens, e não porque fomos obrigados o
tínhamos algum emprego em vista.

Nossa conferência anual, a PythonBrasil, inaugurou em 2008 a tradição
de ter sempre um palestrante convidado especialmente para falar de
outra linguagem. Já tivemos palestras sobre Lua, Boo, Ruby e Go na
PythonBrasil.

Portanto esse é um tipo de off-topic que a gente curte por aqui, OK?

Claro que devemos limitar os off-topics, mas esse é um tema que a
gente curte mesmo. Participe de qualquer evento da comunidade e vc
verá gente falando sobre as mais variadas linguagens.

Grato pela sua contribuição!

Anderson Cardoso

unread,
Apr 4, 2012, 12:56:32 PM4/4/12
to python...@googlegroups.com
Um adendo ao que o Luciano falou. Python é escrito em C!
logo faz sentido para pythonistas discutirem e conhecerem C.
Sem contar que conhecer algumas implementações internas dos objetos de python te ajuda a conhecer melhor a linguagem.
abs

Anderson


--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar

<*> Para visitar o site do grupo na web, acesse:
   http://groups.google.com/group/python-brasil

<*> Para sair deste grupo, envie um e-mail para:
   python-brasi...@googlegroups.com



--
Anderson Pierre Cardoso
Computer Engineer - University of Sao Paulo

[gtalk]: apierre...@gmail.com
[blog]:  http://anderson-hacklife.blogspot.com/


"FreeSoftware -> free as in freedom"
  |  mande-me documentos em formatos livres (ODF) -> http://www.infowester.com/odf.php

Danillo Souza

unread,
Apr 4, 2012, 1:00:55 PM4/4/12
to python...@googlegroups.com
Bom, concordo que C não deve ser usada como uma linguagem introdutória, pois no começo
a linguagem é o de menos, o importante é entender o algoritmo em si, e nisso o C dificulta pois
além de ter que entender o algoritmo, o aluno tem que entender todas as particularidades de C
e um pouco de baixo nível em muitos casos. Contudo, C é uma linguagem que(na minha opinião)
deveria ser obrigatória em qualquer faculdade de computação.

Costumo pensar que uma linguagem só tem valor se além de aprender ela, você também aprender
alguma coisa *com* ela, e o C é um desses casos de linguagem onde você tem muito a aprender.
Tem linguagens que te permitem apliar o seu pensamento sobre o problema, e tem linguagens que
te ensinam a ver o problema de outras maneiras, que é o caso do C, Python, Perl, Lisp, Haskell, etc.

Python seria uma ótima linguagem introdutória, mas talvez não seja usada tanto para esse fim(pelo
menos no Brasil) por causa da tipagem dinâmica(também é importante os iniciantes fixarem bem a
idéia de tipos de dados).

Bem, é dificil essa questão de linguagem introdutória, até porque cada um se adapta de um jeito. No
meu caso foi com BASIC e na época eu tinha 13~14 anos, então era uma das "opções da época"
começar com BASIC. Hoje, se eu fosse indicar uma linguagem para um iniciante, acho que seria C
apesar da complicação, mas tomando extremo cuidado para não entrar muito nos aspectos mais
cabeludos da linguagem, pelo menos a princípio(ninguém vai aprender aritmética de ponteiros junto
com vetores, por exemplo ;P)

Att,

--
Danillo Souza
Teck Software



Em 4 de abril de 2012 13:46, Luciano Ramalho <luc...@ramalho.org> escreveu:

Danillo Souza

unread,
Apr 4, 2012, 1:02:44 PM4/4/12
to python...@googlegroups.com
Me contradisse um pouco sobre a questão de C ser ou não ser boa como linguagem inicial, porque
fui repensando enquanto escrevia, mas vocês entenderam a idéia :D


--
Danillo Souza
Teck Software



Diego Rocha

unread,
Apr 4, 2012, 1:18:39 PM4/4/12
to python...@googlegroups.com
Luciano,

Concordo com você sobre os benefícios do Pascal, e acho que vale a pena ensinar ele como primeira linguagem.

Como a sintaxe do Pascal é bem parecida com pseudo-código que costumamos usar só que em inglês, fica mais tranquilo usar o Pascal como uma simples "implementação do algoritmo" e ai o professor se preocupa apenas em ensinar os conceitos de entrada, processamento e saída de dados, desvio condicional, laço de repetição, estruturas homogêneas e heterogêneas.

Já que quando o aluno for implementar ele apenas traduz.

/* Pseudo-código 'portugol' */
leia a
leia b
c = a + b;
se c resto 2 = 0 
  imprime é par
senão 
  imprime é impar
fim-se

/* Implementação em Pascal */
read(a);
read(b);
c := a + b;
if (c mod 2 = 0) then
begin
  write('É par')
end
else
begin
  write('É ímpar');
end;

Ensinar Algoritmo e C ao mesmo tempo é complicado, pois ao mesmo tempo que você explica pra que serve e qual a utilidade de uma coisa você tem que explicar como lidar com aquilo em C, o que costuma ser diferente (principal exemplo: string).

/*Pseudo código*/
leia nome
leia sobrenome
nomeCompleto = nome + ' '+ sobrenome
escreva nomeCompleto

/* Implementação em C */
scanf("%s", &nome);
scanf("%s", &sobrenome);
strcpy(nomeCompleto, nome);
strcat(nomeCompleto, ' ');
strcat(nomeCompleto, sobrenome);
puts( nomeCompleto );

Enquanto no Pascal isso fica mais inteligível
/*Pascal*/
read(nome);
read(sobrenome);
nomeCompleto := nome + ' ' + sobrenome;
write(nomeCompleto);

É claro que depois que o cara se acostuma com Pascal ele vai reclamar mais de algumas limitações que o C impõe, mas o intuito é aprender algoritmo implementando em pascal, e depois aprender a sintaxe de C, mas já sabendo programar.

Atenciosamente,
Diego Rocha

Leonardo Santagada

unread,
Apr 4, 2012, 5:46:55 PM4/4/12
to python...@googlegroups.com
2012/4/4 Diego Rocha <di...@diegosrocha.com.br>:

> Como a sintaxe do Pascal é bem parecida com pseudo-código que costumamos
> usar só que em inglês, fica mais tranquilo usar o Pascal como uma simples
> "implementação do algoritmo" e ai o professor se preocupa apenas em ensinar
> os conceitos de entrada, processamento e saída de dados, desvio condicional,
> laço de repetição, estruturas homogêneas e heterogêneas.

Isso só é valido se a tua pseudo linguagem é pascal :) tenta escrever
iteradores, list comprehension e geradores com pascal que ai a coisa
complica

Ah e luciano, eu acho pascal bem mais interessante para escrever
aplicativos de negócio, mas ai ela perde feio pra python. Como um
assembler mais limpo C é melhor, e o valor dela para ensinar é
justamente aritmetica de ponteiro e coisas escrotas de C que tem um
valor educativo alto (unions e ponteiro para função).

Eu comecei a vida de programador com TP 7.0 com aquele patch pra rodar
em processadores com mais de 200mhz. E profissionalmente com Delphi 4
:)
--

Leonardo Santagada

João Júnior

unread,
Apr 4, 2012, 6:45:19 PM4/4/12
to python...@googlegroups.com
Essa eu tive de comentar!

Eu também!kkkkkkkkkkkkkkkkk
Bom saber que não fui o único.
> :)
> --
>
> Leonardo Santagada


>
> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
>    http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
>    python-brasi...@googlegroups.com


--

João Júnior
Matemático Computacional - Computational Mathematician

E-mail: joaoju...@gmail.com
Fone: +55 (31) 9642-7061
www.dcc.ufmg.br/~jcaj
http://br.linkedin.com/in/joaojunior

Adorilson Bezerra de Araujo

unread,
Apr 4, 2012, 7:16:48 PM4/4/12
to python...@googlegroups.com
Em 4 de abril de 2012 14:00, Danillo Souza <danil...@gmail.com> escreveu:
Bom, concordo que C não deve ser usada como uma linguagem introdutória, pois no começo
a linguagem é o de menos, o importante é entender o algoritmo em si, e nisso o C dificulta pois
além de ter que entender o algoritmo, o aluno tem que entender todas as particularidades de C
e um pouco de baixo nível em muitos casos. Contudo, C é uma linguagem que(na minha opinião)
deveria ser obrigatória em qualquer faculdade de computação.

Costumo pensar que uma linguagem só tem valor se além de aprender ela, você também aprender
alguma coisa *com* ela, e o C é um desses casos de linguagem onde você tem muito a aprender.
Tem linguagens que te permitem apliar o seu pensamento sobre o problema, e tem linguagens que
te ensinam a ver o problema de outras maneiras, que é o caso do C, Python, Perl, Lisp, Haskell, etc.

Python seria uma ótima linguagem introdutória, mas talvez não seja usada tanto para esse fim(pelo
menos no Brasil) por causa da tipagem dinâmica(também é importante os iniciantes fixarem bem a
idéia de tipos de dados).

Sou professor de cursos técnicos, e nos dois últimos semestres dei a disciplina de algoritmos com Python,
e para trabalhar esses conceitos de tipos de dados, basicamente uso o script abaixo.

>>> a = 1
>>> b = 1
>>> a + b
2
>>> a = '1'
>>> d = '1'
>>> a + d
'11'
>>> b + d
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'


A ideia de pensar qual o tipo de uma variável antes de instancia-la perde o sentido quando a linguagem
permite naturalmente mudar esse tipo.

 

Bem, é dificil essa questão de linguagem introdutória, até porque cada um se adapta de um jeito.

Sim, é. Do mesmo nível de qual a melhor IDE para Python. ;)
Mas como outros já falaram, a discussão é super válida. E nós gostamos disso.

 
No
meu caso foi com BASIC e na época eu tinha 13~14 anos, então era uma das "opções da época"
começar com BASIC. Hoje, se eu fosse indicar uma linguagem para um iniciante, acho que seria C
apesar da complicação, mas tomando extremo cuidado para não entrar muito nos aspectos mais
cabeludos da linguagem, pelo menos a princípio(ninguém vai aprender aritmética de ponteiros junto
com vetores, por exemplo ;P)

Como também devesse tomar cuidado para não entrar em detalhes mais cabeludos de Python, para quem
usa Python.

E só fazendo um adendo a mensagem inicial da thread. O título fala "Por que ensinar C na faculdade", mas a
mensagem questiona C como primeira linguagem. E são coisas bem diferentes. ;)

Minha opinião: C deve ser ensinado em faculdade de ciência/engenharia da computação (cursos de sistemas
de informação já não tenho tanta certeza), mas preferencialmente  que não disciplinas de algoritmos.
 




--
Adorilson Bezerra

Atenção: Este e-mail pode conter anexos no formato ODF (Open Document Format)/ABNT (extensões odt, ods, odp, odb, odg). Antes de pedir os anexos em outro formato, você pode instalar gratuita e livremente o BrOffice (http://www.broffice.org) ou o seguinte Plugin para Microsoft Office (http://www.sun.com/software/star/odf_plugin/get.jsp).

Adorilson Bezerra de Araujo

unread,
Apr 4, 2012, 8:03:49 PM4/4/12
to python...@googlegroups.com

Complementando o que Santagada disse:

// Pseudo-código 'Pytugol'

a = entrada('Digite o valor de a')
b = entrada('Digite o valor de b')

c = a + b
se c % 2  == 2:
    exiba('é par')
else:
    exiba('é impar')

Tem um outro fator que Python ganha muitos pontos extras é o testes automatizados com assert. A palavra reservada assert, não a API de testes. Isso, IMHO, já seria complicar demais.

Então o código acima poderia ser traduzido para algo como:

def  par_impar(numero):
    if numero % 2 == 0:
        return 'Par'
    else:
        return 'Impar'

assert par_impar(2) == 'Par'
assert par_impar(3) == 'Impar'

Isso elimina a chatisse de ficar digitando entrada e comparados saídas com resultados esperados.
Acho que quanto antes o novato tiver contado com isso, melhor.

 

Ensinar Algoritmo e C ao mesmo tempo é complicado, pois ao mesmo tempo que você explica pra que serve e qual a utilidade de uma coisa você tem que explicar como lidar com aquilo em C, o que costuma ser diferente (principal exemplo: string).

/*Pseudo código*/
leia nome
leia sobrenome
nomeCompleto = nome + ' '+ sobrenome
escreva nomeCompleto

/* Implementação em C */
scanf("%s", &nome);
scanf("%s", &sobrenome);
strcpy(nomeCompleto, nome);
strcat(nomeCompleto, ' ');
strcat(nomeCompleto, sobrenome);
puts( nomeCompleto );

Enquanto no Pascal isso fica mais inteligível
/*Pascal*/
read(nome);
read(sobrenome);
nomeCompleto := nome + ' ' + sobrenome;
write(nomeCompleto);

É claro que depois que o cara se acostuma com Pascal ele vai reclamar mais de algumas limitações que o C impõe, mas o intuito é aprender algoritmo implementando em pascal, e depois aprender a sintaxe de C, mas já sabendo programar.
 

Atenciosamente,
Diego Rocha

--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com



--

Fernando Rocha

unread,
Apr 5, 2012, 8:00:30 AM4/5/12
to python-brasil
Olá Diego

On Apr 2, 11:33 am, Diego Rocha <di...@diegosrocha.com.br> wrote:
> Pessoal,
>
> Eu acho que aprender C (na faculdade ou não) é fundamental para a formação
> de um programador, é claro que a maioria nunca vai programar em C fora da
> faculdade (mesmo que existam vários projetos open source em C o pessoal só
> pensa nas empresas).

Também concordo que C é importante aprender, só não concordo que seja
no primeiro período.
> C te obriga a conhecer mais a fundo o funcionamento dos softwares e do
> computador, chegando até a ser "chato", muita gente fala que não gosta de C
> por que "não tem string".
> Fiz técnico e agora faço faculdade, e vi nos dos cursos muita gente que não
> entende a diferença de passagem de parâmetro por valor e por referência.
> Quando o cara aprende ponteiro em C (normalmente em outras linguagens esse
> conceito não é ensinado), fica claro a diferença.

Cara, isso eu discordo totalmente, se o aluno não sabe o que é
pointeiro/referência e o que é passagem por referência ou cópia quando
aprende com python, ele simplesmente não programou muito, porque os
problemas seriam muitos.
Esses conceitos são/devem ser passados quando se ensina python ou
qualquer outra linguagem.

Dei uma relâmpago exatamente sobre isso na pythonbrasil7:
http://www.slideshare.net/fernandogrd/o-maior-mito-de-python-na-educao

Fernando Rocha

unread,
Apr 5, 2012, 8:06:04 AM4/5/12
to python-brasil


On Apr 4, 8:16 pm, Adorilson Bezerra de Araujo <adoril...@gmail.com>
wrote:

>
> Como também devesse tomar cuidado para não entrar em detalhes mais
> cabeludos de Python, para quem
> usa Python.
>
Acho esse um ponto bem interessante, meu professor de algorítmos e
estruturas de dados ensinou usando python, e não o contrário. Ou seja,
ele não se preocupara em ensinar características específicas de
python, isso eu acho bem interessante.

Diego Rocha

unread,
Apr 5, 2012, 12:45:24 PM4/5/12
to python...@googlegroups.com
Adorilson, entendi seu ponto de vista, realmente a possibilidade de fazer o cara aprender a programar já com fundamentos do TDD é realmente muito bacana e o Python facilita isso.

Fernando, concordo que C não deve ser a primeira linguagem, falei isso uns e-mails atrás, e defendi o Pascal, mas o amigo Adorilson me deu bons motivos para ser Python.

Outra observação relevante que fizeram (não me recordo quem foi), é que cursos com um perfil mais genérico como Sistemas de Informação (e Análise de Sistemas talvez) não precisariam ver C, mas cursos de Ciência da Computação, ou Engenharia deveriam sim.

Atenciosamente,
Diego Rocha

Ronan Neto

unread,
Apr 5, 2012, 1:33:50 PM4/5/12
to python...@googlegroups.com
On 04/04/2012 01:41 PM, Luciano Ramalho wrote:
> 2012/4/3 Leonardo Santagada<sant...@gmail.com>:
>> C � uma �tima linguagem para usar, agora para aprender a programar �
>> p�ssima, s� menos pior do que pascal (eu e o luciano discordamos
>> disso).
> Existe muito preconceito em rela��o a Pascal porque os acad�micos

> sempre pensam em algum Pascal ideal e obsoleto descrito nos livros do
> Wirth.
>
> O meu contato com Pascal foi via Turbo Pascal, e n�o como plataforma
> para fazer exerc�cios de CS-101 mas sim como ferramenta profissional.
> Ganhei a vida com ele alguns anos. Quase todas as alegadas limita��es
> do Pascal em rela��o ao C n�o existem no Turbo Pascal. Voc� consegue
> at� fazer os casts mais malignos, e tratar o mesmo pada�o de mem�ria
> de v�rias formas diferentes, se for preciso.

>
> Por outro lado Pascal tem algumas vantagens que eu acho fundamentais,
> como uma sintaxe menos trai�oeira (if (x=3) faz a coisa certa: = �
> igual; atribui��o � := e n�o � uma express�o; n�o tem ++x e x++ mas

> tem inc(x); etc etc.) tem strings em vez de toscos arrays de chars, e,
> mais importante, faz bounds checking, ou seja, aborta quando voc�
> tenta escrever al�m dos limites de uma estrutura.
>
> (� um absurdo que os padr�es de engenharia de software s�o t�o baixos
> que � pr�tica usual desenvolver sistemas de miss�o cr�tica em uma
> linguagem que n�o faz bounds checking; no futuro isso vai ser
> considerado crime, como fazer uma cirurgia sem lavar as m�os ou
> pilotar embriagado).
>
> Mas eu passei a gostar mais de C depois que fui obrigado a us�-la em
> algumas disciplinas do IME, e hoje reconhe�o que � bem elegante, no
> esp�rito de um assembler de alto n�vel. Apenas jamais deveria ser

> usada para criar sistemas que controlam equipamentos pesados ou
> qualquer coisa que possa ferir algu�m ;-).
>
> [ ]s
> Luciano
>
Em uma vis�o totalmente minha, eu acho desgastante expor um aluno
diretamente a C ou C++
se fosse professor optaria pos ensinar Lisp que engloba OOP, teorias da
compila��o, entre outros fatores de forma muito mais interessante,
apesar do apredizado de C ser interesante, ela n�o vai evoluir mais, ao
meu ver "tornando tudo isso desnecessario", alguns dias atras eu vi um
video onde o Simon Peyton comenta algumas coisas sobre C, Haskell e
Nirvana acho que esta no youtube.
Talvez o que ele falou responda o porque.

Antonio Ribeiro

unread,
Apr 5, 2012, 2:10:02 PM4/5/12
to python...@googlegroups.com
Um pouquinho da minha visão sobre isso:

Hoje o ensino de programação nos cursos de computação (Ciências, Engenharia, SI et afins) consiste mais ou menos a ensinar em uma mesma disciplina um pouquinho de tudo: lógica, alguma linguagem de programação, algorítmos, estrutura/arquitetura de computadores e mais um ou dois acompanhamentos que variam de acordo com a sugestão do chef.

Ao meu ver isso acaba embanando um pouco as coisas. Eu concordo que nem todo mundo tem o mesmo apreço pela teoria da computação (eu particularmente sou um teórico chato), e que há uma demanda enorme de mercado por programadores da linguagem A ou da linguagem B, mas existe uma limite mínimo que todo profissional da computação deveria dominar (coerente com sua área de aplicação), que por vezes acaba não sendo atingido justamente por tentar abraçar tudo em uma única disciplina.

Retomando a linha inicial, em curso como SI eu acho incabível que se ensine programação em C. Porém em um curso como Engenharia ou Ciências eu acho necessário que em algum ponto da formação se aprofunde um pouco em C, porém depois que o aluno já tem uma boa noção de programação, porque o que a linguagem C deve fornecer nesse momento não é noções sobre controle de fluxo, laços a o que é uma função, mas sim noções sobre arquitetura de computadores e noções sobre arquitetura de linguagens de programação. Mas o aluno só absorverá isto se já possuir de antemão uma boa bagagem em programação (leia-se lógica de programação).

Partindo desse ponto, eu acredito sim que para se ensinar a programar, C não é uma linguagem tão bacana. Porém em contrapartida eu acho também que sim, C é uma peça muito importante na formação de um profissional da computação que deseja conhecer um pouco mais sobre como o computador funciona.

P.s. Aprendi a programar em C

Antonio Ribeiro

Antonio Ribeiro

unread,
Apr 6, 2012, 10:25:24 AM4/6/12
to python...@googlegroups.com
Só um pequeno complemento:

Eu disse sobre usar C para ensinar arquitetura de computação. Porém hoje eu acho que apresentar um approach mais moderno pode ser uma idéia bacana para isso.

Penso em algo assim: apresenta a linguagem C para o camarada ter uma noção, mas logo mostra, por exemplo, o LLVM. E, por que não, escreve um backend do LLVM para alguma arquitetura didática de computador. Acho que isso sim seria uma introdução bacana a arquitetura de computadores.

2012/4/5 Antonio Ribeiro <alvesjuni...@gmail.com>



--
Atenciosamente,
Antonio Ribeiro

Skype: alvesjnr

Leonardo Santagada

unread,
Apr 6, 2012, 9:53:50 PM4/6/12
to python...@googlegroups.com
2012/4/6 Antonio Ribeiro <alvesjuni...@gmail.com>:

> Penso em algo assim: apresenta a linguagem C para o camarada ter uma noção,
> mas logo mostra, por exemplo, o LLVM. E, por que não, escreve um backend do
> LLVM para alguma arquitetura didática de computador. Acho que isso sim seria
> uma introdução bacana a arquitetura de computadores.

O único problema é que a LLVM é código C++ bem cheio de templates e
maluquices (nunca olhei o source, só ouvi falar, mas que é C++ é).
Acho que um backend para algo tipo tinyc ou outro compilador mais
simples é mais fácil.

--

Leonardo Santagada

Reply all
Reply to author
Forward
0 new messages