Download fundación universitaria luis amigó

Document related concepts

Programación funcional wikipedia , lookup

J (lenguaje de programación) wikipedia , lookup

Joy (lenguaje de programación) wikipedia , lookup

Haskell wikipedia , lookup

Miranda (lenguaje de programación) wikipedia , lookup

Transcript
FUNDACIÓN UNIVERSITARIA LUIS AMIGÓ
Facultad de Ingenierías
PROGRAMA:
CURSO:
INGENIERÍA DE SISTEMAS
ALGORITMOS Y LENGUAJES DE PROGRAMACIÓN
NÚCLEO DE FORMACIÓN:
FUNDAMENTACIÓN EN CIENCIAS BÁSICAS Y
UBICACIÓN CONTEXTUAL Y PROFESIONAL
EJE DE FORMACIÓN:
ESPECÍFICO
NIVEL:
II
CRÉDITOS:
4
VÁLIDO DESDE:
JULIO DE 2003
HORAS PRESENCIALES:
CÓDIGO: I008 - pénsum IS01
64
1. INTRODUCCIÓN
La programación es el proceso creativo mediante el cual, el usuario de la computadora,
escribe un conjunto ordenado y finito de instrucciones que le indican a la máquina como
debe proceder para realizar una determinada tarea, el resultado de ese desarrollo se le llama
programa. Se dice entonces que el usuario o programador ha concebido una forma de
solucionar un problema, llamada algoritmo; y la ha expresado de forma entendible a la
máquina: en El programa. Para escribir el programa el programador utiliza un lenguaje de
programación. Los lenguajes de programación empleados para las computadoras han
evolucionado y siguen evolucionando, tratando de hacerlos más fáciles en su uso y al mismo
tiempo incorporando principios y técnicas de programación que no solo hagan a ésta más
fácil sino menos sujeta a errores. En efecto, la atención a los detalles en la programación, y
sobre todo la cantidad de acciones a describir en un programa para una computadora, hace
necesario el uso de técnicas de programación orientadas a evitar producir programas con
errores. En algunos casos estas técnicas se incorporan a los lenguajes de programación, en
otros solo son reglas a seguir en la confección de programas para evitar tener errores.
Todo problema que se intente solucionar con la ayuda de una computadora tiene que pasar
obligatoriamente por las etapas de: análisis del problema, desarrollo del algoritmo,
conversión del algoritmo en programa. El éxito en la ejecución de los programas dependerá
del buen funcionamiento de los respectivos algoritmos. Después de tener una solución
algorítmica, el siguiente paso debe ser la tarea de desarrollar en el ingeniero de sistemas un
conocimiento de la filosofía o teoría formal de los lenguajes de programación y aplicarla en
algún lenguaje.
2. OBJETIVOS GENERALES
1. Desarrollar en el estudiante la capacidad de elaborar algoritmos para la resolución de
problemas utilizando como herramienta el Computador y el lenguaje C++.
2. Desarrollar en el estudiante un conocimiento de la teoría general de los lenguajes de
programación que le permita manipularlos e implementar soluciones algorítmicas en
estos.
3. OBJETIVOS ESPECÍFICOS






Aprender a resolver problemas mediante la aplicación de la lógica computacional
Desarrollar algoritmos que sean solución práctica de un problema determinado
Entender y aplicar la estructura de lenguaje C++
Utilizar adecuadamente las funciones del lenguaje C++
Aprender a codificar y compilar en C++
Generar soluciones utilizando el lenguaje C++
4. CONTENIDO TEMÁTICO
Unidad I. La lógica computacional
a. Qué es la lógica
b. El impacto de la lógica
Ejercicios de lógica lúdica
Unidad II. Teoría de Algoritmos
c. Algoritmos. Soluciones secuenciales mediante el computador
d. El arte de pensar
e. Algoritmos. Definición
f. Diagramas de flujo
g. Pseudocódigo
h. Variables. Tipos. Asignación en la memoria
i. Programación estructurada y estructura de control
j. Secuencias de lectura y secuencias de escritura
k. Estructura de decisión lógica
l. Bucles o ciclos
m. Switches o interruptores
n. Selección múltiple
o. Arreglos
p. Subalgoritmos o subprogramas
Unidad III. Introducción a la metodología de la Programación
Unidad IV. Programación
q. ¿Qué es programar?
r. Programación de computadores
s. Programación y resolución de problemas
t. El proceso de resolución de problemas
u. Los paradigmas de la programación
v. Mitos y realidades sobre la enseñanza de la programación
w. Lógica de programación
x. Características de los algoritmos
y. Formulación y solución de problemas
z. Tipos básicos de datos
Unidad V. Programando con C++
a. Introducción
b. Proceso para la obtención de un programa ejecutable
c. Fichero fuente y programa o código fuente
d. Librerías
e. Ficheros ejecutables y enlazadores
f. Errores
CAPITULO 1 Toma de contacto
CAPITULO 2 Tipos de variables I
CAPITULO 3 Funciones I: Declaración y definición
CAPITULO 4 Operadores I
CAPITULO 5 Sentencias
CAPITULO 6 Declaración de variables
CAPITULO 7 Normas para la notación
CAPITULO 8 Cadenas de caracteres
CAPITULO 9 Librerías estándar
CAPITULO 10 Conversión de tipos
CAPITULO 11 Tipos de variables II: Arrays o Arreglos
CAPITULO 12 Tipos de variables III: Estructuras
CAPITULO 13 Tipos de variables IV: Punteros 1
CAPITULO 14 Operadores II: Más operadores
CAPITULO 15 Operadores III: Precedencia
CAPITULO 16 Funciones II: Parámetros por valor y por referencia
CAPITULO 17 Más librerías estándar: string.h
CAPITULO 18 Estructuras II: Uniones
CAPITULO 19 Punteros II: Arrays dinámicos
CAPITULO 20 Operadores IV: Más operadores
CAPITULO 21 Definición de tipos, tipos derivados
CAPITULO 22 Funciones III
CAPITULO 23 Funciones IV: Sobrecarga
CAPITULO 24 Operadores V: Operadores sobrecargados
CAPITULO 25 El preprocesador
CAPITULO 26 Funciones V: Recursividad
CAPITULO 27 Tipos de Variables V: tipos de almacenamiento
CAPITULO 28 Clases I: Definiciones
CAPITULO 29 Declaración de una clase
CAPITULO 30 Constructores
CAPITULO 31 Destructores
CAPITULO 32 El puntero this
CAPITULO 33 Sistema de protección
CAPITULO 34 Modificadores para miembros
CAPITULO 35 Más sobre las funciones
CAPITULO 36 Operadores sobrecargados
CAPITULO 37 Herencia
CAPITULO 38 Funciones virtuales
CAPITULO 39 Derivación múltiple
CAPITULO 40 Streams
CAPITULO 41 Plantillas
5. ESTRATEGIAS METODOLÓGICAS
Este curso es netamente práctico por lo cual se requiere del empleo constante del
computador para implementar todos los conceptos del manejo del lenguaje y tener de
primero mano el efecto de la multitud de variantes que posee. Se realizará un manejo de los
temas muy de consulta e inquietud por parte de los estudiantes para que innoven y
experimenten el manejo de las funciones que posee el lenguaje, así como aplicación de
problemas encontrados en la vida real o inventados por simulación, para que los estudiantes
los mejoren o adecuen según sus manera de verlos. Se tendrá en cuenta la capacidad
creativa y de aplicación lógica por parte del estudiante para solucionar problemas, además
de su adaptabilidad para trabajar en otros lenguajes con estructura similar al que se lleva en
el curso. La mitad del curso es llevada con la asesoría permanente del maestro y la otra
mitad es de recurso exclusivo del estudiante ya que tendrá en sus manos, como proyecto, el
aprender el manejo de un segundo lenguaje al que debe acceder por completo por propia
cuenta y buscando los recursos que requiera para llevarlo a cabo.
6. CRITERIOS DE EVALUACIÓN
Este curso se evalúa teniendo en cuenta el proceso de aplicación de conceptos que el
estudiante tenga respecto de la solución de problemas y la aplicación del proceso: lógicaalgoritmo-programa. La evaluación es netamente resultado de la práctica y el aporte que el
estudiante tenga respecto del mejoramiento de conceptos recibidos o consultados: su
capacidad innovadora y de adaptación a situaciones determinadas.
7. BIBLIOGRAFÍA
Guillermo Correa Uribe. Desarrollo de algoritmos. McGraw Hill. 1992
Hader Berrio. Lógica para programación de computadores
Luis Joyanes. Programación de computadores. McGraw Hill.
Gary J. Bronson. C++ para ingeniería y ciencias. Tomson. 1999
Ellis, M.A. y Stroustrup, B., Manual de Referencia C++ con Anotaciones, AddisonWesley/Díaz de Santos, Madrid, 1994.
Schildt, H., C++: Guía de Autoenseñanza, McGraw-Hill, 2ª edición, 1995.
Herbert Schildt, “Borland C++ Manual de Referencia”, Osborne/McGraw-Hill, 1997.
Además se requiere de fotocopias de folletos y manuales que afiancen cada uno de los
remas que en que se divide el programa y que oportunamente se estarán entregando para tal
fin o serán enviados vía correo electrónico. El uso de Internet será básico para las consultas
aplicativas de algunos de los temas. Manuales de Phyton y aplicaciones en Linux, también se
podrán bajar de la Internet.