Estimado estudiante, es un placer darle la más cordial bienvenida a la Universidad Nacional
Abierta y su interesante modalidad de educación a distancia, en especial a una asignatura tan
interesante y útil como lo es la Computación I.
En primera instancia le invito a revisar de manera detallada y minuciosa el contenido del plan de
curso correspondiente a la asignatura Computación I 323, en él encontrará los objetivos a
evaluar, el contenido que debe dominar para aprobar cada objetivo y las estrategias de
evaluación a utilizar para la aprobación de cada uno.
Los planes de curso de esta y las restantes asignaturas, además del material instruccional y
los trabajos prácticos a realizar, los puede encontrar en el siguiente enlace:
https://subprogramadisenoacademicouna826543778.wordpress.com/
El objetivo final de la asignatura es resolver problemas algoritmicos con la ayuda de la computadora digital.
Se espera lograr dicho objetivo final con el estudio de temas relevantes en esta área como lo son la teoría de conjuntos y funciones, la lógica proporsicional, el estudio de problemas algoritmicos y su solucion, finalizando con la codificación de estas soluciones en lenguajes computacionales de alto nivel.
La asignatura Computación I es un curso básico de las carreras Ingeniería de Sistemas,
Industrial y el Técnico Superior Universitario en Mantenimiento de Sistemas Informáticos que
comprende el estudio de los procedimientos y técnicas de desarrollo de programas, introduce
las ideas fundamentales para la resolución de problemas algorítmicos, así como la aplicación
del diseño de algoritmos para su codificación e implantación con el uso del computador.
El curso está diseñado bajo un enfoque teórico-práctico, con la finalidad de proporcionarle al
estudiante los conceptos fundamentales de algoritmo y el procedimiento para emplearlo, lo
cual le permitirá resolver problemas, basados en casos reales.
Una vez que el estudiante haya adquirido conocimientos previos que hacen posible el uso
adecuado de la computadora, es necesario que adquiera herramientas básicas para el diseño
de algoritmos y programas, que le serán útiles para posteriores aprendizajes, razón por la cual
se incluye la asignatura “Computación I” en el plan de estudio. Es de carácter obligatorio, debido
a que ofrece una introducción básica de los conceptos de algoritmos y lenguaje de
programación, que servirá de apoyo para abordar el estudio de asignaturas subsiguientes.
El curso contribuye a la formación de un profesional capaz de resolver problemas sencillos
mediante el uso del computador, lo cual lleva al egresado a desarrollarse con una mentalidad
lógica y coherente, y sirve de soporte para su utilización en las diferentes áreas del desempeño
laboral.
El material instruccional de la asignatura Computación I se encuentra en el siguiente enlace:
https://drive.google.com/drive/folders/1BWDv7eomEHArujhkg9MzMiGH8GKa8isz?usp=sharing
Objetivo global de la asignatura:
El objetivo global de la asignatura consiste en codificar, de manera coherente y lógica, en un
lenguaje de programación adecuado el algoritmo diseñado para una situación dada, utilizando
la metodología MAPS y los conceptos de robustez y diseño descendente y modular, esto se
logrará mediante el dominio paulatino de los siguientes objetivos:
Unidad temática I: CONJUNTOS, FUNCIONES Y LÓGICA PROPOSICIONAL
Objetivo de la Unidad I: Resolver de forma analítica problemas de Conjuntos, Funciones y
Lógica Proposicional.
Objetivo Específico I.1: Resolver de forma analítica y lógica problemas de conjuntos, utilizando
las operaciones y las características de funciones definidas sobre ellos.
Un conjunto es una colección de elementos con características similares considerada en sí
misma como un objeto.
Una función es una tabla con dos columnas que indican una correspondencia entre los valores
de la primera columna y los de la segunda.
La teoría de conjuntos es una parte de las matemáticas que forma parte de la fundamentación
de la lógica y de la informática.
Relación entre conjuntos
Variables tipos y estados
Operaciones entre conjuntos.
Propiedades de las operaciones entre conjuntos.
Conjuntos de cadenas de caracteres.
Funciones. Tipos de Funciones.
En el siguiente libro digital se trata el tema de los conjuntos y la teoría de conjuntos:
https://openlibra.com/es/book/teoria-de-conjuntos-basica
Lista de reproducción de videos sobre los conjuntos y la teoría de conjuntos:
https://www.youtube.com/playlist?list=PLCZKC1YTwC0l8HRkAW-so7U-lVXV6bzyJ
Carpeta Drive con información sobre los conjuntos y la teoría de conjuntos:
https://drive.google.com/drive/folders/1LMVIwa4TbN_LGy8qBV5OKsuxXbwGR_oW?usp=sharing
Objetivo Específico I.2: Aplicar de forma analítica la Lógica Proposicional para la solución de
problemas o situaciones dadas.
La lógica proposicional trata sobre la verdad o la falsedad de las proposiciones y de cómo la
verdad se transmite de unas proposiciones (premisas) a otras (conclusión). Una proposición
es la unidad mínima de significado susceptible de ser verdadera o falsa.
La lógica proposicional es una parcela, relativamente pequeña y simple, del mundo mucho más
amplio de la lógica en general.
Lógica Proposicional:
Representación de frases en castellano
Tablas de Verdad.
Tautologías.
Razonamiento con proposiciones.
Lógica de predicados.
En el siguiente libro digital se trata el tema de la lógica proposicional:
https://openlibra.com/es/book/logica-de-enunciados
Lista de reproducción de videos sobre lógica proposicional:
https://www.youtube.com/playlist?list=PLCZKC1YTwC0knKWHaPD8sY8JZTCnKeMhm
Carpeta Drive con información sobre la lógica proposicional:
https://drive.google.com/drive/folders/1mUvz0rExFgvqbxe2_ipiBmg8sRcPt2t3?usp=sharing
Unidad temática II: RESOLUCIÓN DE PROBLEMAS ALGORÍTMICOS Y LA
CODIFICACIÓN EN LENGUAJE DE PROGRAMACIÓN
Objetivo de la Unidad II: Codificar con carácter analítico en un lenguaje de programación
adecuado, utilizando la metodología MAPS en problemas planteados algorítmicamente.
Objetivo Específico II.1: Aplicar los conceptos y técnicas de manera coherente para la
construcción de algoritmos en la solución de problemas o situaciones dadas.
Un algoritmo es un método para resolver un problema. Además, se debe conocer la data y las
operaciones elementales necesarias para el diseño del algoritmo. Según el profesor NiKlaus
Wirth inventor del Pascal: Algoritmos + Estructuras de Datos = Programas, significándonos que
solo se puede llegar a realizar un buen programa con el diseño de un algoritmo y una correcta
estructura de datos.
Concepto de algoritmo.
Presentación de conceptos de algoritmo
https://view.genial.ly/5b1052cd724fd966817c0f33/interactive-content-algoritmos
En el siguiente libro se tratan los temas fundamentales de los algoritmos:
https://openlibra.com/es/book/introduccion-a-la-algoritmica
Para mayor información sobre los algoritmos, se puede consultar el siguiente recurso
https://github.com/dbcolmenaresp/fundamentosalgoritmos
Características de los algoritmos.
Datos, tipos de datos y operaciones primitivas.
Constantes y variables.
Expresiones aritméticas y lógicas.
Funciones internas.
La operación de asignación.
Entrada y salida de información.
Metodología del análisis descendente: Comprender el problema propuesto.
En el siguiente libro digital se trata el interesante y útil tema de la metodología de análisis
descendente de algoritmos, el cual facilita el análisis y diseño de algoritmos de gran envergadura:
https://openlibra.com/es/book/introduccion-a-la-metodologia-de-diseno-descendente
Diseño del algoritmo para la resolución del problema.
El siguiente libro digital presenta los fundamentos de diseño de algoritmos para la resolución de
problemas:
https://openlibra.com/es/book/tecnicas-de-diseno-de-algoritmos
Verificación del algoritmo.
Lista de reproducción de videos sobre fundamentos de algoritmos:
https://www.youtube.com/playlist?list=PLCZKC1YTwC0mOa4g5QyCNS52-N6VMTmsJ
Carpeta Drive con información relacionada con el análisis y construcción de algoritmos:
https://drive.google.com/drive/folders/1y6AfgH2cZtWOCVIQIemgIr38thSIP56Y?usp=sharing
Objetivo Específico II.2: Resolver con sentido lógico y coherente utilizando la metodología
MAPS problemas de algoritmos dada una situación.
En esta unidad para poder resolver problemas algorítmicos más extensos y complejos,
necesitamos proveernos de un conjunto de técnicas de resolución de problemas más robustos.
Es decir, «la programación a gran escala» requiere la utilización de una metodología unificada y
robusta que pueda utilizarse de manera fiable en una variada área de aplicaciones. Una
Metodología de Resolución de Problemas Algorítmicos*, MAPS, se desarrollará e ilustrará en
este capítulo. MAPS (Methodology for Algorithmic Problem Solving).
Carpeta Drive con información relacionada con la metodología MAPS
https://drive.google.com/drive/folders/1pBx-rHMcGTEEnaLrff4qHG5ImK7fFbKw?usp=sharing
Lista de reproducción con videos relacionados con el uso de metodologías de diseño en el
desarrollo de programas:
https://www.youtube.com/playlist?list=PLCZKC1YTwC0mx6CXG9bdwp_Qawt5r9RjS
Objetivo Específico II.3: Codificar en forma lógica y coherente algoritmos en lenguaje C,
aplicando tipo de datos y/o procedimientos y funciones y/o métodos de archivos.
El lenguaje de programación C es un lenguaje de programación orientado inicialmente al
desarrollo de sistemas, que puede ser usado también para el desarrollo de programas de
propósito general.
El lenguaje de programación C puede ser usado en las etapas tempranas del aprendizaje de
programación para aclarar el uso adecuado de los diferentes conceptos básicos de la
programación, como el uso adecuado de los tipos de datos, el uso de las diferentes estructuras
como condicionales, repeticiones, etc. Fue desarrollado en los laboratorios AT&T por Dennis
Ritchie, quien en colaboración con Ken Thompson crearon el sistema operativo UNIX. C
es el lenguaje de programación de alto nivel de propósito general más popular.
El lenguaje C es un lenguaje de programación de tipo compilado y en este sentido, requiere del
uso de un programa compilador para codificar el código fuente en un código binario llamado
código objeto, que representa el archivo ejecutable del programa, para esta finalidad
recomiendo el uso de DEV C++. Dev-C++ es un entorno de desarrollo integrado para
programar en lenguaje C/C++. Usa MinGW, que es una versión de GCC como su compilador.
Dev-C++ puede además ser usado en combinación con Cygwin y cualquier compilador basado
en GCC. El entorno está desarrollado en el lenguaje Delphi de Borland.
Este programa se puede encontrar en la siguiente dirección:
http://orwelldevcpp.blogspot.com/
En el siguiente enlace se encuentra un video que explica como descargar, instalar y usar el
compilador DEVC++:
https://www.youtube.com/watch?v=rtGFCn4LZx8
Para una mejor referencia de los fundamentos del lenguaje C puede consultar el siguiente
recurso:
https://github.com/dbcolmenaresp/Fundamentos-lenguaje-C
Carpeta Drive con información relevante sobre la codificación de algoritmos y la programación:
https://drive.google.com/drive/folders/1g_hSrFg1_eBZG-0HFih8XjGjT18sBZiL?usp=sharing
Libro electrónico sobre los fundamentos de la programación en el lenguaje de programación C
https://openlibra.com/es/book/introduccion-a-la-programacion-con-c
Lista de reproducción sobre los fundamentos del lenguaje de programación C
https://www.youtube.com/playlist?list=PLpOqH6AE0tNgqknxjMAJ8bX_L1a7lnBaH
Lista de reproducción sobre codificación en el lenguaje de programación C:
https://www.youtube.com/playlist?list=PLCZKC1YTwC0miD2BDa_JhP4dxB1M3-iRR
Quien esté interesado en la historia del lenguaje de programación C, puede consultar el siguiente
audio:
Objetivo Específico II.4: Aplicar analíticamente el concepto de robustez en algoritmos dados.
Al momento de diseñar un programa, se deben tomar en consideración una serie de
características imprescindibles para su correcto y adecuado funcionamiento, entre otras
que sea sintácticamente correcto, es decir que las sentencias usadas cumplan con el
estándar y el formato del lenguaje utilizado, que sea lógicamente coherente, es decir que
cumpla a cabalidad y de manera inequívoca con el objetivo de su creación, que sea
estructuralmente comprensible para facilitar la labor de quien deba revisarlo y corregirlo,
que cumpla con el principio de modularidad y se evite la repetición innecesaria de código,
que realice su labor de manera eficiente usando adecuadamente los recursos de tiempo
de procesador y cantidad de memoria utilizada.
La intención de diseñar programas es que estos funcionen bien cuando se les ingresan las
entradas correctas, además de comportarse elegantemente para un amplio rango de
entradas incorrectas.
Para que un programa se considere como adecuadamente construido, que sea de calidad
y confiable, debe cumplir con tres elementos esenciales, debe ser correcto, robusto y
amigable. Si un programa no funciona de manera correcta, el trabajo realizado para su
desarrollo resulta inútil, ya que no se garantiza un adecuado funcionamiento del programa
construido.
Presentación que trata sobre el concepto de robustez
https://view.genial.ly/5d893cf23012720fcd8966f9/presentation-robustez
Lista de reproducción con información sobre la robustez y la validación de datos en el desarrollo de
programas:
https://www.youtube.com/playlist?list=PLCZKC1YTwC0nI7-f9q_AJ08p1j4u6IWgu
Material complementario
Le invito a revisar los siguientes enlaces, en los cuales encontrará información complementaria
relacionada con esta asignatura y espero le sirvan para que logre un aprendizaje exitoso de los
objetivos planteados durante este lapso académico.
Carpeta Drive con información sobre Computación I 323
https://drive.google.com/drive/folders/1k9Eb_Vc1vjvzBKwGa0RpD9lMKs58syAO?usp=sharing
Lista de reproducción con videos relacionados con los objetivos de la asignatura
https://www.youtube.com/playlist?list=PLCZKC1YTwC0lO3lo6RflpWjHacIhpMyHl
Listado de libros en la plataforma Openlibra relacionados con la asignatura
https://openlibra.com/es/lists/id/VNbNwV
En el siguiente enlace encontrará información relacionada con cada objetivo de la asignatura
https://dcolmenaresuna.wixsite.com/sistemasunatachira/computacion-i-323
Le informo que debe crear una cuenta en la red social GitHub, con la finalidad de que presente
los códigos correspondientes a los trabajos asignados, para facilitar su revisión, puede seguir mi
perfil en el siguiente enlace
https://github.com/dbcolmenaresp
A continuación un breve tutorial del uso de la plataforma GitHub
https://www.youtube.com/watch?v=ggD808TwCvU
Para la codificación de los programas que debe realizar para el trabajo práctico, le sugiero que
utilice el lenguaje de programación C, este es mas versatil y moderno que el sugerido lenguaje
de programación Pascal, adicionalmente esto le preparará para la asignatura Computación II, en
la cual deberá codificar en el lenguaje de programación C++.
Espero le sea de provecho esta información, revise con detalle y prepare el material y los
conocimientos necesarios para la realización exitosa de las actividades que se le van a plantear
durante el semestre
Exitos
Redes sociales
https://twitter.com/dbcolmenaresp
https://www.instagram.com/dcolmenaresuna/
https://www.youtube.com/channel/UCpTCpgQm3FKkmbZpYtzXzAg
No hay comentarios:
Publicar un comentario