0% encontró este documento útil (0 votos)
7 vistas

Programacion III

Silabu de programacion III

Cargado por

axlwick.14
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas

Programacion III

Silabu de programacion III

Cargado por

axlwick.14
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

MACROPROCESO: DOCENCIA

PROCESO: GESTIÓN DE PROGRAMAS ACADÉMICOS


PROCEDIMIENTO: FORMULACION O ACTUALIZACION DEL PROYECTO ACADEMICO EDUCATIVO-PAE PARA PROGRAMAS DE
PREGRADO
CONTENIDOS PROGRAMATICOS PROGRAMAS DE PREGRADO

Código: D-GPA-P01-F02 Versión: 02 Página 1 de 3

Fecha: junio 2021

PROGRAMA ACADÉMICO: INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

SEMESTRE: CUARTO

ASIGNATURA: PROGRAMACIÓN III

CÓDIGO: 8105429

NÚMERO DE CRÉDITOS: 4
PRESENTACIÓN
Esta asignatura se orienta a la formación del estudiante para que conozca los conceptos de diseño, análisis e
implementación de estructuras de datos abstractas, de los algoritmos que permiten su manipulación y de su
aplicación en la solución eficiente de problemas.

Por otra parte, se orientará al estudiante a conocer conceptos básicos de concurrencia en sistemas y su
integración con otros conceptos como son las comunicaciones entre dispositivos de cómputo.

Por último, se resaltará la importancia de los diseños en sistemas con arquitectura distribuida y de los retos que
presentan dichos sistemas.

JUSTIFICACIÓN
En el mundo laboral, se requieren profesionales capaces de afrontar situaciones reales y dinámicas, que estén
focalizados en la gestión y desarrollo de las mejoras continuas, por ello esta asignatura contribuye a formar las
bases fundamentales, del futuro Ingeniero de Sistemas y Computación, que esté en la capacidad de aplicar los
conocimientos adquiridos en la construcción de soluciones a los problemas presentados, haciendo uso de
diferentes herramientas computacionales.

Luego de analizar el ámbito internacional es evidente que una de las habilidades más demandadas por las
compañías de Tecnología Informática, es la de desarrollar aplicaciones, según la “Encuesta de Salarios IT
2017”, realizada por el Portal Computer World; en el campo nacional el panorama es similar teniendo en cuenta
el “Estudio de salarios y profesionales del sector de Software y TI de Colombia 2016”, elaborado por MinTIC y
FEDESOFT, donde se presentan los perfiles más solicitados en la industria nacional, destacándose los
relacionados con el área de desarrollo, lo que es corroborado con otros estudios que señalan el déficit de
profesionales con estos perfiles, por ello la estructura de esta asignatura contribuye de manera efectiva a
responder a las necesidades de esta industria.

Por otra parte, es justo mencionar que las habilidades que se desarrollan en esta asignatura, sirven como base
para el abordaje de asignaturas de otras áreas que hacen parte del plan de estudios del Programa.

Por último, es importante resaltar que la lógica de programación actualmente se considera una habilidad
transversal, debido a que contribuye al desarrollo del pensamiento lógico y matemático, que se requiere en
cualquier campo de la Ingeniería. Existen, además, comunidades académicas que han identificado la necesidad
de incluir temas de lógica de programación, desde tempranas edades en los primeros niveles de escolaridad.
MACROPROCESO: DOCENCIA
PROCESO: GESTIÓN DE PROGRAMAS ACADÉMICOS
PROCEDIMIENTO: FORMULACION O ACTUALIZACION DEL PROYECTO ACADEMICO EDUCATIVO-PAE PARA PROGRAMAS DE
PREGRADO
CONTENIDOS PROGRAMATICOS PROGRAMAS DE PREGRADO

Código: D-GPA-P01-F02 Versión: 02 Página 2 de 3


COMPETENCIAS
Adquirir una visión global de la Ingeniería de Sistemas y Computación en el campo laboral y construir modelos
de solución algorítmicas focalizadas en las bases de la lógica y la programación, con el fin de construir
soluciones reales, viables y de eficaz implementación en un lenguaje de programación

 Conoce, diferencia y utiliza estructuras dinámicas de datos para dar solución a problemas de diferentes
niveles de complejidad
 Entiende y aplica conceptos de programación concurrente
 Conoce los principios básicos de transmisión de datos en la arquitectura cliente-servidor
 Integra los conocimientos adquiridos en la construcción de software multiusuario
 Implementa estructuras de datos en diferentes lenguajes de programación
 Utiliza herramientas de software para soportar los procesos de las etapas del ciclo de vida del
desarrollo de software
 Trabaja en equipo para dar solución a problemas planteados
 Genera código de calidad aplicando buenas prácticas de programación

RESULTADOS DE APRENDIZAJE

 Utilizo estructuras dinámicas de datos (listas, arboles, grafos) para dar solución a problemas
relacionados con el manejo de la información en diferentes contextos organizacionales, a partir del
trabajo en equipo y aplicando buenas prácticas en la construcción de software.

 Aplico conceptos de programación concurrente y principios básicos de transmisión de datos en la


construcción de aplicaciones multiusuario utilizando la arquitectura cliente-servidor.

 Utilizo diferentes lenguajes de programación y herramientas especializadas en cada una de las etapas
del ciclo de vida de desarrollo de software.

 Leo documentos técnicos en idioma inglés y utilizo términos propios del mismo en el proceso de
codificación.

METODOLOGÍA
Esta asignatura será guiada en los espacios presenciales por la complementación conceptual del docente al
trabajo de preparación previo que los estudiantes han realizado sobre la temática particular a tratar en la sesión;
por lo tanto, un tema será abordado en cuatro momentos:

1. Preparación, consulta e investigación conceptual por cuenta del estudiante y su pequeño grupo de
trabajo.
2. Tratamiento conceptual del tema en sesión del gran grupo junto con el docente.
3. Aplicación de talleres individuales y cooperativos a nivel tutorial.
4. Desarrollo de actividades de refuerzo en sesiones autónomas.

De lo anterior se verifica que en la actividad 1, el estudiante constituirá conflictos conceptuales de baja


complejidad, a solucionar en el transcurso de la actividad 2, entre tanto, la actividad 4 generará conflictos
cognitivos orientados a la aplicación, a subsanar con la actividad 3.

Se considera que el estudiante debe alcanzar un amplio trabajo autónomo, que posteriormente será
complementado por el trabajo cooperativo de su pequeño grupo. La generación de conflictos cognitivos es
importante y necesaria, para que las sesiones de gran grupo cumplan con su objetivo de afianzamiento del
MACROPROCESO: DOCENCIA
PROCESO: GESTIÓN DE PROGRAMAS ACADÉMICOS
PROCEDIMIENTO: FORMULACION O ACTUALIZACION DEL PROYECTO ACADEMICO EDUCATIVO-PAE PARA PROGRAMAS DE
PREGRADO
CONTENIDOS PROGRAMATICOS PROGRAMAS DE PREGRADO

Código: D-GPA-P01-F02 Versión: 02 Página 3 de 3


conocimiento.

INVESTIGACIÓN
La asignatura por sus condiciones particulares, promueve en el estudiante la investigación formativa, de modo
sea posible obtener los fundamentos con los que podrá posteriormente vincularse en el tratamiento de áreas
específicas de la disciplina Informática, por medio de los grupos y semilleros de investigación dinamizados al
interior de la Escuela de Ingeniería de Sistemas y Computación.

MEDIOS AUDIOVISUALES
Salas de informática

La asignatura es eminentemente práctica, de manera que se hace necesario que todas sus clases sean
cumplidas en salas de informática.

EVALUACIÓN
EVALUACIÓN COLECTIVA
No aplica.
EVALUACIÓN INDIVIDUAL
La evaluación en la asignatura está orientada a determinar el nivel de desarrollo de los procesos lógicos en el
estudiante, junto con su capacidad para abstraer problemas y generar soluciones informáticas.

RANGOS DE VALORACIÓN (%)

El cálculo de la nota final se hará de la siguiente manera:

 60% Evaluaciones
 20% Talleres y exposiciones
 20% Trabajos

CONTENIDOS TEMÁTICOS CENTRALES


1. ESTRUCTURAS DINAMICAS (clases genéricas)
1.1. Listas
1.2. Pilas
1.3. Colas
1.4. Utilización de iteradores
1.5. Análisis de complejidad
2. ESTRUCTURAS RECURSIVAS BINARIAS
2.1. Arboles binarios
2.2. Arboles ordenados balanceados (AVL)
3. ESTRUCTURAS RECURSIVAS N-ARIAS
3.1. Arboles n-arios
4. GRAFOS
4.1. Algoritmos de recorrido (profundidad, niveles y heurístico)
4.2. Algoritmos de búsqueda de caminos mínimos
4.3. Algoritmo de Djkstra
4.4. Algoritmo y camino de Euler
4.5. Ciclos y caminos de Hamilton
4.6. Arboles de recubrimiento
4.7. Matrices dispersas
5. PROCESOS MULTIHILO
5.1. Definiciones y conceptos básicos (Thread, Runnable)
5.2. Ciclo de vida de un hilo
MACROPROCESO: DOCENCIA
PROCESO: GESTIÓN DE PROGRAMAS ACADÉMICOS
PROCEDIMIENTO: FORMULACION O ACTUALIZACION DEL PROYECTO ACADEMICO EDUCATIVO-PAE PARA PROGRAMAS DE
PREGRADO
CONTENIDOS PROGRAMATICOS PROGRAMAS DE PREGRADO

Código: D-GPA-P01-F02 Versión: 02 Página 4 de 3


5.3. Grupos de hilos
5.4. Estados de un hilo
5.5. Comunicación entre hilos
6. TRANSMISIÓN DE DATOS
6.1. Sockets
6.2. Envió de archivos binarios
6.3. Protocolos de comunicación (XML - JSON)
7. SERVICIOS EN SISTEMAS DISTRIBUIDOS

LECTURAS MÍNIMAS
Artículos y apartados bibliográficos de los diferentes temas a tratar, proporcionados por el Docente. Consulta
permanente a los foros de las comunidades de desarrolladores.

BIBLIOGRAFÍA
 Bruce Eckel. Piensa en Java. 4ta edición. Pearson Education. 2007
 Robert Sedgewick, Kevin Wayne. Algorithms. Addison Wesley. 2011
 Robert C. Martin. Codigo limpio. Manual de estilo para el desarrollo ágil de software. Prentice Hall.
2009
 Martin Fowler y Kendall Scot. UML gota a gota. Publisher, Pearson Educación, 1999.
 Jorge Villalobos y Rubby Casallas. Fundamentos de programación. Aprendizaje activo basado en
casos. Pearson Prentice Hall. (2007).
 Stephen Stelting y Olav Maassen. Applied Java Paterns. Publisher: Prentice Hall PTR First Edition.
2001
 Alexander Hristov. Manual de estilo de programación. Creative Commons. 2007
 Cliford A. Shafer. Data Structures & Algorithm analysis in JAVA. Pearson Education. 2012.
 Mark Allen Weiss. Estructuras de datos en JAVA. Pearson Education. 2013
 Carlo Casorzo G. Estructuras de datos abstractas en lenguaje JAVA. Universidad de Santiago de
Chile.
 Joyanes A., Luis. Algoritmos y estructuras de datos: una perspectiva en C. McGraw-Hill. 2004, 655 p
 WEISS, Mark Allen. Estructuras de Datos en Java. Pearson Ed. 2000
 Lewis, J; Chase, J. Estructuras de datos con Java. Pearson. 2006
 Joyanes, Luis; Zahonero, Ingnacio. Estructuras de Datos en Java. McGraw-Hill. 2008.
 LANGSAM, Yedidyah. Estructuras de datos con C y C++. Prentice-Hall, 1997
 MARTÍ, Narciso Oliet y otros. Estructuras de Datos y Métodos Algorítmicos. Pearson. 2004.
 Fowler Martin et al, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 2012.
 Karavirta Ville and Shaffer Cliff CS2 Software Design & Data Structures, OpenDSA Project, 2017.
 Chawdhuri Debasish Ray, Java 9 Data Structures and Algorithms, Packt Publishing Ltd, 2017.
 McAllister William, Data Structures and Algorithms Using Java, Jones & Bartlett Publishers, 2010.
 Skiena, Steven S, The Algorithm Design Manual, Springer, 2008.
 Rusty Elliotte, Java Network Programming: Developing Networked Applications, O'Reilly Media, Inc,
2013.
 Goetz Brian et al, Java Concurrency in Practice, Addison-Wesley Professional, 2006.

En línea:

 Deitel, P. (2018). Java how to program. (11a. ed.) Pearson Educación. Tomado de
https://biblio.uptc.edu.co:2566/?il=7164
 Flórez, Héctor (2012). Programación orientada a objetos usando Java. Ecoe Ediciones. Tomado de
MACROPROCESO: DOCENCIA
PROCESO: GESTIÓN DE PROGRAMAS ACADÉMICOS
PROCEDIMIENTO: FORMULACION O ACTUALIZACION DEL PROYECTO ACADEMICO EDUCATIVO-PAE PARA PROGRAMAS DE
PREGRADO
CONTENIDOS PROGRAMATICOS PROGRAMAS DE PREGRADO

Código: D-GPA-P01-F02 Versión: 02 Página 5 de 3


https://biblio.uptc.edu.co:2540/a/30030
 Reges, S. (2018). Building Java Programs. (4a. ed.) Pearson Educación. Tomado de
https://biblio.uptc.edu.co:2566/?il=6292
 Joyanes, L. (2020). Fundamentos de programación. (5a. ed.) McGraw-Hill Interamericana. Tomado
de https://biblio.uptc.edu.co:2566/?il=10409
 Vásquez, B. (2018). Java y C++. Ediciones de la U. Tomado de
https://biblio.uptc.edu.co:2566/?il=9083
 Martín, A (2018). JAVA Curso práctico de formación. Editorial RC. Tomado de
https://biblio.uptc.edu.co:3040/library/publication/java-curso-practico-de-formacion
 Algoritmos y estructuras de datos. http://www.cimec.org.ar/~mstorti/aed/aednotes.pdf
 Java documentation Oracle. https://docs.oracle.com/javase/tutorial/java/TOC.html
 Java, API especification Oracle. https://docs.oracle.com/javase/8/docs/api/overview-summary.html
 Programación y estructuras de datos. https://ocw.ua.es/es/ingenieria-y-arquitectura/programacion-y-
estructuras-de-datos-2009.html
 Google Java code guide. https://google.github.io/styleguide/javaguide.html#s3.3.2-import-line-
wrapping.
 https://ocw.ua.es/es/ingenieria-y-arquitectura/programacion-y-estructuras-de-datos-2009.html

También podría gustarte