Informacion General de La Asignatura

11
Fundamentos de programación Información general de la asignatura 1 División de Ciencias Exactas, Ingeniería y Tecnología | Desarrollo de Software Ingeniería en Desarrollo de Software Primer Semestre Programa de la asignatura: Fundamentos de programación Información general de la asignatura Clave: TSU 16141102 Licenciatura 15141102 Universidad Abierta y a Distancia de México

description

ASIGNATURA

Transcript of Informacion General de La Asignatura

  • Fundamentos de programacin

    Informacin general de la asignatura

    1

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    Ingeniera en Desarrollo de Software

    Primer Semestre

    Programa de la asignatura:

    Fundamentos de programacin

    Informacin general de la asignatura

    Clave:

    TSU

    16141102

    Licenciatura

    15141102

    Universidad Abierta y a Distancia de Mxico

  • Fundamentos de programacin Informacin general de la asignatura

    2

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    ndice

    I. INFORMACIN GENERAL DE LA ASIGNATURA ........................................................... 3

    a. Ficha de identificacin ..................................................................................................... 3

    b. Presentacin .................................................................................................................... 3

    c. Propsito .......................................................................................................................... 4

    d. Competencia general: ...................................................................................................... 4

    e. Estructura temtica .......................................................................................................... 5

    f. Metodologa de trabajo ..................................................................................................... 7

    g. Evaluacin ....................................................................................................................... 9

    h. Fuentes de consulta ....................................................................................................... 10

  • Fundamentos de programacin Informacin general de la asignatura

    3

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    I. INFORMACIN GENERAL DE LA ASIGNATURA

    a. Ficha de identificacin

    Nombre de la carrera: Telemtica / Desarrollo de software

    Nombre de la asignatura Fundamentos de programacin

    Clave de asignatura: 15141102 / 16141102

    Seriacin: Bases de Datos, Anlisis Orientado a Objetos,

    Programacin Orientada a Objeto

    Semestre: Primero

    Horas contempladas: 72

    b. Presentacin

    La asignatura de Fundamentos de Programacin tiene como meta principal que desarrolles

    las competencias necesarias para construir programas que resuelvan problemas reales.

    Constituye un pilar primordial para aquellos alumnos que, como t, estn estudiando una

    carrera relacionada con computacin -como Desarrollo de Software y Telemtica- pues los

    conocimientos y habilidades que desarrollen en este curso sern indispensables para la

    varias de las asignaturas subsecuentes del plan de estudios de ambas ingenieras, tal es

    el caso de bases de datos, programacin orientada a objetos, programacin web,

    estructura de datos, entre otras.

    El lenguaje de alto nivel que se ha elegido para implementar los programas es C, ya que

    es uno de los lenguajes, estructurados y modulares, utilizados actualmente; adems

    cuenta con entornos de trabajo de software libre, como el que utilizaremos llamado Dev-C.

    Para facilitar que desarrolles las competencias establecidas, los contenidos del curso se

    han dividido de forma estratgica en seis unidades. En la primera se delinea el concepto

    de computadora y su funcionamiento, para ello se describe los elementos que la integran;

    posteriormente, se hace una aproximacin a los lenguajes de programacin y los

    paradigmas que existen en la actualidad, resaltando la programacin modular y

    estructurada. En la siguiente unidad se expone la metodologa de la programacin y se

    introduce el concepto de algoritmo, que es la solucin sistemtica de problemas, as que

    tambin se presentan dos formas de representacin: el pseudocdigo y los diagramas de

    flujo.

    Asimismo, se ilustran las estructuras secuenciales, selectivas y repetitivas. A continuacin,

    en la unidad tres, se presentan los elementos bsicos para construir un programa simple

    en lenguaje C: datos, contantes, variables y las operaciones bsicas de entradas/salidas

  • Fundamentos de programacin Informacin general de la asignatura

    4

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    para describir el uso de los operadores aritmticos, relacionales y lgicos para la

    manipulacin de operaciones y expresiones en C.

    En la unidad cuatro se distinguen y utilizan las distintas estructuras de control, tanto

    selectivas (if, if-else, switch) como repetitivas (while, do-while, for), que ofrece el lenguaje

    C; se introduce su representacin en diagrama de flujo y algoritmo, adems de su sintaxis

    en C. En la unidad cinco se introducen las estructuras de datos: arreglos y registros, se

    explica qu son, cmo funcionan y para qu sirven, adems, se plantean problemas en

    donde su uso es indispensable para su resolucin. Por ltimo, en la unidad seis se

    reconoce la importancia de la programacin modular, construyendo soluciones modulares

    utilizando funciones en lenguaje C.

    c. Propsito

    El curso tiene como finalidad proporcionarte las bases para que comiences a desarrollar

    programas estructurados que solucionen problemas simples, a travs del desarrollo de

    algoritmos en pseudocdigo y diagrama de flujo y su codificacin en lenguaje C, adems

    se te describe el proceso de compilacin de un programa y su ejecucin identificando los

    elementos de la computadora que intervienen en cada paso.

    d. Competencia general

    Desarrollar programas estructurados y modulares que resuelvan problemas simples,

    mediante el anlisis del problema, el diseo de un algoritmo y su codificacin en lenguaje

    C.

    Competencias especficas:

    Describir los elementos de la computadora y el ciclo de vida de software mediante el

    anlisis un programa simple, con el fin de identificar los pasos que se realizan para

    construirlo y determinar qu elementos de la computadora intervienen en su ejecucin.

    2. Comprensin

    Disear algoritmos para resolver problemas mediante su representacin en un

    diagrama de flujo y la elaboracin del pseudocdigo. 4. Utilizacin

    Utilizar el lenguaje de programacin C para resolver problemas a travs de la

    implementacin de algoritmos secuenciales. 4. Utilizacin

  • Fundamentos de programacin Informacin general de la asignatura

    5

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    Utilizar estructuras de control selectivas y repetitivas para resolver problemas simples a

    travs del desarrollo de programas en lenguaje C. 4. Utilizacin

    Utilizar estructuras de datos para almacenar y manipular los datos de un programa por

    medio del desarrollo de programas en lenguaje C. 4. Utilizacin

    Implementar funciones para resolver problemas a travs del desarrollo de programas

    modulares escritos en lenguaje C. 4. Utilizacin

    e. Estructura temtica

    1. Introduccin a la computadora y desarrollo de software

    1.1. Qu es una computadora?

    1.2. Estructura y funcionamiento de una computadora

    1.2.1. Modelo de Von Neumann

    1.2.2. Ejecucin de programas en la computadora

    1.2.3. Almacenamientos de programas y datos

    1.3. Lenguajes de programacin

    1.3.1. Evolucin de los lenguajes de programacin

    1.3.2. Paradigmas de los lenguajes de programacin

    1.4. Ciclo de vida del software

    2. Diseo de algoritmos

    2.1. Concepto de algoritmo y caractersticas

    2.2. Representaciones de algoritmos

    2.2.1. Pseudocdigo

    2.2.2. Diagrama de flujo

    2.3. Estructuras de control

    2.3.1. Secuenciales

    2.3.2. Selectivas

    2.3.3. Repetitivas

    3. Introduccin al lenguaje C

    3.1. Componentes de un programa

    3.1.1. Instrucciones

    3.1.2. Comentarios

    3.1.3. Palabras reservadas

    3.1.4. Estructura general de un programa

    3.2. Tipos de datos

    3.3. Variables y constantes

    3.3.1. Identificadores

    3.3.2. Declaracin e inicializacin de variables

  • Fundamentos de programacin Informacin general de la asignatura

    6

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    3.3.3. Tipos de constantes

    3.3.4. Declaracin de constantes

    3.4. Expresiones matemticas

    3.4.1. Tipos de operadores

    3.4.2. Evaluacin de expresiones

    3.5. Bibliotecas y funciones

    3.5.1. Funciones matemticas

    3.5.2. Funciones de entrada y salida

    3.6. Codificacin de algoritmos

    4. Estructuras de control

    4.1. Estructuras selectivas

    4.1.1. Estructura selectivasimple (if)

    4.1.2. Estructura selectiva doble (if-else)

    4.1.3. Estructura selectiva mltiple (switch-case)

    4.2. Estructuras repetitivas

    4.2.1. Estructura Mientras (while)

    4.2.2. Estructura Desde-mientras (for)

    4.2.3. Estructura Hacer-mientras (do-while)

    4.3. Estructuras anidadas

    5. Estructuras de datos

    5.1. Arreglos

    5.1.1. Definicin y tipos

    5.1.2. Declaracin e inicializacin

    5.1.3. Acceso a los elementos de un arreglo

    5.1.4. Ciclos y arreglos

    5.1.5. Cadenas

    5.2. Estructuras

    5.2.1. Definicin, declaracin e inicializacin

    5.2.2. Acceso a los elementos

    6. Funciones

    6.1. Diseo descendente

    6.2. Definicin, declaracin e invocacin de funciones en C

    6.3. Alcance de las variables

    6.4. Paso de parmetros

    6.4.1. Por valor

    6.4.2. Por referencia

  • Fundamentos de programacin Informacin general de la asignatura

    7

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    f. Metodologa de trabajo

    Para trabajar en esta asignatura, se ha propuesto la metodologa del Aprendizaje Basado

    en Problemas, pues debido a la naturaleza de los contenidos, tendrs que resolver

    problemas de manera constante para poner en prctica lo aprendido.

    Como el propsito de este curso es que desarrolles programas de software que resuelvan

    problemas simples, por cada unidad se ha propuesto uno o ms problemas a partir de los

    cuales sete presentan los contenidos correspondientes, la intencin de esto es que primero

    se te planteen los problemas para que los analices y posteriormente se te presente la

    solucin de los mismos mediante algoritmos o programas; lo que se busca es que alcances

    las competencias especficas de cada unidad a travs de, primero la observacin y el

    anlisis de los problemas ejemplo que te ayudarn a identificar patrones comunes, y

    posteriormente la resolucin de problemas un poco ms complejos a travs del desarrollo

    de estrategias de solucin similares.

    Ahora bien, para que puedas resolver un problema mediante un programa de

    computadora, primero tienes que tener claro el funcionamiento principal de la misma, tanto

    para almacenar la informacin como para llevar a cabo el conjunto de instrucciones que

    integran la solucin de un problema, es decir, el programa. Por tal motivo, en la primera

    unidad se expone la arquitectura tradicional de las computadoras conocida como el Modelo

    de Von Neumann a travs de la cual se te explica cmo se almacenan los programas y los

    datos de un problema en una computadora y qu elementos intervienen en la ejecucin de

    las instrucciones. Lo anterior se expone utilizando un programa que se encarga de calcular

    el rea de un rectngulo, de esta manera podrs aprender los contenidos mediante un

    ejemplo simple. Posteriormente, se describen los pasos que llevan a la construccin de un

    programa, nuevamente, utilizando un ejemplo simple. La evaluacin de esta unidad se

    realizar mediante una prueba de opcin mltiple en la que se incluyen los temas

    expuestos.

    Para exponer los temas relacionados con la elaboracin de los algoritmos, se recurre al

    mundo de la ardilla, un ejemplo en el cual se supone que una ardilla ha sido entrenada

    para realizar un conjunto limitado de instrucciones precisas, de tal manera que para

    solucionar un problema nicamente se puede recurrir a este conjunto.

    De esta forma se pretende que reconozcas intuitivamente que la computadora al igual

    que la ardilla slo es capaz de realizar un conjunto limitado de instrucciones precisas, por

    lo que la solucin de un problema slo puede incluir instrucciones reconocidas por sta.

    As mismo, mediante este ejemplo, se te muestra qu es un algoritmo, cules son sus

    caractersticas y sus formas de representacin; posteriormente se te presentan las

    estructuras de control bsicas de la programacin estructurada ejemplificando su uso a

    travs de la construccin de algoritmos que dirigen a la ardilla en la realizacin de una

    tarea especfica. As se te introduce en el diseo de soluciones estructuradas de

    problemas simples representadas de manera formal, ya sea con un diagrama de flujo o con

  • Fundamentos de programacin Informacin general de la asignatura

    8

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    un pseudocdigo. Es importante mencionar que la ventaja de presentar el tema desde un

    ejemplo tan simple y limitado como el mundo de la ardilla, facilita que puedas proponer

    soluciones estructuradas en un lenguaje especfico, que es justo de lo que se trata la

    programacin.

    En las siguientes unidades la estrategia de aprendizaje es similar, se te presentan los

    contenidos al mismo tiempo que se utilizan para solucionar problemas, slo que en este

    caso se proponen situaciones reales que te son familiares, de tal manera que cuentes con

    los conocimientos necesarios para solucionarlos y solo te tengas que enfocar en

    representar la solucin utilizando las estructuras de control definidas, es decir, las

    instrucciones permitidas.

    En general, en las actividades formativas debers realizar algunas modificaciones a los

    algoritmos o programas presentados en los contenidos, o bien, los escribirs en lenguaje C

    para que puedas ver su ejecucin, adems debes ingresar al foro de cada unidad para

    realizar los comentarios que tengas al respecto. Es importante que realices cada una de

    las actividades propuestas por que a travs de ellas se complementan los temas

    expuestos. De igual manera, para poner en prctica los conocimientos adquiridos y evaluar

    que se haya alcanzado la competencia especfica a lo largo del curso desarrollars un

    proyecto integrador que consiste en el planteamiento, anlisis, diseo de la solucin e

    implementacin de un programa que involucre el uso de todas las estructuras de control y

    de datos que se estudiarn. En este caso, t sers el responsable de plantear el problema

    que deseas solucionar y junto con tu docente en lnea delimitars las fases y/o versiones

    que realizars en cada unidad. El papel que juega tu docente en lnea (a) en el proceso de

    aprendizaje es fundamental, pues su tarea es guiarte en la solucin de problemas a partir

    del anlisis que t realices y las ideas o dudas que te surjan con el mismo. El docente en

    lnea por ningn motivo debe darte la solucin completa de un problema, en lugar de ello

    debe propiciar el intercambio de ideas y experiencias de los estudiantes mediante foros de

    discusin, favoreciendo el aprendizaje colaborativo; si despus de esto siguen existiendo

    dudas se recomienda que resuelva problemas similares para que tanto t como tus

    compaeros refuercen los conocimientos y habilidades de una manera inductiva y as

    logren dar solucin al problema en cuestin. Por lo anterior, existe un foro de discusin

    general en el cual cualquiera puede exponer sus dudas respecto a un tema o problema

    para que sean retroalimentados por tu docente en lnea y los compaeros de grupo. Es

    importante que el docente en lnea promueva un clima de respeto mutuo y libertad de

    expresin para que tanto t como tus compaeros se sientan cmodos al externar sus

    dudas y propuestas, permitiendo la disensin de manera fundamentada y deferente.

    En lo referente a la evaluacin de las actividades y evidencias, tu docente en lnea debe

    revisar cuidadosamente los entregables que hagas y retroalimentarlos de manera positiva,

    clara y concisa; haciendo evidente el avance que hayas alcance y sin perder de vista que

    los errores que comentas debe ser utilizados a favor de tu aprendizaje, por lo que debe

  • Fundamentos de programacin Informacin general de la asignatura

    9

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    prestar principal atencin a stos indicndote en qu consiste el error y cmo se corrige,

    fundamentando su anotacin en los contenidos del curso.

    g. Evaluacin

    La evaluacin del curso corresponder en su totalidad al trabajo en el aula virtual, que se

    divide en: las actividades formativas, equivalentes al 20% de toda la calificacin y, el

    portafolio de evidencias que representa el 80% restante. De tal manera que, mediante las

    actividades formativas propuestas para cada unidad se refuerzan los conocimientos

    abortados y se desarrollan las habilidades que el requieres para solucionar por ti mismo

    problemas similares a los que se presentan y resuelven. En cambio, el propsito de las

    evidencias de aprendizaje propuestas para cada unidad (portafolio de evidencias) es

    comprobar que hayas alcanzado la competencia especfica, de tal manera que el conjunto

    de todas las evidencias sean la prueba de que has logrado la competencia general.

    Es requisito indispensable que realices y/o entregues todas las actividades formativas y las

    evidencias de aprendizaje en el tiempo establecido, de esta manera se garantiza la

    retroalimentacin en tiempo y forma que tu docente en lnea realizar para que tengas

    claro el avance de tu aprendizaje, lo cual te servir para que desarrolles las actividades o

    evidencias subsecuentes.

    En el caso de las evidencias de aprendizaje la calificacin se obtendr a partir de las

    escalas establecidas para cada una, las cuales conocers de antemano. En el caso de las

    actividades formativas, sern revisadas por el docente en lnea(a), quin te har llegar una

    retroalimentacin que te ayude a ver tu avance y los puntos que puedes mejorar.

    nicamente se considerar aprobado el curso si tu promedio total es mayor o igual a la

    calificacin mnima establecida por el UnADM.

    Los trabajos que se tomarn como evidencias de aprendizaje son:

    Unidad 2:

    Planteamiento del problema

    Especificacin clara y precisa del problema que se resolver mediante

    un programa en C

    Unidad 3:

    Anlisis del problema

    Datos de entrada, salida y bosquejo de la solucin.

    Unidad 4:

    Programa en C. Estructuras de control.

    Primera versin de la solucin del problema (algoritmo y codificacin)

    que incluya estructuras secuenciales, selectivas y repetitivas.

  • Fundamentos de programacin Informacin general de la asignatura

    10

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    Unidad 5:

    Programa en C. Estructuras de datos

    Segunda versin de la solucin del problema (algoritmo y codificacin)

    que incluya estructuras de datos.

    Unidad 6:

    Programa en C. Modular (versin final)

    Entrega final del programa que soluciona el problema de forma

    modular

    ESQUEMA DE EVALUACIN

    Evaluacin continua

    Interacciones colaborativas 15%

    Tareas 15%

    E-portafolio 60% Evidencia de aprendizaje

    Autorreflexiones

    50%

    10

    Asignacin a cargo

    del docente

    10%

    CALIFICACIN FINAL 100%

    h. Fuentes de consulta

    Bhm, C., & Jacopini, G. (1966). Flow diagrams, Turing machines, and languages

    only with two formation rules". Communications of the ACM, 9 (5), 366-371.

    Cair, O. (2005). Metodologa de la programacin: Algoritmos, diagramas de flujo y

    programas. Mxico, D.F.: Alfaomega.

    Guerrero, F. (s.f.). mailxmail.com. Recuperado el 15 de 8 de 2010, de

    http://www.mailxmail.com/curso-introduccion-lenguaje-c

    Joyanes, L., & Zohanero, I. (2005). Programacin en C. Metodologa, algoritmos y

    estructuras de datos. Espaa: Mc Graw Hill.

    Joyanes, L., (2003). Fundamentos de programacin. Algoritmos, estructuras de datos

    y objetos. 3ra. edicin. Madrid: McGraw Hill.

    Winters, A., Olhasso, D., Lemay, L., Perkins, Ch. (1997). Aprendiendo Visual J++ en

    21 das. Prentice Hall Hispanoamericana, S.A.

  • Fundamentos de programacin Informacin general de la asignatura

    11

    Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

    Kernighan, B., & Ritchie, D. (1991). El lenguaje de programcin C. Mxico:

    Prentice-Hall Hispanoamericana.

    Lpez, L. (2005). Programacin estructurada en lenguaje C. Mxico: Alfaomega.

    Reyes, A., & Cruz, D. (2009). Notas de clase: Introduccin a la programacin.

    Mxico, D.F.: UACM.

    Villela, H. T. (20 de agosto de 2010). Manual de C. Obtenido de

    http://www.fismat.umich.mx/mn1/manual/

    Viso, E., & Pelaez, C. (2007). Introduccin a las ciencias de la computacin con Java.

    Mxico, D.F.: La prensas de ciencias, Facultad de Ciencias, UNAM.