Lua é uma boa linguagem introdutória ao mundo do desenvolvimento?

classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Lua é uma boa linguagem introdutória ao mundo do desenvolvimento?

Diego Nascimento
Wederson Cabral .. sobre o trabalho de "OOp" nas escolas, o curso que eu fiz faz muito tempo (mais de 10 anos), não havia nada publicado ainda, a internet não era tão grande quanto é hoje (não se publicava muita coisa como hoje), o nome do professor só lembro o primeiro, era Fábio e dava aula na Target Trust em Porto Alegre, não sei por onde anda o professor, eu me mudei do sul logo depois do curso e não mantive mais contato.


Eu estava pesquisando sobre ensino de programação em escolas e achei esse site legal.

Ele tem um material para o professor e para o aluno, você pode dar uma olhada no conteúdo deles, os cursos estão hospedados no coursera e pode dar uma ideia boa na hora de planejar o cronograma de ensino.

Para o professor

Para o aluno tem as trilhas, o professor aproveita o material disponibilizado lá para ensinar o aluno.

Cada trilha tem links que redirecionam para os sites que ensinam sobre o assunto, o programae tem materiais próprios e também outro que pegou compartilhado, tem coisa muito boa lá e tem cases de sucesso de escolas que ensinam usando o material, você pode inclusive entrar em contato com algumas e conversar com quem implementou o ensino, para tirar dúvidas e tudo mais.

O site tem muitos artigos interessantes, aqui vai alguns:

A trilha deles

Projeto sendo usado na Fundação Casa


A fundação Lemann já tem um trabalho feito junto com o programae e tem vários casos de sucesso, você pode entrar em contato com eles também para buscar mais informações, conversar com professores e tirar dúvidas com quem já implantou um sistema de ensino de programação para os alunos.








Em 23 de outubro de 2017 13:52, wederson cabral <[hidden email]> escreveu:
Obrigado por responder!

Com relação ao que eu disse sobre usar uma linguagem e fazer muita coisa nela, não digo que ela é solução para tudo, mas ela é de propósitos gerais, veja, se você quiser criar um site com ela, você pode, se quiser fazer machine learning, também pode, se quiser editar imagens, audio, manipular textos, pode, se quiser trabalhar com estatística pode, e tudo é muito bem feito, usar python para tudo isso não seria usar uma chave para martelar prego por exemplo, pois ela já está consolidada em várias áreas, todas as áreas que ela atende não é através de gambiarras [...]

Entendo, eu sempre escutei que se você tenta ser bom em tudo acaba sendo bom em nada, que toda linguagem tinha uma nicho pré definido, aparentemente Python é uma exceção! 

Com relação à orientação a objetos, o conceito se pode passar muito bem com ela, java por exemplo é complexa, verbosa e uma linguagem muito grande, e também a orientação a objetos de java é uma gambiarra, se você for pegar o modelo proposto inicialmente, as linguagens modernas não atendem ao mesmo modelo (o modelo de orientação a objetos do lisp por exemplo é melhor do que o do java)...[...]

Eu quis dizer gambiarra no sentido da sintaxe, talvez seja apenas falta de costume minha (Comecei a ver Python com orientação a objetos por agora), em Python meio que não fica muito claro o que é atributo e o que é um método. Em java, justamente por ser "verbosa", temos uma legibilidade maior, onde quando queremos um atributo privado, literalmente dizemos que o atributo é privado, em Python colocamos dois underline antes do identificador. Talvez com costume esse problema seja eliminado, mas pra quem esta começando é possível que dois dias após a codificação ele olhe o código e fique pensando "Porque diabos  esses atributos começam com underlines". Claro, talvez isso seja só uma neura minha, já que prezo bastante por "code clean", sou daqueles que prefere perder um pouco de desempenho desde que seja para deixar mais claro a função do código.

e com relação aos alunos aprenderem o conceito de orientação a objetos, eu peguei isso com um professor de java no passado, ele fez uma plataforma e um trabalho para o mestrado dele, aonde ele apontou e testou o ensino de OOP para alunos do ensino fundamental e verificou uma melhora muito grande em outras áreas e compartilhou o resultado com a turma, achei muito interessante.

Putz, super interessante, se puder me linkar a tese dele, ou me informar o nome do professor para que eu possa pesquisar sobre, eu ficaria bem grato!

Bom, independente do que escolher para ensinar, quando tiver feito sua escolha, passe um review para o grupo para vermos quais critérios usou, eu acho legal a troca de informações desse tipo
 
Com certeza farei! 

Também acho que lua seria útil para os alunos criarem joguinhos, por exemplo com o 'roblox', ou usando qualquer framework simples, com o 'Love' .. eu acho que o que vai motivar o aluno vai ser justamente poder fazer algo com a linguagem, ver ela funcionando... por exemplo, o trabalho de final de ano pode ser um joguinho feito na linguagem para que todos possam testar.

A ideia que tenho para aula é justamente criar um jogo, desde o começo, com os alunos, onde eles escolhem a historia e como será as fases, onde a cada conceito novo aprendido nas aulas, deve ser aplicado no jogo. Por exemplo: Temos uma aula sobre estrutura de decisão, então na próxima aula deve-se implementar uma fase no jogo que utilize estrutura lógicas. Como o personagem ter dois caminhos para seguir e etc. Tive essa ideia depois que li sobre meninas se interessarem mais em aprendizado quando existe historia envolvida. 
 


Em segunda-feira, 23 de outubro de 2017 12:40:25 UTC-2, Diego Nascimento escreveu:
Com relação ao fato de lua ser mais produtivo ou não.

>> Lua é realmente uma linguagem tão menos produtiva do que Python?
>> Acho-a tão simples, tão de alto nível, tão organizada... Seria por
>> causa da maior disponibilidade de frameworks em Lua?

Olha, produtiva ela é mais sim, pelo simples fato de ter uma biblioteca padrão muito poderosa, em lua você precisa importar bibliotecas, algumas não funcionam direito, ou tem que implementar coisas básicas que acabam tomando seu tempo, dependendo do problema que você está enfrentando, por exemplo, veja os métodos oferecidos por python para strings, listas e dicionários.. em lua você precisa fazer as funções que vai usar, pois a biblioteca padrão de lua é pequena... eu costumo usar o 'penlight' para isso, mas quando não tenho ele disponível, quando não posso usar acabo fazendo as funções na unha e isso toma tempo.

Ex: Title case.
Python:
--------------------------------------------------------------------
"ola tudo bem?".title()
--------------------------------------------------------------------

em lua
-----------------------------------------------------------------------
function titlecase(str)
    local buf = {}
    for word in string.gfind(str, "%S+") do          
        local first, rest = string.sub(word, 1, 1), string.sub(word, 2)
        table.insert(buf, string.upper(first) .. string.lower(rest))
    end    
    return table.concat(buf, " ")
end

titlecase("ola tudo bem?")
-----------------------------------------------------------------------

########################################################
multiplicar cada número de uma lista, por dois e retornar outra lista.
em python:
-----------------------------------------------
lista = [4, 3, 40, 21]
lista_resultado = [x * 2 for x in lista]

# e para imprimir a lista resultado e ver se está ok:
print(lista_resultado)
-----------------------------------------------

em lua
-----------------------------------------------
lista = {4, 3, 40, 21}

function lista_x2(lista)
    local resultado = {}
    for _, v in ipairs(lista) do
        resultado[#resultado+1] = v*2
    end
     return resultado
end

lista_resultado = lista_x2(lista)

-- e para imprimira lista e ver se está ok:

for _, v in ipairs(lista_resultado) do
    print(v)
end
-----------------------------------------------

Então, qual é mais ou menos produtivo?


>> Em suma, com Lua é possível criar a orientação a objetos, ao passo
>> que, em Python, ela já está criada. E como entendo que o processo de
>> criação de algo proporciona entendimento mais profundo, de fato, não
>> me pareceu mal utilizar Lua.

Legal, concordo com isso


----------------------------------------------------------------------------------------------------------

Também acho que lua seria útil para os alunos criarem joguinhos, por exemplo com o 'roblox', ou usando qualquer framework simples, com o 'Love' .. eu acho que o que vai motivar o aluno vai ser justamente poder fazer algo com a linguagem, ver ela funcionando... por exemplo, o trabalho de final de ano pode ser um joguinho feito na linguagem para que todos possam testar.

Com relação ao ensino de algoritmos, acho que deva ser inicialmente no papel, e só quando o aluno já tiver entendido bem, é que se deva começar a ensinar a programar, e o bom é pedir para o aluno fazer o algoritmo antes de programar para desenvolver o raciocínio e ele não se frustrar tentando fazer as coisas na tentativa de acerto apenas.


E com relação ao que Alex falou sobre lua ser superior, na verdade nenhuma linguagem deve ser vista como superior a outra, ainda mais querer colocar python na jogada, kra, essa linguagem está sendo usadas por empresas gigantes, inferiora ela não é, também lua não é inferiora, apenas foi concebida para um propósito diferente e para o que faz eu acredito que seja a melhor linguagem... acredito que nem python seja melhor que lua para seu propósito, assim como lua não é melhor do que python para seu propósito.



Em 23 de outubro de 2017 11:36, luciano de souza <[hidden email]> escreveu:
Lua é realmente uma linguagem tão menos produtiva do que Python?
Acho-a tão simples, tão de alto nível, tão organizada... Seria por
causa da maior disponibilidade de frameworks em Lua?
Se a melhor decisão é adotar ou não adotar Lua, isso não sei, mas de
fato, não me pareceu ideia tão má ensinar orientação a objetos em Lua.
A bem dizer, parece-me que Lua permite um entendimento que talvez seja
mais profundo.
Então, o professor cria uma tabela e coloca uma função dentro e
pergunta: Será que aqui já temos uma classe e um método? Será que um
método é tão somente uma função que tem um escopo?
E então, o professor diria que não, que a característica da classe é
servir como modelo para a criação de objetos. Neste momento, ele
falaria do campo __index e, a seguir, criaria exemplo mais avançado
com algo que estivesse mais próximo de uma classe.
Em suma, com Lua é possível criar a orientação a objetos, ao passo
que, em Python, ela já está criada. E como entendo que o processo de
criação de algo proporciona entendimento mais profundo, de fato, não
me pareceu mal utilizar Lua.
É como disse, esta não é a única coisa a tomar-se em conta, mas
realmente, para este fim, Lua não me parece nada má.


Em 22/09/2017, wederson cabral<[hidden email]> escreveu:
> *TL;DR*
> Vocês acham que Lua seria uma boa linguagem para se ensinar
> algoritmos/programação ?
> *~*
> Boa tarde!
>
> Minha instituição está com um projeto, no qual eu participo, de dar aulas
> de programação em escolas publicas, com o intuito de introduzir a
> comunidade ao mundo do desenvolvimento, assim gerando um maior interesse
> por parte da população em procurar cursos profissionalizantes nesta área e
> conscientizar a população sobre a importância da área para a sociedade.
>
> Estamos estudando utilizar alguma linguagem de programação de alto nível
> para o ensino de algoritmos, e praticamente todos do projeto só dizem o
> nome de uma linguagem como candidata: Python. Porem eu realmente gostaria
> de utilizar Lua no projeto, visto que é uma linguagem de fácil aprendizado
> e com a qual eu simpatizo bastante. Porem não consegui achar nada que
> relacione Lua como uma linguagem introdutória, e por isso vim pedir a
> opinião de vocês:
>
> Vocês acham que seria benéfico utilizar Lua para ensinar programação? Por
> que?
>
> Vocês já tiveram alguma experiência de tentar ensinar Lua para alguém que
> nunca tinha programado antes? Se sim, como foi essa experiência?
>
> Mesmo Lua não sendo ruim para a introdução a programação, vocês acham que
> Python seria melhor? por que?
>
> Desdê já agradeço a atenção!
>
> obs: Caso conheçam alguma publicação ou relato que envolvam Lua e
> Introdução a programação, por favor "linkem" pra mim por aqui.
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos
> Grupos do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie
> um e-mail para [hidden email].
> Visite este grupo em https://groups.google.com/group/lua-br.
> Para obter mais opções, acesse https://groups.google.com/d/optout.
>


--
Luciano de Souza

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Visite este grupo em https://groups.google.com/group/lua-br.
Para obter mais opções, acesse https://groups.google.com/d/optout.

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.
12