Conceptos básicos de un lenguaje de programación

Post on 14-Aug-2015

89 views 1 download

Transcript of Conceptos básicos de un lenguaje de programación

Conceptos básicos de un lenguaje de programación

Lenguaje de programación a enseñar

¿Porqué escogimos python?

• El fin de este juego es que el usuario aprenda programar, y bien ¿porqué iniciar con un lenguaje tan complejo como lo es Java, o C++? Por eso decidimos enseñar python.• Es un lenguaje realmente poderoso, lo mismo que se puede

programar en cualquier otro lenguaje (orientado a objetos, imperativo) se puede hacer en éste, tanto videojuegos como aplicaciones de escritorio.• Tiene una sintaxis realmente corta y sencilla. Mientras en C++ o Java

ocupamos más de 3 líneas de código para imprimir un “Hola mundo”, en python con una sola línea basta.

• Al tener una sintaxis tan sencilla, no hay que perder mucho tiempo buscando errores, y esto nos lleva a escalar más rápido en el aprendizaje de este lenguaje.• Después de haber aprendido este lenguaje, se puede seguir cualquier

otro de manera más sencilla (de cualquier paradigma de programación), ¿por qué? Porque el programador ya posee la lógica de programación, la cual no cambia de un lenguaje a otro. • No hay que mal interpretar, python por más sencillo que se escuche

es muy potente. Por algo lo usa la NASA.

¿Porqué escogimos python?

Sintaxis

• Comentarios: detrás de #• Asignación: se usa =• Ej:>>>a=3+2J>>> # Esto es un comentario>>>B=7#asignación

Definición de funciones:>>>def nombrefunción(arg1,arg2..):

instrucción1instrucción2...................instrucciónN

La indentación delimita qué instrucciones pertenecen a la función.A no ser que se use return, la función devuelve None

Condicional If: >>>if condicion:

instrucciones

elifcondicion:instrucciones

else:instrucciones

Ciclo For:>>>for variable in variable_lista:

instrucciones

Range: usadode la forma range(i) genera la lista[0,1,...,i].usadode la forma range(i,j) genera la lista[i,i+1,...,j-1]

Función filter:filter(función, lista_arg) devuelve una lista con los elementos x de lista_argquecumplenf(x) = true.>>>def f(x): return x%2 != 0 and x%3 != 0

>>>filter(f, range(2,25))[5,7,11,13,17,19,23]

map(función, lista_arg) devuelvela lista:[f(lista_arg[0]),f(lista_arg[1]),...,f(lista_arg[n])]

>>>def cubo(x): return x*x*x...>>>map(cubo, range(1,5))[1,8,27,64]

Función reduce:reduce(funcion, lista_arg) llama a función con los dos primeros elementos de lista_arg, luego la llama con el tercero y el resultado anterior, etc. Si sólo hay un elemento se devuelve este, y sino hay ninguno da error.

>>>def add(x,y): return x+y...>>>reduce(add, range(1,11))55

List Comprehensions: operaciones muy intuitivas con listas>>>vec= [2,4,6]>>>[3 * x for x in vec][6,12,18]>>>[3 * x for x in vecif x > 3][12,18]>>>[[x,x**2] for x in vec][[2,4],[4,16],[6,36]]

Definición y uso de Clases:>>>class NombreDeClase:... sentencia1...................... sentenciaN...>>>variable = NombreDeClase()

>>>class MiClase:... “Unaclasede ejemplo”... i = 12435... def f(self):... return “holamundo”...>>>x = MiClase()>>>x.i12435>>>x.f()“holamundo”

• Función __init__:Se puede incluir una función, llamada init, que se ejecute siempre que se cree una instancia de la clase.Def __init__(self):instruccionesinit no puede hacer return.

Las variables de instancia no necesitan declararse.>>>x=MiClase()>>>x.numero=7x.f() equivalea MiClase.f(x)>>>MiClase.f(x)“holamundo”

Para definir una subclase se escribe:class NombreDeClase(NombreSubclase)

Se heredan funciones y variables de clase.

>>>class MiSubClase(MiClase):... j=5... def g(self):... return 5...>>>x=MiSubClase()>>>x.j5>>>x.i12435>>>x.f()“holamundo”

• Podemos redefinir una función en la subclase:>>>class MiSubClase(MiClase):... def f(self):... return “HOLA MUNDO”...>>>x = MiSubClase()>>>x.f()“HOLA MUNDO”

Y para llamar al método de la superclase:>>>x.f()“holamundo”>>>MiClase.f(x)• “holamundo”

• Es muy fácil dotar de herencia múltiple, basta con incluir más clases comoargumentosen la definición:

>>>class MiSubClase(Superclase1, Superclase2,...)

A la horade resolver un mensaje a un objeto de MiSubClase se buscará el método en la propia clase, sino se encuentra se busca en Superclase1 (y en sussuperclases), luego en Superclase2, etc.

Clases básicas

Números: -Enteros -Flotantes-ComplejosCadenasTuplasListasDiccionarios

Aprendizaje Lúdico en la programaciónEl diseño de las prácticas de laboratorio debe tener en cuenta los siguientes aspectos: ° La limitación de tiempo que los planes de estudio actuales imponen a las asignaturas° La coordinación que requiere la parte teórica con la práctica. No se debe exigir al alumno conceptos no explicados en teoría. ° La evolución de la complejidad de las prácticas debe ir aumentando gradualmente, evitando grandes saltos teóricos entre una práctica y la siguiente.

• Los ejercicios para enseñanza de programación se encuentran enfocados al aprendizaje de:

- Elementos básicos necesarios para la construcción de un programa: estructura general, variables, tipos, estructuras de datos simples, estructuras de control, modularización de programas y entrada salida elemental. - Estructuras de datos complejas y ficheros.- Tipos abstractos de datos y diseño e implementación de módulos de

librerías.Para el caso del proyecto en desarrollo por el alcance del mismo se limitará a trabajar en el primer punto. Juegos dirigidos por menús, conversacionales, siempre con una entrada-salida en modo texto sencilla, serían adecuados para este nivel. En este sentido, los siguientes apartados de este primer ejercicio práctico requerirán que el programa proporcione pistas.

Otros lenguajes de programación

• Java: Es de los lenguajes más usados, ya que es multiplataforma, esto quiere decir que no solo se ejecuta en PC, también en celulares y otros dispositivos. • C++: Es el más usado para la creación de videojuegos avanzados, ya

que no consume muchos recursos del procesador ni memoria RAM.• HTML: Se utiliza para la creación de páginas web, existen otros

lenguajes que lo complementan para dar un mejor diseño, ejemplo CSS.

Referencia

• Bueno, D., Garralón, J., Jerez, J. y Maña, M. (2001) Aprendizaje Lúdico en Laboratorio de Programación. Editorial Edició Univ. Illes Balears. Extraído de http://www.researchgate.net/profile/Antonio_Mana/publication/237680627_Aprendizaje_Ldico_en_Laboratorio_de_Programacin/links/0046352a89a76a1e55000000.pdf

• Barranco, F., Guerrero, A., Entrena, M. y González, A. (2005) Introducción a Python [diapositivas de PowerPoint] Extraído de http://lsi.ugr.es/~pdo/Seminarios/Python2005.pdf

• Marciniak, Bartosz. (2013) Por qué Python debería ser el primer lenguaje de programación que aprendas [artículo web]. Extraído de: http://www.thehelloworldprogram.com/es/python-es/por-que-python-deberia-ser-el-primer-lenguaje-de-programacion-que-aprendas/