• No se han encontrado resultados

E: Solución de Problemas (T) K: Herramientas de Ingeniería (T) Resultados de Aprendizaje

N/A
N/A
Protected

Academic year: 2021

Share "E: Solución de Problemas (T) K: Herramientas de Ingeniería (T) Resultados de Aprendizaje"

Copied!
6
0
0

Texto completo

(1)

FACULTAD DE INGENIERÍA

DEPARTAMENTO DE TECNOLOGÍAS DE INFORMACIÓN Y COMUNICACIONES

Código-Materia: 09703 - Algoritmos Y Programación I

Programa – Semestre: Ingeniería Telemática – Ingeniería Sistemas – Segundo Semestre Período académico: 16-2

Intensidad semanal: 5 horas

Créditos: 3

Programa: Ingeniería de Sistemas Resultados de Aprendizaje relacionados con el Programa • E: Solución de Problemas (T) • K: Herramientas de Ingeniería (T) Fuente de Valoración NO Resultados de Aprendizaje Programa: Ingeniería Telemática

Resultados de Aprendizaje relacionados con el Programa • E: Solución de Problemas (T) • K: Herramientas de Ingeniería: (T) Fuente de Valoración NO Resultados de Aprendizaje Descripción

Es el segundo curso del bloque curricular de formación de algoritmos en las carreras profesionales de Ingeniería de Sistemas e Ingeniería Telemática. Es el primer curso en el que los estudiantes se aproximan al proceso de desarrollo de software alineado al método de diseño de la ingeniería haciendo análisis y diseño orientado a objetos y utilizando un lenguaje de programación bajo el mismo paradigma de programación. Los estudiantes que llegan a este curso han incorporado algunos elementos de pensamiento algorítmico y utilizan herramientas para diseño como diagramas de flujo de datos, pero no necesariamente han escrito programas de computador utilizando un lenguaje de programación. Aunque estos conocimientos previamente adquiridos son útiles y facilitan el desarrollo del curso, no son un requisito estricto pues el curso no requiere ninguna formación específica previa.

Objetivos

General

Resolver problemas de una realidad simple, enmarcados en el proceso de desarrollo de software, a través de programas de computador desarrollados bajo los principios fundamentales del paradigma de programación orientado a objetos, aplicando conceptos de estructuras de datos simples y las estructuras de control lógicas tradicionales del programa estructurado (secuencia, condición, repetición).

Terminales:

(2)

OT1. Analizar y especificar un problema a través de la identificación de las de las necesidades y las principales entidades del contexto del problema.

OT2. Proponer la especificación del diseño de una solución a un problema de programación.

OT3. Escribir la implementación de la solución de un problema a través de un lenguaje de programación. OT4. Llevar a cabo el proceso de la solución de un problema de forma ordenada, sistemática y teniendo en cuenta elementos de calidad verificables en cada una de las etapas.

Objetivos Específicos:

Unidad 1: Problemas, soluciones y programas

Al finalizar esta unidad, el estudiante estará en capacidad de:

OE1.1. Explicar el proceso global de solución de un problema usando un programa de computador. Esto incluye las etapas que debe seguir para resolverlo y los distintos elementos que debe ir produciendo a medida que construye la solución.

OE1.2. Analizar un problema simple que se va a resolver usando un programa de computador, construyendo un modelo con los elementos que intervienen en el problema y especificando los servicios que el programa debe ofrecer.

OE1.3. Explicar la estructura de un programa de computador y el papel que desempeña cada uno de los elementos que lo componen.

OE1.4. Completar una solución parcial a un problema usando expresiones simples: declaraciones de variables, asignaciones e invocaciones a métodos. Esto implica entender los conceptos de parámetro y de creación de objetos.

OE1.5. Utilizar un ambiente de desarrollo de programas y un espacio de trabajo predefinido, para completar una solución parcial a un problema.

OE1.6. Interpretar la documentación (modelos conceptuales y especificación de las operaciones) de una solución parcial y utilizar dicha documentación para poder incorporar atributos, métodos y llamados a métodos con el fin de completar la solución.

OE1.7. Identificar de manera informal los métodos de una clase y clasificarlos en métodos para inicializar, consultar y modificar.

Unidad 2: Definición de situaciones y manejo de casos

Al finalizar esta unidad, el estudiante estará en capacidad de:

OE2.1 Modelar las características de un objeto, utilizando tipos de datos primitivos y la técnica de definir constantes para representar los valores posibles de un atributo.

OE2.2. Declarar y utilizar variables diferenciando entre tipos de datos primitivos y tipos de datos referenciados.

OE2.3. Utilizar expresiones aritméticas, lógicas, relacionales y operaciones con cadenas en el cuerpo de un método.

OE2.4. Declarar y hacer llamados a métodos constructores y utilizar null en el caso en que un objeto no haya sido inicializado.

OE2.5. Utilizar las instrucciones condicionales como parte del cuerpo de un método, para poder considerar distintos casos de la solución de un problema.

OE2.6. Documentar un método utilizando un formato dado y clasificar los métodos de una clase entre: constructores, modificadores, de consulta y de calcular valores.

OE2.7. Interpretar los errores producidos en tiempo de ejecución para el caso en que se realicen llamados u operaciones con objetos que no han sido construidos.

OE2.8. Especificar en la documentación de cada método el tiempo que ha tomado desarrollarlo y el número de líneas de código.

(3)

OE2.9. Valorar la coherencia estricta entre el diseño propuesto en el diagrama de clases y la implementación en el lenguaje de programación.

Unidad 3: Manejo de grupos de atributos

Al finalizar esta unidad, el estudiante estará en capacidad de:

OE3.1. Utilizar las estructuras contenedoras de tamaño fijo como elementos para modelar una característica de un elemento del mundo que permiten almacenar una secuencia de valores (simples y objetos).

OE3.2. Utilizar las estructuras contenedoras de tamaño variable como elementos de modelado que permiten manejar atributos cuyo valor es una secuencia de objetos.

OE3.3. Dibujar e interpretar en un diagrama de clases las estructuras contenedoras de tamaño fijo y variable.

OE3.4. Utilizar las instrucciones iterativas para resolver problemas en donde se requiera repetir un conjunto de instrucciones.

OE3.5. Utilizar las instrucciones iterativas para manipular estructuras contenedoras de una sola dimensión que albergan elementos de tipos primitivos y/o objetos.

OE3.6. Interpretar los errores producidos en tiempo de ejecución para el caso en que se consulte una posición por fuera del rango en una estructura contenedora.

OE3.7. Verificar y corregir las inconsistencias que se pueden presentar entre cada uno de los elementos de diseño propuestos en el diagrama de clases y su implementación en el lenguaje de programación.

Unidad 4: Definición y cumplimiento de responsabilidades

Al finalizar esta unidad, el estudiante estará en capacidad de:

OE4.1. Utilizar la definición de un contrato para construir un método.

OE4.2. Utilizar la definición del contrato de un método para invocarlo de manera correcta.

OE4.3. Utilizar algunas técnicas simples para realizar la asignación de responsabilidades de las clases. OE4.4. Escribir una clase completa del modelo del mundo, siguiendo una especificación dada en

términos de un conjunto de contratos.

OE4.5. Documentar los contratos de los métodos utilizando la sintaxis definida por la herramienta Javadoc.

OE4.6. Utilizar la clase Exception de Java para manejar los problemas asociados con la violación de los contratos.

Unidad 5: Construcción de la interfaz gráfica

Al finalizar esta unidad, el estudiante estará en capacidad de:

OE5.1. Utilizar una arquitectura para un programa simple, repartiendo de manera adecuada las responsabilidades entre la interfaz de usuario y el modelo del mundo. El estudiante deberá poder explicar la importancia de mantener separadas las clases de estos dos dominios.

OE5.2. Construir las clases que implementan una interfaz de usuario sencilla e integrarlas con las clases que implementan el modelo del mundo del problema.

OE5.3. Aplicar la técnica de descomposición de requerimientos para cumplir con la funcionalidad de un programa desde las clases que implementan la interfaz hasta las que implementan el mundo de un problema

OE5.4. Utilizar la instrucción try-catch y algunos métodos de la clase Exception de Java para manejar los problemas asociados con la conversión de tipos de datos.

Unidad 6: Manejo de estructuras de dos dimensiones y persistencia

(4)

OE6.1. Desarrollar un programa completo, teniendo una visión global de las etapas del proceso que se debe seguir para resolver un problema usando un computador.

OE6.2. Utilizar el concepto de matriz como elemento de modelaje, pudiendo así agrupar los elementos del mundo en una estructura contenedora de dos dimensiones de tamaño fijo.

OE6.3. Resolver problemas que requieran recorridos en una estructura de dos dimensiones de tamaño fijo.

OE6.4. Explicar los conceptos de sistema de archivos, archivo, ruta relativa y ruta absoluta. OE6.5. Utilizar un esquema simple de persistencia para manejar el estado inicial de un problema.

OE6.6. Utilizar la instrucción try-catch y algunos métodos de la clase Exception de Java para manejar los problemas asociados con la lectura de archivos.

Metodología

Para los estudiantes:

La herramienta de E-learning (moodle) es el medio que contiene la información oficial del curso y es responsabilidad del estudiante consultar en ella todo lo referente al curso, especialmente las actualizaciones del material, actividades y calificaciones.

De acuerdo a la metodología de aprendizaje activo de la universidad Icesi, los estudiantes deben preparar, antes de la clase, los temas asignados en la programación del curso. Esto es:

 Leer y estudiar el material asignado para la sección de clase.

 Utilizar estrategias de estudio (mapas conceptuales, mapas mentales, resúmenes, etc.) que sean efectivas y que sirvan como refuerzo después del proceso de lectura.

 Contestar las preguntas que contiene el material, así como las preguntas adicionales que el profesor entregue.

 Resolver los ejercicios propuestos en el material, así como los ejercicios adicionales que se le entreguen.

 Formular preguntas que requieran ser resueltas durante la clase. Durante la clase, el estudiante deberá:

 Plantear las dudas que le quedaron durante el proceso de estudio del tema a tratar.

 Participar en las actividades de revisión y consolidación de conceptos que proponga el profesor.  Trabajar en la solución de los problemas de aplicación que se propongan.

Después de la clase:

 Establecer las relaciones entre los temas tratados en la clase y el conocimiento previamente adquirido.

 Resolver los ejercicios de aplicación del tema, que tienen un nivel de complejidad mayor al de los ejercicios que resolvió previamente.

Para el desarrollo del curso:

Este curso cuenta semanalmente con dos espacios que son utilizados de la siguiente forma:

 Salón de clases: los estudiantes y el profesor se encontrarán en este espacio, en dos sesiones de una hora y media (una hora, 30 minutos) en las cuales se llevará a cabo la discusión de los diferentes temas y la realización de ejercicios que permitan ponerlos en práctica.

(5)

 Sala de cómputo: los estudiantes, el profesor y el monitor comparten el espacio en la sala de cómputo para llevar a cabo la solución de problemas propuestos y su implementación en el lenguaje Java. Para este componente se han destinado dos (2) horas por semana.

Este curso utilizará Java como lenguaje de programación y Eclipse como entorno de desarrollo. No obstante los objetivos de aprendizaje son independientes del lenguaje y el entorno de programación seleccionado.

Evaluación

En todas las evaluaciones de carácter escrito se tendrá en cuenta la GRAMÁTICA, ORTOGRAFÍA y

PUNTUACIÓN con el objetivo de desarrollar y consolidar la competencia de escritura del estudiante. Las

evaluaciones del curso están programadas en el cronograma del curso disponible en moodle.

Las evaluaciones del curso se han dividido en dos tipos: evaluaciones individuales y Tareas-proyectos. A continuación se explican cuáles actividades son consideradas evaluaciones individuales y cuáles proyectos:

Evaluaciones individuales:

El curso cuenta con 3 momentos de evaluación individual en el salón de clase:

Controles de lectura y quices: corresponde a todas las comprobaciones de lectura y de aprendizaje

que se hagan durante el curso. Estas comprobaciones pueden realizarse con o sin previo aviso por parte del profesor.

Examen Escrito: durante el semestre se llevarán a cabo 3 exámenes escritos: primer parcial, segundo parcial y examen final.

Examen Práctico: durante el semestre se llevarán a cabo 3 exámenes prácticos durante las horas de laboratorio de cada grupo y en franjas (grupos de algoritmos en simultáneo) para la tercera evaluación práctica. Los exámenes prácticos no tienen supletorio.

Supletorios: Los supletorios se realizarán de acuerdo al libro de normas y deberes de la Universidad Icesi. Los supletorios serán realizados desde la coordinación del curso, por tanto las solicitudes, recibos y demás trámites deben realizarse con el coordinador del curso en las fechas estipuladas en el reglamento. Únicamente tendrán supletorios los exámenes escritos 1, 2 y 3.

Tareas-proyectos:

 Semanalmente los estudiantes deben entregar utilizando la plataforma de e-learning (moodle) el desarrollo del laboratorio asignado para la clase en sala. La nota de laboratorios se calcula promediando la nota de todos los laboratorios programados en el semestre.

 Durante el semestre, los estudiantes deben desarrollar un proyecto o tarea general que reúne la mayoría de los conceptos vistos en clase.

Nota definitiva:

Para calcular la nota definitiva debe considerarse que la nota de proyectos sólo aplicará para aquellos estudiantes que al final del semestre tengan una nota de evaluaciones individuales con valor mayor o igual a 3.0. Teniendo en cuenta lo anterior la nota definitiva será calculada de la siguiente manera:

Si (nota de evaluaciones < 3.0) entonces: Nota definitiva = nota de evaluaciones

(6)

Si (nota de evaluaciones >= 3.0) entonces:

Nota definitiva = (nota de evaluaciones * 0.7) + (nota de laboratorios * 0.3)

A continuación se especifican los porcentajes de las evaluaciones: Evaluaciones Evaluación Porcentaje Examen Escrito 1 15% Examen Escrito 2 20% Examen Final 20% Examen Práctico 1 10% Examen Práctico 2 10% Examen Práctico 3 10% Controles de lectura y quices 15% Nota de evaluaciones 100% Tareas-proyectos Evaluación Porcentaje Laboratorios y tareas 50% Proyecto 50% Nota de Proyectos 100%

Los exámenes prácticos no tienen supletorio. TUTORÍAS GRUPALES

El Departamento de TIC ofrece 6 sesiones de tutoría grupales a la semana, de 2 horas cada una, para el bloque de algoritmos y programación desde la semana 3 del semestre. En estos espacios los estudiantes cuentan con un profesor del área con el cual pueden resolver interrogantes que hayan quedado sobre temáticas del curso o ser asesorados en dudas puntuales que tengan respecto a la solución de problemas. El horario y los espacios de estas tutorías serán informados oportunamente entre la primera y la segunda semana del semestre académico.

Bibliografía

 Texto guía: Villalobos, Jorge A. Casallas G. Rubby ; “Fundamentos de programación: Aprendizaje activo basado en casos”. Versión Electrónica del Libro disponible en:

https://www.gitbook.com/book/universidad-de-los-andes/fundamentos-de-programacion/details. Consultada por última vez el 27 de Julio de 2016.

 Jiménez, Luz Elena. “Conceptos Básicos de Programación con Java”. Tercera Edición - U. Icesi, 2008  Ceballos, Francisco Javier. "Java 2 - Curso de programación". Alfaomega, 2003

Referencias

Documento similar

El contar con el financiamiento institucional a través de las cátedras ha significado para los grupos de profesores, el poder centrarse en estudios sobre áreas de interés

El tercero tiene notas bajas pero la mayor es estadística, una de las temáticas trabajadas de forma más mecánica, asimismo el último arquetipo muestra que, aun con notas buenas,

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

[r]

Minería de Datos Tipo de Software Plataforma Base de Datos Tipo de Reportes

[r]

[r]

Luis Miguel Utrera Navarrete ha presentado la relación de Bienes y Actividades siguientes para la legislatura de 2015-2019, según constan inscritos en el