You are on page 1of 11

Fundamentos de programacin

Informacin general de la asignatura

Ingeniera en Desarrollo de Software


Primer Semestre

Programa de la asignatura:
Fundamentos de programacin

Informacin general de la asignatura

Clave:
TSU Licenciatura
16141102 15141102

Universidad Abierta y a Distancia de Mxico

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

Fundamentos de programacin
Informacin general de la asignatura

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

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

Fundamentos de programacin
Informacin general de la asignatura

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

Semestre:

Bases de Datos, Anlisis Orientado a Objetos,


Programacin Orientada a Objeto
Primero

Horas contempladas:

72

Seriacin:

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
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Fundamentos de programacin
Informacin general de la asignatura

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

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

Fundamentos de programacin
Informacin general de la asignatura

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
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Fundamentos de programacin
Informacin general de la asignatura

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

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

Fundamentos de programacin
Informacin general de la asignatura

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
Divisin de Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Fundamentos de programacin
Informacin general de la asignatura

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

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

Fundamentos de programacin
Informacin general de la asignatura

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:

Unidad 3:

Unidad 4:

Planteamiento del problema


Especificacin clara y precisa del problema que se resolver mediante
un programa en C
Anlisis del problema
Datos de entrada, salida y bosquejo de la solucin.
Programa en C. Estructuras de control.
Primera versin de la solucin del problema (algoritmo y codificacin)
que incluya estructuras secuenciales, selectivas y repetitivas.

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

Fundamentos de programacin
Informacin general de la asignatura

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%

E-portafolio 60%

Tareas
Evidencia de aprendizaje

15%
50%

Autorreflexiones

10
10%

Asignacin a cargo
del docente
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.

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

10

Fundamentos de programacin
Informacin general de la asignatura

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.

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

11

You might also like