viernes, 12 de marzo de 2021

Curso de Algoritmos y Programación A Fondo

,

Curso de Algoritmos y Programación a fondo es un libro pensado para enseñar a programar desde cero.
 

La obra propone crear algoritmos tejiendo capas progresivas de software, entendiendo que un programa se erige sobre una construcción previa, la cual se apoya sobre una base anterior, y así sucesivamente.


Cada capítulo está dividido en lecciones. Cada lección es una clase del curso, cuyo contenido tiene doble soporte: el libro en sí mismo, y un video donde el propio autor explica los temas de la lección. Ambos medios se complementan para garantizar que el estudiante adquiera la confianza que le permita internalizar los conocimientos.


Si bien la obra comienza desde cero, avanza hasta cubrir cuestiones complejas. De hecho, el capítulo 6, y a modo de corolario, propone desarrollar un programa compresor/descompresor de archivos basado en el algoritmo de Huffman.
 

Sobre los contenidos de la obra:

  • El capítulo 1 explica las bases de la programación: variable, tipo de dato, estructura de control, lenguaje de programación, sintaxis, compilador, IDE (herramienta de desarrollo), función, argumento, parámetro y TAD (Tipo Abstracto de Dato).
  • El capítulo 2 introduce el concepto de biblioteca de funciones, y propone desarrollar una API para el tratamiento de cadenas de caracteres. Luego, sobre la base de estas funciones se guía al estudiante para crear una nueva API, en este caso de tratamiento de tokens; es decir: considerar que, dentro de una cadena de caracteres, existen varias piezas de información separadas entre sí por un carácter separador. 
Finalmente, se explica el concepto de colección de objetos y se propone desarrollar un TAD basando su implementación en el uso de cadenas tokenizadas; lo cual, dado el grado de abstracción que requiere, conlleva a estudiar punteros a funciones y tipos de dato genéricos o templates.  Este capítulo es un claro ejemplo del tejido progresivo de capas de software que mencionamos anteriormente.
  • El capítulo 3 trata sobre gestión de archivos (ficheros), y propone desarrollar una API genérica para el tratamiento de archivos de registros de longitud fija, además de una serie de ejercicios entre los cuales se encuentran los TAD bitFileReader y bitFileWriter, preparados para leer y escribir bits. Ambas herramientas serán fundamentales para la construcción del compresor de archivos del capítulo 6.
  • El capítulo 4 explica cómo analizar y resolver problemas integrales, de la vida real. Identificando, dentro de un enunciado, entradas, procesos y salidas; aceptando que los datos provienen de archivos de registros y disponiendo del TAD Coll, la herramienta que desarrollamos en el capítulo 2.

Todos los problemas propuestos en este capítulo los resolveremos dos veces: primero con el TAD Coll; luego usaremos otro tipo de colecciones, más eficientes y funcionales, que estudiaremos, desarrollaremos y encapsularemos en el capítulo 5.

  • El capítulo 5 explica estructura de datos (segunda parte) y gestión de memoria: arrays, punteros y direcciones de memoria, concepto de nodo y estructuras dinámicas líneales: lista enlazada, pila y cola. También se propone el desarrollo de diversas API y TAD que faciliten y encapsulen el uso de cada una de estas estructuras. Así surgen los TAD Array (array dinámico), Map (diccionario de datos), List (lista enlazada), Stack (pila) y Queue (cola). Todos genéricos y basados en templates.
  • El capítulo 6, como ya mencionamos, es un ejercicio integrador cuyo desarrollo requerirá aplicar que apliquemos los contenidos estudiados y herramientas desarrolladas durante de este curso de algoritmos y programación A FONDO.


Read more →

miércoles, 5 de febrero de 2020

Java a fondo 2020, 4ta. edición

,
Programar en Java y desarrollar aplicaciones Java son cosas diferentes. La primera requiere conocer el lenguaje de programación. La segunda, además, requiere dominar conceptos de diseño y herramientas genéricas o frameworks que faciliten la automatización de las tareas rutinarias y repetitivas del desarrollo.

Java a fondo conjuga ambos caminos; explicando el lenguaje de programación desde cero y guiando al lector sobre cómo desarrollar aplicaciones Java que respeten los lineamientos de diseño recomendados por los expertos de la industria.

El lenguaje Java propiamente dicho, Programación Orientada a Objetos, JDBC (Acceso a Bases de Datos), Patrones de Diseño, Archivos, Networking, Multithreading y Reflection (Introspección de Clases y Objetos) son, a grandes rasgos, los temas con los cuales desarrollaremos una aplicación Java, distribuida, basada en micro servicios y con acceso a bases de datos. Separando el frontend y el backend, y este último dividido entre las capas de Negocio (façade) y de Acceso a Datos (DAO).

Además, la obra pone en evidencia la necesidad de utilizar frameworks para automatizar ciertas tareas del desarrollo y permitir que el programador se enfoque en resolver el problema de negocio. Para esto se explica cómo diseñar, programar y utilizar emuladores de los frameworks más importantes del mercado: Hibernate (MyHibernate), Spring (MySpring) y Spring Boot (MySpringBoot).
Read more →

martes, 28 de mayo de 2019

Contacto

,
Read more →

lunes, 27 de mayo de 2019

CURSO JAVA / REACT - Full Stack

,

Curso de diseño y desarrollo de aplicaciones empresariales implementadas con Java, Spring Boot, JPA (Hibernate) y REACT JS; a cargo de Pablo A. Sznajdleder (autor de Java a fondo) y Cristian Soria. Consultar próximas fechas.

Por qué estudiar Java y REACT

El desarrollo de aplicaciones empresariales se divide en dos partes: frontend y backend.

El frontend es la parte que interactúa con el usuario. Le permite ingresar datos y le muestra los resultados que se obtuvieron a partir de los datos que ingresó. El backend, en cambio, se ocupa de procesar los datos ingresados por el usuario, elaborar los resultados y entregárselos al frontend para que, finalmente, el usuario los pueda visualizar.

Curso de Desarrollo de Aplicaciones Empresariales
Desde hace más de 20 años, las empresas utilizan Java como lenguaje de programación del backend. Y, en los últimos años, JavaScript se impuso para programar el frontend.

Sobre cada uno de estos lenguajes, existen herramientas que simplifican notablemente la tarea de programación; permitiendo que el programador pueda enfocar su atención en la lógica del negocio y, de este modo, desentenderse de otras cuestiones como: conectividad, seguridad y acceso a las bases de datos.  Estas herramientas, llamadas frameworks, automatizan y resuelven estos temas.

Los frameworks incrementan la productividad tan drásticamente que nadie pondría en duda su utilización. En Java, casi no existen desarrollos que no utilicen Hibernate y Spring Boot. Y para JavaScript la tendencia irreversible es REACT.

Conocer Java también implica conocer Spring Boot y Hibernate; y conocer JavaScript es también conocer REACT. Todos estos conocimientos son imprescindibles para trabajar como programador en una empresa; pues, más del 80% de los desarrollos utilizan Java/REACT.

Breve reseña del curso

El objetivo del curso es proveerle al alumno los conocimientos mencionados más arriba, necesarios para incorporarse rápida y eficientemente al mercado profesional/laboral de desarrollo de aplicaciones empresariales.

La dinámica corresponde a un entretamiento tipo workshop en el cual, luego de explicar cada tecnología, se la incorpora al desarrollo de una aplicación completa; abacando, desde el modelado de datos hasta el análisis, diseño y programación del backend y frontend.

El backend se desarrolla con Java, Spring Boot y JPA (Hibernate). El frontend se desarrolla con REACT. Ambos, backend y frontend, se comunican a través de una API REST que también será analizada y desarrollada durante el curso.

Esta capacitación es EN VIVO. De este modo, el estudiante podrá ver al instructor y el instructor verá a cada uno de los estudiantes EN TIEMPO REAL, tal como sucede en un curso presencial tradicional.

El curso está a cargo de Pablo A. Sznajdleder, autor de "Java a fondo"; y Cristian Soria, estudiante avanzado de Ing. en Sistemas de Información.

FICHA DEL CURSO

DESTINADO A

  • Estudiantes universitarios de las carreras de sistenas de información e informática que quieran conseguir su primer empleo relacionado con la profesión que eligieron. 
  • Programadores con experiencia en otros lenguajes que necesiten acelerar la curva de aprendizaje para poder incursionar en las tecnologías JAVA/REACT.
  • Analistas de sistemas, líderes de proyecto y gerentes de sistemas y de tecnología que requieran información que les permita agilizar la toma de decisión.

REQUISITOS

Para asistir a esta capacitación es necesario tener conocimientos previos sobre programación; en cualquier lenguaje (estructurado u orientado a objetos).

MODALIDAD

El curso se dicta en vivo a través de Zoom. Gracias a esta herramienta, instructor y estudiantes pueden verse e interactuar en tiempo real; compartir pantallas y controlar remotamente las PC.

CONTENIDOS

  • Etapa 1: Se explica el lenguaje de programación Java, teoría de objetos, patrones de diseño y JDBC (acceso a bases de datos). Con estos conocimientos se desarrolla la primera versión de la aplicación (acceso a datos, backend y frontend en modo texto).
  • Etapa 2: Se explica Spring Boot, JPA (Hibernate) y RESTful. Con estos conocimientos se desarrolla la segunda versión del backend de la aplicación.
  • Etapa 3: Se explica el framework REACT y se desarrolla el frontend final de la aplicación.     
Etapas 1 y 2 a cargo de Pablo A. Sznajdleder. Etapa 3 está a cargo de Cristian Soria.

DURACIÓN Y CARGA HORARIA

El curso dura 45 hs. que se distribuyen en 15 días de 3 hs. cada uno. El horario queda sujeto a confirmación una vez que se haya reunido la cantidad mínima de participantes.

TEMARIO

El temario detallado se envía por mail a los interesados.

Read more →

domingo, 26 de mayo de 2019

Servicios profesionales Java / JavaScript

,

A través de nuestros servicios profecionales podemos convertirnos en colaboradores de su proyecto, aportando conocimientos y experiencia en el campo del desarrollo de aplicaciones empresariales implementadas con Java y JavaScript.

Nuestra propuesta

Somos un equipo de profesionales especializado en el desarrollo de sistemas de información implementados con tecnologías Java y JavaScript.

A través de estos servicios profesionales ponemos a su disposición todo nuestro conocimiento y experiencia para acompañarlo en sus proyectos.

Capacitación

Ofrecemos soluciones de capacitación diseñadas a la medida de las necesidades de su proyecto. Seleccionando, especialmente, qué contenidos y con qué profundidad deben ser incluídos en un plan de capacitación que maximize la eficiencia y permita reducir tiempos y costos.

La capacitación puede ser en tiempo real (presencial o por videoconferencia) o en tiempo diferido, a través de videos grabados y con asistencia personalizada programada.

Nuestro servicio de capacitación está regido por la Metodología de Mediación de Interacción, desarrollada y documentada en la tesis de maestría del Ing. Pablo Sznajdleder (UTN.BA, 2018).

Recursos Humanos

Nos encargamos de reclutar y seleccionar programadores Java / JavaScript con cualquier nivel de seniority. Garantizando la calidad y la cantidad de conocimientos del candidato.

Consultoría y coaching

Lo asesoramos sobre tecnologías Java / JavaScript y le brindamos asistencia sobre los diferentes frameworks, patrones de diseño, lineamientos y ténicas sugeridas para trabajar con estos lenguajes de programación.

También lo podemos acompañar desde el inicio del proyecto para generar sinergia y know how entre los miembros de su equipo de trabajo.
Read more →

viernes, 20 de diciembre de 2013

Algoritmos y estructura de datos

,

Recursos

Clases grabadas en video: Algoritmos2019
Apuntes y proyectos (1C): Google Drive
Grupo en Facebook: Algoritmos1UTN
Eclipse para C++: Eclipse
Read more →

miércoles, 20 de noviembre de 2013

Ing. Pablo Augusto Sznajdleder

,

Pablo Augusto Sznajdleder es Ingeniero en Sistemas de Información, egresado de la Universidad Tecnológica Nacional (UTN.BA, 1999).

Su tesis de maestría (UTN.BA, 2018) describe cómo implementar transferencias de conocimientos asistidas por Tecnologías de Mediación de Interacción.

Profesor concursado en la cátedra de "Algoritmos y estructura de datos", y director de cátedra en "Patrones algorítmicos para estructuras avanzadas". Ambas, en UTN.BA.

Autor de diversas obras, entre las que se destacan: "Java a fondo" (Alfaomega/Marcombo), "Curso de algoritmos y programación a fondo" (Alfaomega/Marcombo) y "JEE a fondo" (Alfaomega/Marcombo), entre otras.

Entre 1996 y 2001 trabajó como instructor Java para Sun Microsystems y Oracle Argentina; obteniendo, en 1997, las certificaciones SCJP y SCJD. Estas fueron las primeras certificaciones Java acreditadas en Argentina, y estuvieron entre las primeras logradas en latinoamérica.

Hoy, con 25 años de experiencia en tecnología Java, se desempeña en el ámbito profesional como consultor e instructor, proveyendo servicios de coaching y capacitación para las empresas líderes del país.

.

WhatsApp: +5411 44195282
Email: pablosz@gmail.com


Read more →