--
------------------------------------
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
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
--
------------------------------------
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
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"
--
------------------------------------
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
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.
2012/3/30 Alysson Bruno <alysso...@gmail.com>:
--
diego
O importante é apresentar os diferentes paradigmas de programação, eventualmente, monstrando aos alunos linguagens com paradigmas funcional, estruturado, orientado a objetos, matemático, etc.
> 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
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
--
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
--
------------------------------------
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 ----------------------------------------
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
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
--
--
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:
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
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
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
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
--
------------------------------------
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
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
2012/4/4 Josafa Alves Oliveira <josafao...@hotmail.com>:
--
diego
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 ;-).
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!
--
------------------------------------
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
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
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
Bom, concordo que C não deve ser usada como uma linguagem introdutória, pois no começoa linguagem é o de menos, o importante é entender o algoritmo em si, e nisso o C dificulta poisalém de ter que entender o algoritmo, o aluno tem que entender todas as particularidades de Ce 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 aprenderalguma 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 quete 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(pelomenos no Brasil) por causa da tipagem dinâmica(também é importante os iniciantes fixarem bem aidéia de tipos de dados).
Bem, é dificil essa questão de linguagem introdutória, até porque cada um se adapta de um jeito.
Nomeu 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 Capesar da complicação, mas tomando extremo cuidado para não entrar muito nos aspectos maiscabeludos da linguagem, pelo menos a princípio(ninguém vai aprender aritmética de ponteiros juntocom vetores, por exemplo ;P)
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 nomeleia sobrenomenomeCompleto = nome + ' '+ sobrenomeescreva 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
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