‏إظهار الرسائل ذات التسميات Principiantes. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات Principiantes. إظهار كافة الرسائل

السبت، 17 نوفمبر 2012

Windows Phone para Principiantes

Hace rato no posteaba sobre Windows Phone, pero hoy he creado para mis estudiantes y para sus proyectos de clase unos videos sencillos donde pueden practicar como hacer una aplicación simple de Windows Phone ahora que volvió a estar un poco más de moda por el lanzamiento de Windows Phone 8.

Cómo les decia en mi post anterior, no es bueno dejar de desarrollar aplicaciones para Windows Phone 7.5 aún. Es bueno continuar por que además de que tenemos más usuarios ahí que en el nuevo, lo que aprendan les servirá para Windows Phone y para Windows 8. Los que tengan la oportunidad de instalar el SDK de Windows Phone 8, háganlo pero sigan desarrollando para Windows Phone 7.5 si no necesitan nada particular de Windows Phone 8. Ese es mi consejo.

Las advertencias: son videos sencillos, no se aplica MVVM, se toca en lo más mínimo el XAML ya que todo lo trabajo a través de Expression Blend, así que lo único que necesitas saber para ver este tutorial es C#, además aprenderás sobre Linq to SQL en Windows Phone, que en terminos prácticos te sirve tambien para conectarte a un servidor y no a una base de datos local como hacemos con esta aplicación.

Para quienes están empezando, espero que noten como las herramientas de Microsoft nos evitan un montón de trabajo y facilmente podemos hacer aplicaciones, aunque mi recomendación es que saquen el tiempo adecuado para aprender XAML.

Disculpen el sonido del primer video, no habia notado que no tenia el micrófono de la diadema. Les dejo entonces los enlaces, espero les sirvan y hasta la próxima.

Ensamblando las bases de la aplicación 
https://vimeo.com/53729403

Creando las pantallas en Expression Blend 
https://vimeo.com/53729894

Codificando en Visual Studio
https://vimeo.com/53731227

Después de los videos puedes continuar con la Serie WP7, los Hands on Lab de la Maratón de Windows phone y los próximos días estaré retomándo mi congerlada serie de post de MVVM para los que les gusta aprender un poquito más de como hacerlo un poco mejor, pero ya hay varios videos así que pueden empezar mientras me pongo al día.

Saludos y hasta la próxima.

Sorey

الأحد، 12 فبراير 2012

#Principiantes - Entendiendo los métodos y funciones

Bien, después de haber entendido el uso de las variables ahora entendamos los métodos.

Los métodos son los mecanismos o procesos a través de los cuales ejecutamos actividades. En términos generales, los métodos están compuestos por un nombre, uno o varios parámetros de entrada, unas acciones y para algunos de ellos podemos tener un parámetro de salida, por lo cual puedes llegar a escuchar que los métodos que tienen un valor de retorno o parámetro de salida son conocidos como funciones, sin embargo hoy día muchos no hacen esa distinción. Otros nombres con que escucharás llamar los métodos en diferentes contextos son: servicios, subrutinas o subprogramas.

Todos estos elementos mencionados aquí componen la firma del método o la definición del métodoHagámonos una idea visual de este asunto, yo entendería un método así.

Ahora veamos un ejemplo y luego explicamos
Tratemos de entender varias cosas y de ver cual sería el retorno de este método. Bueno lo primero es que los parámetros de entrada de un método pueden ser variables o valores fijos, lo segundo sería que aunque "afuera" del método nosotros tengamos variables que se llaman de una forma, dentro del método se definen cada uno de los parámetros de entrada y no se trabaja con los nombres de variables que vienen de "afuera" si no con los que se han definido en la firma del método.

De los parámetros de entrada hay que decir varias cosas, los parámetros de entrada puede ser por valor o por referencia, para algunos tipos de datos en programación (más adelante) veremos que son siempre por referencia, pero por el momento vamos a entender estos 2 usos que se le dan a los parámetros.

Cuándo hablamos de parámetros por valor, estamos diciendo que cada variable que usamos afuera y adentro del método tiene su propio lugar en nuestro espacio de almacenamiento en memoria, por lo tanto si yo cambio una, la otra no va a cambiarse. Esto en términos prácticos significa, que cuando llamamos un método para que se ejecuten, los parámetros que tiene definidos (en nuestro ejemplo a,b,c) hacen una copia de los valores que venían cargados en las variables que se enviaron (es decir X, 1 y Y), por esta razón cuando el método finaliza, X y Y siguen teniendo los valores 2 y 3.

¿Recuerdan la imagen que veíamos entendiendo variables? Vamos a tratar de apoyarnos en ella para entender ahora los parámetros por referencia.

Si dijéramos que X y Y van por referencia estaríamos diciendo que X y A apuntan a la misma sección de memoria (Como en la imagen Carlos y H lo hacen), por lo tanto si modificamos A dentro del método, cuando este termine su ejecución, como estamos alterando el valor de A, X estaría cambiado y lo mismo sucedería con Y y B.

Qué tal si intentas responder ¿Si X y Y fueran por referencia, que valores tendrían después de la ejecución del método?

Con respecto al parámetro de salida tenemos que decir que dicho retorno es solo un valor, es decir, en nuestro ejemplo no "sale" S si no que sale su valor, la S que es la variable que retornamos se queda al interior y no existe por fuera del método, de hecho aunque retornemos otra de las variables que usamos, siempre saldrá un valor que en caso de necesitar evaluar o modificarlo vamos a tener que guardarlo en otra variable

Ahora intenta responder esto ¿Cual sería el valor de retorno de nuestro método de la imagen? 

Bien, hablemos del cuerpo o proceso que hay dentro de los métodos, estos son un conjunto de lineas simples, o invocaciones a otros métodos y que deben ser escritos en forma secuencial de acuerdo a lo que queramos que ejecute la computadora, es importante entender que "el algoritmo no hará nada que nosotros no le indiquemos que haga" y "tampoco lo hará en un orden lógico si nosotros no se lo indicamos en ese orden".

Esta es una de las falencias más comunes empezando a programar, cuando le enseñas a alguien como se piden datos en la pantalla a un usuario y como se capturan, y le pones la tarea de capturar varios datos, primero escribe todas las sentencias de pedir datos y luego todas las capturas, allí se evidencia la falta de un pensamiento en secuencia, no por hacerlo más rápido sale mejor, si yo voy a capturar varios datos debo, pedir un dato y capturarlo, luego el siguiente y capturarlo y así sucesivamente, y eso solo por poner un ejemplo, a veces se ven cosas como que antes de declarar una variable quieren hacer operaciones con ella, declarar una variable si lo recordamos es crear el espacio en memoria por lo tanto si no la hemos creado en memoria no existe y no podemos usarla.

Bien, para finalizar esta pequeña caja de herramientas con cosas básicas para empezar a programar es necesario conocer sentencias básicas o estructuras de control como acabo de encontrarlas en Wikipedia, explicarlas más de lo que está explicado en  Wikipedia sería solo repetir, por eso los invito a visitar en el enlace, y además te recomiendo empezar por ver la Cápsula de .NET #1 en este punto. Puede que ahora entiendas mucho mejor que antes.

Espero que este par de post les hayan sigo útiles ;)

#Principiantes - Entendiendo el uso de las variables

Tipicamente los lectores de mi blog, no son de nivel avanzado, sin embargo ha de ser raro encontrar estos días post tan básicos pero estoy en la misión de suplir rapidamente algunos conceptos que necesito para mis estudiantes de este semestre para poder iniciar mi materia.

Pues bien, pido disculpas a todos los profesores de fundamentos de programación, no pretendo ni mucho menos que un post como este supla todo lo que hay que aprender, pero digamos que pretendo escribir sobre la caja de herramientas básica de un programador novato, muy novato diría yo.

Importante: A quienes van a encontrar este post, es importante que conozcan los conceptos, yo no tiendo a ser muy ortodoxa, más bien práctica y trataré de hacer que el tema se entienda.

Los siguientes post serán ideas o conceptos básicos para iniciar en el mundo de la programación

Variables: Una forma simple de entender una variable y lo que con ella sucede es hacer un símil, imagina que tienes un espacio enorme separado por compartimentos, en los cuales puedes almacenar cualquier cosa, algo como así:
"Algo así" sucede con la RAM de nuestros computadores, cuando las aplicaciones se ejecutan, van almacenando en ese espacio, los datos que se generan, sin embargo cuando se reinicia la computadora, todo ese espacio queda vacío, es decir, esos datos son "volátiles" y no "persistentes".

Pues bien, resulta que para poder acceder a esos valores que están almacenados y que evidentemente son muchísimos, necesitamos ponerles una etiqueta o nombre, algo que nos ayude a "apuntar" a ese espacio en la caja donde está el valor que necesitamos, y pues par ir a un mismo compartimento, podemos usar varios de esos "apuntadores" usando diferentes nombres, los cuales son nuestras variables.

Ya que el software son bits y no es igual al mundo físico, en un compartimiento podemos guardar cualquier "tipo de dato", esos tipos de datos son propios del motor que ejecúte nuestro algoritmo o bien son tipos de dato que nosotros mismos podemos definir (pero eso va más adelante).

Hay unos tipos de datos básicos: Números, Letras, Caracteres, Fechas etc. 

Cuando estamos programando tipicamente necesitamos declarar las variables que usamos, indicando que tipo de dato es, a partir de ese momento, se reserva un lugar (compartimento) en el espacio que tenemos disponible y allí se irán colocando los datos que manejamos en nuestros algoritmos.

Declarar una variable si lo recordamos es crear el espacio en memoria por lo tanto si no la hemos creado en memoria no existe y no podemos usarla.

En nuestro ejemplo suceden varias cosas, H y Carlos tienen el mismo valor, si cambiamos el valor de "H" cambiará el valor de Carlos ya que ambos están apuntuando al mismo sitio.

Intentemos un poco de seudo-código mirando nuestras imágenes de ejemplo, declaremos a X

Declarar X como Entero
X <= 1

Entendiendo la expresión X es el nombre de la variable <= es el mecanismo o signo que se usa para asignar "un valor a una variable" y 1 es el valor que vamos a asignar. Podemos asignar una variable a otra variable, por ejempo X <= Y o hace operaciones con números X <= X+1 u otras variables X <= A / B y combinados, X <= Y + (A/B).

Los signos matemáticos que usamos para hacer operaciones entre variables, se conocen como operadores, así que siempre debemos aprender cuales son los operadores que existen en nuestro lenguaje de programación.

Debemos considerar que cuando asignamos un valor a una variable, según sea el tipo de dato, será la forma que debemos escribir el valor, el ejemplo más sencillo es los números se escriben simples como vimos en el ejemplo con X y los valores que son alfanuméricos se escriben entre comillas (generalmente) es decir así:

Declarar A como Alfanumérico
A = "Hola"

Debemos tener en cuenta que a una variable solo puede asignarse un valor, variable u operación que sea del mismo tipo, de otro modo habrá que realizar un proceso de conversión, es decir probablemente usar una sentencia disponible en nuestro lenguaje de programación, que transforme una variable de un tipo a otro.

Aprovechemos para deshacernos de un miedo con respecto a los lenguajes de programación, lo más importante es que tengamos bases como esta, cuando vamos a empezar con algún lenguaje de programación evidentemente tenemos que preguntar cada cosa como se hace.

Vemos en C#.NET algunos de los ejemplos aquí planteados
Como podemos observar, en C#.NET la asignación es simplemente un igual, y cada una de las líneas simples termina con punto y coma (;). Por otro lado la declaración de una variable se hace anteponiendo el tipo de datos al nombre de la variable, y una declaración puede hacerse asignando un valor inicial o bien solo declarándola.

Bien, hasta aquí un poco sobre variables, estos post serán una serie corta con las bases necesarias para iniciar.

Nos vemos la próxima.

السبت، 11 فبراير 2012

#Principiantes - Herramientas para aprender a programar

Siguiendo con ese tipo de cosas útiles par aprender a programar, les comparto un par de herramientas, muy fáciles para incursionar un poco en esto de aprender a programar, no se les olvide ver mi post anterior y hacer aerobicos cerebrales antes de empezar con esto.

PSeInt


Esta es una herramienta para aprender la lógica de programación, orientada a estudiantes sin experiencia en dicha área. Mediante la utilización de un simple y limitado pseudo-lenguaje intuitivo y en español, permite comenzar a comprender conceptos básicos y fundamentales de un algoritmo computacional. Nacido originalmente como proyecto final para la materiaProgramación I de la carrera Ingeniería en Informática de la Facultad de Ingeniería y Ciencias Hídricas de la Universidad Nacional del Litoral, es en realidad un intérprete de pseudocodigo basado en los contenidos de la cátedra de Fundamenos de Programación de dicha carrera. Las instrucciones básicas están publicadas en una sencilla guía.

Sitio oficial: http://pseint.sourceforge.net/

En clase hice un ejemplo con mis estudiantes, espero les sea de utilidad para aprender y practicar.

Microsoft Small Basic 


Esta es otra de esas herramientas gratis que da Microsoft, su base es .NET y fue creado para principiantes y niños. Es muy facil de aprender. Tiene solo 15 keywords o palabras claves las cuáles son poca para un lenguaje de programación, pero las suficientes para que cualquiera se pueda lanzar a programar, aunque sea por primera vez. Lo mejor es que tiene una guía en Español.

Sitio Oficial http://smallbasic.com/

¿Que tal si de reto pasas el ejemplo de PSeInt a Small Basic?

Si estas empezando, estas herramientas son un buen comienzo. Espera pronto un tutorial en video de como puedes usarlas.

Sorey

#Principiantes - Aprendiendo a pensar como programador

Ante las inquietudes y vacios de algunos de mis estudiantes, y en respuesta a varios mensajes que he recibido ultimamente a través de mi blog, estuve inquieta buscando en la red, cosas que pudieran hacer que la mente despertara y empezara a tener lo que yo tamo pensamiento secuencial.

Esta una habilidad que considero es la primera que debería tener alguien para aprender a programar, y aunque para los más avanzados esto es apenas natural, aprender que "la computadora" no hará nada que tu no le indiques hacer y en el orden que lo debe hacer, no resulta tan sencillo para todos.

Pues bien, esa búsqueda me llevó a este juego Light-bot, al autor, mis más sinceras felicitaciones, el montón de conceptos que siento que desarrolla intentar pasar todos los niveles de este juego es genial.

Con el puedes practicar desde aprender a pensar por pasos, hasta el uso de un programa principal, llamados a métodos o funciones y reutilización.

Ayer viendo a mis estudiantes jugar un rato en clase, encontraba comentarios como estos:
  • Profe, ¡En cada nivel lo hago mejor!
  • Ah! Ya entendí para que se usan las funciones.
  • Si uso adecuadamente las funciones logro pasar más fácil de nivel.
  • Si pienso primero en las funciones y luego hago el programa principal es más fácil
Estas pequeñas reflexiones y seguro más que les ocurrieron a mis estudiantes, aplican cuando empiezas a programar, cada vez lo haces mejor, aunque es más difícil lo entiendes cada vez más, y aprendes a hacer las cosas de forma más optima.

A los novatos los invito a jugarlo y a no rendirse, estos son aeróbicos cerebrales, apenas para empezar la carrera de ser un programador. A los que se creen tan avanzados, a jugarlo entonces y pasar todos los niveles.

Disfrútenlo!
(Dice cargando pero en la parte inferior presiona PLAY)



Otro juego, muy recomendable para lo de hacer aeróbicos mentales es el Electric Box y la segunda versión de Light-bot que tiene muchos más niveles y la posibilidad de crear, espero que igual se reten con el y lo disfruten.

الاثنين، 12 سبتمبر 2011

Cápsula#6 C#.NET: Aprendiendo Winforms (2)

En esta cápsula trasladamos el ejercicio que se realizó en las cápsulas 1 a la 4 de consola a winforms.

Recuerden que el código de la cápsula se encuentra en Avanet.

Cápsula #7 C#.NET: Consultas simples con LINQ

En esta cápsula iniciamos la construcción de nuestra base de datos y consultando sobre ella usando LINQ.

Recuerden que el código de la cápsula se encuentra en Avanet.

 

Cápsula #5 C#.NET: Aprendiendo Winforms (1)

En esta cápsula veremos un poco de controles básicos, propiedades y eventos, además de continuar montando nuestro ejercicio básico.

Recuerden que los archivos con el código los pueden encontrar en Avanet

الاثنين، 22 أغسطس 2011

Cápsula #4 C#.NET: Más de listas genéricas y objetos

En esta cápsula continuamos con la implementación de las funciones de nuestro menú manipulando listas genéricas y usando objetos.

Recuerden que el código de la cápsula se encuentra en Avanet.

Cápsula #3 C#.NET: Control de errores, objetos y listas

En esta nueva cápsula aprenderemos un control básico de errores y empezaremos a manejar objetos o entidades para manipular los datos de nuestra aplicación, además de usar una lista genérica para almacenar los datos.

Recuerden que el código de la cápsula se encuentra en Avanet.

الأحد، 24 يوليو 2011

Cápsula #2 C#.NET: Primer Menú en Consola

Continuamos con nuestras cápsulas de C#.NET, ahora vamos a construir el menú de nuestra aplicación de consola.
Les recuerdo que este contenido es básico para quienes apenas estan empezando y poco a poco iremos subiendo el nivel.

Recuerda empezar por la cápsula 1 y la teoría

الخميس، 14 يوليو 2011

Cápsula #1 C#.NET: Hola Mundo

Saludos a todos,

Acabo de empezar a través de Avanet, algo llamado cápsulas de conocimiento, en este caso de C#.NET,

En la primera cápsula comencé con algunos conceptos básicos sobre el IDE Visual Studio 2010 y sobre la estructura de proyectos y archivos de una aplicación de consola.

Espero que me ayuden a construir y que den sus consejos y retroalimentación, además de dejarme sus dudas para irlas respondiendo a medida que se generan las cápsulas.


IMPORTANTE: Antes de iniciar la serie de cápsulas les recomiendo nivelarse un poco conceptualmente, mirando la sesión 1 que dí en mi taller de Campus Party 2011

السبت، 26 يوليو 2008

Enseñando Orientación a Objetos con Cuentos Infantiles

Heme aquí de nuevo dando mi clase de Orientación a Objetos, ahora tengo un nuevo reto, mejorar el programa para los nuevos alumnos, procurando que no se me duerman en clase.

Pues bien, buscando, buscando me encontre con que los juegos y los cuentos son una excelente forma de enseñar orientación a objetos, aqui entonces publicaré las diapositivas de mis clases y un cuento como el que justo trabajamos hoy en clase.

Me ha resultado bastante interesante, ver a los chicos analizando el cuento, y al cuento haciendo el papel del dominio del problema, veamos que tal les parece a ustedes.

Cuento: Los Tres Cerditos


Análisis del Cuento
Se identifican los personajes y cosas representativas para el Cuento, Todos son Objetos, pero se toman solo los más representativos dentro del cuento

Los 3 cerditos
El lobo
Las 3 casas

Ahora bien, cuales son las clases en las que se abstraen estas cosas y personajes

Clase: Casa
Atributos: Material, Resistencia, Color, Dueño
Acciones: No tiene

Clase: Cerdo
Atributos: Personalidad, Casa, Instrumento
Acciones: Cantar, Bailar, Correr, Caminar, Huir, Gritar, Reir, Burlar, Escapar, Tocar Instrumento

Clase: Lobo
Atributos: Personalidad
Acciones: Soplar, Gritar, Hablar, Espiar, Empujar, Engañar, Mentir, Fingir, Reir
Ahora para dar un ejemplo de como son los objetos que provienen de estas clases, instanciemos a las cosas y personajes, solo es necesario asignar los valores a los atributos por que las acciones son comunes a todos los objetos que se crean a partir de la clase...

Instancias de la Clase Casa

Objeto: Casa 1
Material: Paja
Resistencia: Baja
Color: Amarillo
Dueño: Cerdo 1

Objeto: Casa 2
Material: Madera
Resistencia: Media
Color: Café
Dueño: Cerdo 2

Objeto: Casa 3
Material: Ladrillo
Resistencia: alta
Color: Roja
Dueño: Cerdo 3

Instancias de la Clase Cerdo

Objeto: Cerdo 1
Personalidad: Alegre
Casa: Casa 1
Instrumento: Flauta

Objeto: Cerdo 2
Personalidad: Alegre
Casa: Casa 2
Instrumento: Violín

Objeto: Cerdo 3
Personalidad: Hermano Menor
Carácter: Serio
Casa: Casa 3
Instrumento: Piano

Instancias de la Clase Lobo
Objeto: Lobo 1
Personalidad: Malo

Este ejercicio puede complicarse mucho más para incentivar el no pensar solo en lo obvio.

Actualizacion Feb/2013: Para terminar el ejercicio, los estudiantes deben realizar un gráfico de clases a través del cual se entienda el cuento. Los demás estudiantes durante la socialización, determinan si el diagrama cuenta el cuento efectivamente.

Para trabajar en línea los ejercicios de diagramas recomiendo http://www.gliffy.com



Fuente de la Métodologia:
http://lsm.dei.uc.pt/ribie/docfiles/txt20034242202146.PDF

الأحد، 20 أبريل 2008

Orientacion a Objetos para Dummies

Con el tiempo uno empieza a notar lo serio del cambio generacional, los nuevos profesionales, son o somos personas, que desarrollamos software para quienes alguna vez fueron los nuevos profesionales, pues bien, la evolución del pensamiento y los saberes, cada vez es mas notoria y un tema tan simple como la Orientacion a Objetos, tiene en algunas ocasiones una presencia totalmente nula en algunos de nuestros colegas.

Pues bien, los apuntes son para Dummies, pero Dummy es el que sabe poco de algo, no el que apenas comienza, leerlos no hará que sepan mucho, pero da un buen contexto y sobre todo un contexto simple.

Lo positivo que le veo a estos apuntes es que no estan en términos de ningun lenguaje de programación, asi que estan al alcance de todos.

Son algunos apuntes sobre la teoria de Orientacion a Objetos que doy en mis clases, son bastante entendibles y faciles de leer, espero que sean de gran ayuda para quienes inician en este tema.

Aquí el enlace a WikiLearning: Apuntes de Orientacion a Objetos para Dummies y la presentación a la que hago referencia en los apuntes.