Conceptos básicos de un lenguaje de programación

27
Conceptos básicos de un lenguaje de programación

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

Page 1: Conceptos básicos de un lenguaje de programación

Conceptos básicos de un lenguaje de programación

Page 2: Conceptos básicos de un lenguaje de programación

Lenguaje de programación a enseñar

Page 3: Conceptos básicos de un lenguaje de programación

¿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.

Page 4: Conceptos básicos de un lenguaje de programación

• 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?

Page 5: Conceptos básicos de un lenguaje de programación

Sintaxis

Page 6: Conceptos básicos de un lenguaje de programación

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

Page 7: Conceptos básicos de un lenguaje de programació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

Page 8: Conceptos básicos de un lenguaje de programación

Condicional If: >>>if condicion:

instrucciones

elifcondicion:instrucciones

else:instrucciones

Page 9: Conceptos básicos de un lenguaje de programación

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]

Page 10: Conceptos básicos de un lenguaje de programación

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]

Page 11: Conceptos básicos de un lenguaje de programación

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]

Page 12: Conceptos básicos de un lenguaje de programación

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

Page 13: Conceptos básicos de un lenguaje de programación

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]]

Page 14: Conceptos básicos de un lenguaje de programación

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

Page 15: Conceptos básicos de un lenguaje de programación

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

Page 16: Conceptos básicos de un lenguaje de programación

• 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.

Page 17: Conceptos básicos de un lenguaje de programación

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

Page 18: Conceptos básicos de un lenguaje de programación

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

Se heredan funciones y variables de clase.

Page 19: Conceptos básicos de un lenguaje de programación

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

Page 20: Conceptos básicos de un lenguaje de programación

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

Page 21: Conceptos básicos de un lenguaje de programación

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

Page 22: Conceptos básicos de un lenguaje de programación

• 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.

Page 23: Conceptos básicos de un lenguaje de programación

Clases básicas

Números: -Enteros -Flotantes-ComplejosCadenasTuplasListasDiccionarios

Page 24: Conceptos básicos de un lenguaje de programación

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.

Page 25: Conceptos básicos de un lenguaje de programación

• 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.

Page 26: Conceptos básicos de un lenguaje de programación

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.

Page 27: Conceptos básicos de un lenguaje de programación

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/