Lenguaje de Interfaz
La presente asignatura aporta los conocimientos para el diseño e implementación de interfaces hombre máquina y máquina-máquina para la automatización de sistemas. El desarrollo, implementación y administración de software de sistemas o de aplicación que cumpla con los estándares de calidad con el fin de apoyar la productividad y competitividad de las organizaciones. Para que desempeñe sus actividades profesionales considerando los aspectos legales, éticos, sociales y de desarrollo sustentable y a la vez le permita poseer las habilidades metodológicas de investigación que fortalezcan el desarrollo cultural, científico y tecnológico en el ámbito de sistemas computacionales y disciplinas afines.
Administración de Base de Datos SCB-1001
Esta asignatura aporta al perfil del Ingeniero en Sistemas Computacionales las siguientes habilidades:
Coordinar y participar en equipos multidisciplinarios para la aplicación de soluciones innovadoras en diferentes contextos.
Diseñar, implementar y administrar bases de datos optimizando los recursos disponibles, conforme a las normas vigentes de manejo y seguridad de la información.
Desarrollar y administrar software para apoyar la productividad y competitividad de las organizaciones cumpliendo con estándares de calidad. Actualmente la información es un activo importante en las organizaciones, ya que si posee las características necesarias apoya a las personas en la eficiente toma de decisiones, por lo que se requiere que inviertan en infraestructura que les permita gestionar y resguardar dicho activo, pero también necesitan de profesionistas especializados que sean capaces de administrarlo. Esta asignatura provee al estudiante con la capacidad para integrar eficientemente la infraestructura existente en una organización y Sistemas Gestores de Base de Datos con el propósito de apoyar la toma de decisiones. En esta asignatura se abordan las bases teóricas y prácticas referentes a la administración de bases de datos desde la instalación, configuración, mantenimiento, seguridad de acceso y datos, monitoreo del desempeño, así como, métodos de respaldo y recuperación de un SGBD; aplica conocimientos de otras asignaturas, tales como: Taller de Base de Datos, Fundamentos de Base de Datos, Redes de Computadoras, Fundamentos de Ingeniería del Software y Sistemas Operativos.
Algebra Lineal
El álgebra lineal aporta, al perfil del ingeniero, la capacidad para desarrollar un pensamiento lógico, heurístico y algorítmico al modelar fenómenos de naturaleza lineal y resolver problemas. Muchos fenómenos de la naturaleza, que se presentan en la ingeniería, se pueden aproximar a través de un modelo lineal. Esta materia nos sirve para caracterizar estos fenómenos y convertirlos en un modelo lineal ya que es más sencillo de manejar, graficar y resolver que uno no lineal, de allí la importancia de estudiar álgebra lineal. Esta asignatura proporciona al estudiante de ingeniería una herramienta para resolver problemas de aplicaciones de la vida ordinaria y de aplicaciones de la ingeniería. Está diseñada para el logro de siete competencias específicas dirigidas a la aprehensión de los dominios: números complejos, matrices, determinantes, sistemas de ecuaciones lineales, espacios vectoriales, base y dimensión de un espacio vectorial y transformaciones lineales. Esta materia proporciona además conceptos matemáticos que se aplicarán en ecuaciones diferenciales y en otras materias de especialidad.
Programación Lógica y Funcional SCC-1019
Los lenguajes de programación de computadoras pueden clasificarse, de acuerdo al paradigma de programación, en cuatro tipos de lenguajes: procedimentales o algorítmicos, orientados a objetos, funcionales, y lógicos. Los dos primeros tipos corresponden a lenguajes imperativos, en los que debe especificarse el cómo resolver el problema; mientras que los dos últimos son lenguaje declarativos, en los que es suficiente con especificar el resultado que se desea a obtener, sin dar detalles del procedimiento de solución.
En este curso estudiaremos la programación lógica y funcional mediante el desarrollo de programas en los lenguajes declarativos más populares de la actualidad: Haskell, un lenguaje funcional; y, Prolog, un lenguaje lógico.
Lenguajes y Autómatas I (SCD-1015)
La teoría de autómatas y lenguajes formales es una importante área de estudio de las Ciencias de la Computación. En teoría de la computación se estudian problemas muy generales sobre lo que se puede o no resolver con una computadora, cómo diseñar e implementar lenguajes de computadora y cuáles son los modelos de máquinas que puedan garantizar el correcto funcionamiento de los lenguajes de programación de computadoras.
Los lenguajes pueden clasificarse en lenguajes naturales (idiomas) necesarios para comunicarse entre personas; y lenguajes formales, útiles para modelar un lenguaje natural (reducido) y que pueda servir para programar las computadoras. Para especificar formalmente un lenguaje se utiliza el concepto de gramática y modelos de máquinas correspondientes.
Una vez que se ha diseñado un lenguaje formal es necesario desarrollar el compilador, un software traductor del código en lenguaje de programación de alto nivel a código máquina ejecutable en la computadora. El proceso de compilación consta de seis fases: análisis léxico, análisis sintáctico, análisis semántico, generación de código intermedio, optimación y generación de código máquina.
Por fortuna, muchos aspectos de la teoría de autómatas son herramientas esenciales en nuevas disciplinas preferidas por los estudiantes porque se enfocan más a la práctica de la tecnología. Por ejemplo, desarrollo de software para explorar cuerpos de texto largos, como colecciones de páginas web, o para determinar el número de apariciones de palabras, frases u otros patrones.
Tópicos Avanzados de Programación SCD-1027
Los tópicos avanzados de programación van más allá del manejo técnico y básico del lenguaje de programación que consiste en manejar los tipos de datos, los operadores y las palabras reservadas para escribir programas sintácticamente correctos. Ahora se trata de desarrollar aplicaciones computacionales para solucionar problemas de diversos contextos, integrando diferentes tecnologías, plataformas o dispositivos, mediante la incorporación de la interfaz gráfica de usuario, uso de componentes y bibliotecas, aplicación de programación concurrente, acceso a datos, y programación de móviles
Para el logro de los objetivos, es necesario que el estudiante tenga competencias previas en Fundamentos de programación, diseño y análisis de algoritmos, conceptos básicos de hardware y software, programación orientada a objetos, y construcción de modelos de software mediante diagramas de clases.
Programación Orientada a Objetos AED-1286
La programación orientada a objetos surgió hace ya varias décadas. Uno de los primeros lenguajes orientados a objetos fue Simula 67, le siguieron, entre otros, SmallTalk, C++, C# y Java. Un lenguaje orientado a objetos como Java (a utilizar en este curso) contiene los recursos necesarios para diseñarr y desarrollar un programa de acuerdo al modelo de objetos, basado en los conceptos de objeto, clase, herencia, polimorfismo, abstracción, encapsulación y modularidad.
Un requisito para el curso de Programación Orientada a Objetos es haber adquirido las habilidades de programación del curso de Fundamentos de Programación, específicamente el manejo de tipos de datos, operadores y palabras reservadas. En este curso nos enfocaremos al diseño y organización del código en clases y métodos, incluyendo también gestión de errores de tiempo de ejecución mediante excepciones y manejo de archivos de datos para guardar la información manejada en el programa.