Este documento presenta el plan de estudios de la asignatura "Fundamentos y Lógica de Programación" de la Licenciatura en Ingeniería en Sistemas Computacionales. El objetivo general del curso es que los estudiantes aprendan a crear algoritmos y a codificarlos en lenguajes de programación como C. El plan de estudios cubre temas como la evolución de la programación, conceptos básicos, lógica de programación, representación de algoritmos, control de flujo, y codificación en diferentes lenguajes como C, C++ y Java. El
Tarrajeo, tipos de tarrajeos, empastados, solaqueos y otros revestimientos.
Fundamentos y Lógica de Programación
1. UNIVERSIDAD TECNOLÓGICA DE MÉXICO
LICENCIATURA EN INGENIERÍA EN SISTEMAS COMPUTACIONALES
PROGRAMAS DE ESTUDIO
NOMBRE DE LA ASIGNATURA: Fundamentos y Lógica de Programación
CICLO ESCOLAR: Tercer Cuatrimestre
CLAVE DE LA ASIGNATURA:
SC7301
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
Al finalizar el curso el alumno será capaz de:
Crear algoritmos para dar solución a problemas elementales de proceso de datos,
mediante la aplicación de la lógica de programación.
Expresar algoritmos informáticos mediante diagramas de flujo y pseudocódigos.
Codificar algoritmos informáticos elementales en el lenguaje C de programación
estructurada/procedural.
Analizar y explicar algoritmos procedurales elementales, codificados en diversos
lenguajes de programación híbridos (C++), orientados a objetos (Java) y orientados a
eventos (Visual Basic.NET).
Reconocer y valorar la importancia de la programación de sistemas informáticos en la
industria de las Tecnologías de Información.
TEMAS Y SUBTEMAS
1. Evolución de la programación de sistemas informáticos
1.1. Antecedentes históricos de la programación de sistemas informáticos
1.2. Conceptualización de la programación de sistemas informáticos
1.2.1. Objetivo y alcances de la programación de sistemas informáticos
1.2.2. La programación como proceso de creación de soluciones
1.2.3. La programación como etapa fundamental del ciclo de desarrollo de
sistemas informáticos
1.2.4. Paradigmas de programación
1.2.4.1. Programación estructurada/procedural
1.2.4.2. Programación modular
1.2.4.3. Programación orientada a objetos
1.2.4.4. Programación orientada a eventos
1.3. Importancia de la programación de sistemas informáticos
1.4. Actualidad y tendencias de la programación de sistemas informáticos
2. Conceptos fundamentales en programación de sistemas informáticos
2.1. Dispositivos de cómputo
2.1.1. Tipos de dispositivos
2.2. Programas
2.2.1. Sistemas operativos y programas de control de dispositivos
2.2.2. Sistemas de información y programas aplicativos
2. 2.2.3. Herramientas y ambientes de programación de sistemas
2.3. Datos
2.3.1. Niveles de relevancia
2.3.1.1. Dato
2.3.1.2. Información
2.3.1.3. Conocimiento
2.3.1.4. Imaginación
2.3.2. Unidades de almacenamiento físico
2.3.3. Manipulación de datos
2.3.3.1. Recopilación de datos
2.3.3.2. Procesamiento de datos
2.3.3.3. Generación de datos
2.3.3.4. Divulgación de datos
2.4. Lenguajes y herramientas de Programación
2.4.1. Concepto y objetivos de un lenguaje de programación
2.4.2. Descripción general de los elementos de un lenguaje de programación
2.4.3. Clasificación de los lenguajes de programación
2.4.3.1. Por su nivel
2.4.3.2. Por su orientación
2.4.4. Tipos de código
2.4.4.1. Código fuente
2.4.4.2. Código intermedio
2.4.4.3. Código ejecutable/interpretable
2.4.5. Componentes de los Ambientes y herramientas de programación
2.4.5.1. Editores
2.4.5.2. Compiladores
2.4.5.2.1. Etapa de Análisis
2.4.5.2.2. Etapa de Síntesis
2.4.5.3. Depuradores
2.4.5.4. Traductores e Intérpretes
3. Fundamentos de la lógica de programación
3.1. Elementos de Lógica
3.1.1. Concepto y objetivos de la Lógica
3.1.2. Silogismos, proposiciones y premisas
3.1.3. Calidad de las premisas y las conclusiones
3.1.4. Operadores lógicos y tablas de verdad
3.2. Lógica de programación
3.2.1. Concepto y objetivos de la Lógica de programación
3.2.2. Aplicación de la Lógica en programación
3.3. Enunciados lógicos orientadas a programación (órdenes/expresiones)
3.3.1. Propósito de los enunciados lógicos orientadas a programación
3.3.2. Principios de elaboración de enunciados lógicos orientadas a programación
3.3.2.1. Principios relacionados con los datos de entrada
3.3.2.2. Principios relacionados con el proceso
3.3.2.3. Principios relacionados con los datos de salida
4. Generalidades de los Algoritmos y Programas informáticos
4.1. Concepto y utilidad de los algoritmos
4.2. Relación entre algoritmos y lógica de programación
4.3. Descripción de las formas de representación algorítmica
3. 4.3.1. Pseudocódigos
4.3.1.1. Especificación estructurada de procesos de Yourdon
4.3.1.2. Miniespecificaciones
4.3.1.3. Descripción de las reglas para la escritura de pseudocódigos
4.3.2. Diagramas de flujo
4.3.2.1. Estándares de diagramación de la norma ANSI/ISO 5807-1985
4.3.2.2. Simbología ANSI/ISO 5807-1985
4.3.2.3. Simbología Böhm-Jacopini
4.3.2.4. Simbología Nassi-Schneiderman
4.3.2.5. Descripción de las reglas para la construcción de diagramas de flujo
4.4. Codificación y ejecución de un algoritmo informático
4.4.1. Ejemplo representativo de un algoritmo y de su codificación (programa) en
un lenguaje de programación estructurada/procedural
4.4.2. Elementos de un ambiente de programación estructurada/procedural
4.4.3. Editores de código fuente
4.4.4. Compilación de un programa
4.4.5. Errores de código
4.4.5.1. A tiempo de compilación
4.4.5.2. A tiempo de ejecución
4.4.5.3. Estrategias para corrección de errores
4.4.6. Depuración y seguimiento de código
4.4.7. Ejecución de un programa
5. Elementos integrales de los Algoritmos y Programas informáticos
5.1. Valores constantes y variables
5.1.1. Naturaleza de los datos
5.1.2. Propiedades de los datos
5.1.3. Dominios de los datos
5.1.4. Tipos de datos soportados por un lenguaje de programación
estructurada/procedural
5.1.5. Declaración e "inicialización" de variables en un lenguaje de programación
estructurada/procedural
5.2. Operadores básicos
5.2.1. Aritméticos
5.2.2. Lógicos
5.2.3. Relacionales
5.2.4. De asignación
5.2.5. Operadores soportados en un lenguaje de programación
estructurada/procedural
5.3. Expresiones
5.3.1. Formación y escritura de expresiones (órdenes)
5.3.2. Reglas de precedencia y orden de evaluación de los operadores en las
expresiones
5.3.3. Expresiones básicas de entrada y salida de datos
5.3.4. Codificación de expresiones en un lenguaje de programación
estructurada/procedural
5.3.5. Secuencias de expresiones
5.3.6. Diagramas de flujo de las secuencias de expresiones
5.3.7. Pseudocódigo de las secuencias de expresiones
5.3.8. Codificación de secuencias de expresiones en un lenguaje de
programación estructurada/procedural
4. 5.3.9. Ejemplos representativos de algoritmos basados en secuencias de
expresiones y su codificación en un lenguaje de programación
estructurada/procedural
6. Control del flujo de proceso en Algoritmos y Programas informáticos
6.1. Expresiones de decisión
6.1.1. Concepto y utilidad de las bifurcaciones condicionales
6.1.2. Diagramas de flujo de las bifurcaciones condicionales
6.1.3. Pseudocódigo de las bifurcaciones condicionales
6.1.4. Codificación de expresiones en un lenguaje de programación
estructurada/procedural
6.2. Expresiones de repetición
6.2.1. Concepto y utilidad de las estructuras de repetición (ciclos)
6.2.2. Diagramas de flujo de ciclos
6.2.3. Pseudocódigo de ciclos
6.2.4. Codificación de ciclos en un lenguaje de programación
estructurada/procedural
6.2.5. Ejemplos representativos de algoritmos que emplean estructuras de control
de flujo y su codificación en un lenguaje de programación
estructurada/procedural
6.3. Expresiones de control de flujo anidadas
6.3.1. Diagramas de flujo de expresiones de control anidadas
6.3.2. Pseudocódigo de expresiones de control anidadas
6.3.3. Identación de código
6.3.4. Directrices para identar
6.3.5. Codificación de expresiones de control anidadas en un lenguaje de
programación estructurada/procedural
6.3.6. Ejemplos representativos de algoritmos que emplean estructuras de control
de flujo anidadas y su codificación en un lenguaje de programación
estructurada/procedural
6.4. Comprensión del funcionamiento de un algoritmo
6.4.1. Seguimiento "paso a paso" de un algoritmo
6.4.2. Concepto de pruebas de escritorio
6.4.3. Elementos de una prueba de escritorio
6.4.4. Técnicas de elaboración de una prueba de escritorio
6.4.5. Importancia de las pruebas de escritorio
6.4.6. Ejemplos de la elaboración de pruebas de escritorio de algoritmos
representativos
7. El proceso de construcción de algoritmos y su codificación en un lenguaje de
programación estructurada/procedural
7.1. Descripción de las etapas del ciclo de vida elemental de un sistema
7.1.1. Especificación del problema
7.1.2. Análisis
7.1.3. Diseño
7.1.4. Pruebas del diseño
7.1.5. Codificación
7.1.6. Pruebas del sistema
7.2. Solución de problemas elementales mediante la creación de algoritmos
7.2.1. Estrategias de solución de problemas
7.2.2. Determinación de los requerimientos de un cliente
5. 7.2.3. Identificación de las reglas del negocio
7.2.4. Determinación de la interfaz y el comportamiento de un sistema
7.2.5. Desarrollo de algoritmos y su codificación para la solución de problemas
elementales de procesamiento de datos
7.3. Documentación
7.3.1. Documentación interna del sistema
7.3.2. Documentación externa del sistema
7.3.3. Clasificación y contenido de diferentes tipos de manuales
8. Codificación de algoritmos usando diferentes lenguajes de programación
8.1. Lenguajes de programación híbridos
8.1.1. Características generales de un lenguaje de programación híbrido
8.1.2. Traducción de algoritmos representativos a un lenguaje de programación
híbrido
8.2. Lenguajes de programación orientados a objetos
8.2.1. Características generales de un lenguaje de programación orientado a
objetos
8.2.2. Traducción de algoritmos representativos a un lenguaje de programación
orientado a objetos
8.3. Lenguajes de programación orientado a eventos
8.3.1. Características generales de un lenguaje de programación orientado a
eventos
8.3.2. Traducción de algoritmos representativos a un lenguaje de programación
orientado a eventos
6. ACTIVIDADES DE APRENDIZAJE
CON LA CONDUCCIÓN DEL DOCENTE:
Exposición por parte del alumno
Interrogatorio didáctico
Demostraciones
Formación de conceptos
Lluvia de ideas
Prácticas de laboratorio
DE MANERA INDEPENDIENTE:
Construcción de modelos
Elaboración de proyectos
Realización de tareas
CRITERIOS Y PROCEDIMIENTOS DE EVALUACIÓN Y ACREDITACIÓN
Evaluación parcial 40%
Examen
Revisión de prácticas
Evaluación final 50%
Examen
Revisión de prácticas
Proyecto final
Actividades de aprendizaje 10%
7. BIBLIOGRAFÍA BÁSICA
Fundamentos y Lógica de Programación
TIPO TÍTULO AUTOR EDITORIAL AÑO
1 Libro
Metodología de la programación :
algoritmos, diagramas de flujo y
programas
Cairó Battistutti,
Osvaldo.
Alfaomega 2003
2 Libro
Programación en C : metodología,
algoritmos, estructuras de datos
Joyanes Aguilar, Luis McGraw Hill 2005
3 Libro
Introducción a la Programación.
Algoritmos y su implementación en
VB.NET, C#, Java y C++
Ramírez Ramírez, José
Felipe
Alfaomega 2007
PERFIL DEL PROFESOR
Especialidad y nivel académico requerido: Licenciatura en Informática Administrativa,
Ingeniería en Sistemas Computacionales, Licenciatura en Administración de Tecnologías
de Información o carreras afines.
Conocimientos Experiencia profesional Habilidades Actitudes
En procesos de datos
a través de la lógica
de programación,
algoritmos, métodos
de diagramación,
estructuras y
programación en
diferentes lenguajes
Docencia
Laboral
Manejo de grupo
Manejo de PC
De análisis, síntesis e
integración de información
Expositora
Para motivar al grupo
Para planear la clase
Creativa e innovadora
Puntual
Asistencia
Tolerante
Autodidacta
Responsable
Respetuoso
De servicio
Líder
Adaptación al cambio