Estas listo para ¿Avanza tu carrera?

Nuestro programa se especializa en las áreas de sistemas de software y desarrollo de software utilizando OOP (Java), aplicaciones web y ciencia de datos. Las principales áreas de estudio incluyen: desarrollo avanzado de software, programación y arquitectura de aplicaciones web, análisis y tecnologías de big data, aprendizaje automático y varias áreas de aplicación importantes.

Todos los cursos están diseñados para ayudarlo a avanzar en su carrera y cada curso contiene tareas prácticas. Ver requisitos de graduación.

¡NUEVO! Galardonado datos Científicos

Cursos básicos estándar

  • Prácticas modernas de programación (programación Java) (CS 401)

    Este curso presenta los principios fundamentales de la programación orientada a objetos. Los estudiantes aprenderán cómo escribir software reutilizable y mejor mantenido, e integrarán este conocimiento con tareas y proyectos de laboratorio. Los temas incluyen: principios fundamentales y modelos de programación orientada a objetos, diagramas de clase UML y principios de diseño que promueven la reutilización y la capacidad de mantenimiento del software. (Unidades 4)

  • Desarrollo de software avanzado (CS 525)

    Este curso considera los métodos y prácticas actuales para un buen diseño de los sistemas de software. Los temas incluyen: patrones de diseño de software, marcos, arquitecturas y sistemas de diseño para aplicar estas abstracciones de múltiples niveles. (Créditos de 2-4) Requisito previo: CS 401 o consentimiento del profesorado del departamento.

  • Algoritmos (CS 435)

    Este curso presenta métodos para analizar la eficiencia de los algoritmos (incluidos los análisis de caso más desfavorable y promedio) e introduce una variedad de algoritmos conocidos y altamente eficientes. El análisis, diseño e implementación de algoritmos reciben igual énfasis. Los temas incluyen la búsqueda y clasificación, la eficiencia de las operaciones en las estructuras de datos (incluidas listas, tablas hash, árboles de búsqueda binaria balanceada, colas de prioridad), algoritmos de grafos, algoritmos combinatorios, relaciones de recurrencia, programación dinámica, problemas NP-completos y algunos temas especiales como el tiempo. permite. (Los temas especiales incluyen geometría computacional, algoritmos para sistemas criptográficos, aproximación, Big Data y computación paralela).

  • Arquitectura Empresarial (CS 544)

    Este curso se centra en la enseñanza de los principios y prácticas utilizados al desarrollar aplicaciones empresariales a gran escala. Examinaremos las diferentes capas arquitectónicas que se usan con frecuencia y las diferentes tecnologías asociadas con estas capas, incluyendo el Mapeo Relacional de Objetos (ORM), la Inyección de Dependencias (DI), la Programación Orientada a Aspectos (AOP) y la integración con otras aplicaciones a través de Servicios Web (RESTfull y SOAP), Mensajería y invocación de método remoto. Debe tener un conocimiento práctico de bases de datos relacionales y SQL. Si no tiene un curso sólido o un buen conocimiento práctico de SQL, debe inscribirse en CS422 DBMS antes de inscribirse en EA. (Unidades 4)

  • Ingeniería de Software (CS 425)

    Ingeniería de software es un curso que presenta al estudiante las mejores prácticas en el desarrollo de software a través de una metodología de desarrollo de software. Los estudiantes ya han tenido algo de experiencia en cursos anteriores con el paradigma Orientado a objetos y han usado algunos de los diagramas UML básicos para modelar las relaciones entre objetos de software. En Ingeniería de Software, el estudiante desarrollará habilidades para juntar estas herramientas para producir un software robusto y fácil de mantener. Una metodología de desarrollo de software describe cuándo y cómo deben utilizarse los conceptos OO y los diagramas UML para lograr el objetivo de crear software de calidad. El curso se centra en un pequeño proyecto en el que se pueden ilustrar y aplicar los principios discutidos en el formato de la conferencia. Al final del curso, el estudiante tendrá una aplicación en ejecución, construida de acuerdo con los altos estándares de la metodología de desarrollo RUP (Rational Unified Process).

  • Arquitectura y marcos de aplicaciones web (CS 545)

    Este curso enfoca las aplicaciones web en un entorno empresarial. Una aplicación empresarial es un gran sistema de software diseñado para operar en una organización grande como una corporación o un gobierno. Las aplicaciones empresariales son complejas, escalables, basadas en componentes, distribuidas y de misión crítica. Este curso, CS545, se enfoca en la parte frontal o la capa de presentación de una aplicación web empresarial. CS544 Enterprise Architecture es un curso complementario que se centra en el back-end o la capa empresarial, incluida la lógica de negocios, las transacciones y la persistencia. CS472, Programación de aplicaciones web, es un curso de requisito previo que cubre HTML, CSS, JavaScript, servlets y JSP.

    El curso enseña principios y patrones que son generales a través de plataformas y marcos. El curso examinará y trabajará con los dos marcos web de Java predominantes, Java Server Faces (JSF) y SpringMVC. JSF es un marco basado en componentes y es la especificación oficial del marco de presentación para la pila de tecnología Java Enterprise Edition. SpringMVC forma parte del marco Core Spring y se ha convertido en el marco web de Java más utilizado en los últimos años. (Unidades 4) Requisito previo: CS 472 o consentimiento de la facultad del departamento.

  • Programación de aplicaciones web (CS 472)

    Este curso proporciona una introducción sistemática a la programación de aplicaciones web interactivas y dinámicas. El curso está dirigido a personas con poca o ninguna experiencia previa en programación de aplicaciones web. Esta oferta utilizará los servlets de Java y JSP para el procesamiento del lado del servidor. El curso introducirá HTML y CSS. JavaScript es un tema central del curso, y está cubierto como un lenguaje de programación funcional que incluye jQuery, Ajax, y espacios de nombres y módulos de JavaScript. Es un requisito previo para la arquitectura de aplicación web CS545. No cubre AngularJS o NodeJS, pero el JavaScript cubierto aquí lo preparará para aprender esas tecnologías. (Unidades 4)
    Requisito previo: CS 220 o CS 401 o consentimiento de la facultad del departamento.

  • Ciencia y Tecnología de la Conciencia para Profesionales de la Computación (PARA 506)

    Su primer curso está diseñado específicamente para establecer la base de cómo puede convertirse en un profesional de informática de alto rendimiento. El curso está arraigado en la práctica de la Meditación Trascendental que lleva a la realización de su verdadero potencial. Aprenderá acerca de los beneficios de TM, incluida la capacidad de resolver problemas complejos mediante un funcionamiento mental superior que mejora la creatividad y el pensamiento "listo para usar". El curso se centrará en los principios que sustentan el rendimiento máximo en la actividad mediante el desarrollo de una combinación óptima de descanso y actividad. Desarrollará y experimentará una rutina diaria ideal que apoya el éxito en la vida. (Unidades 2)

  • Liderazgo para Gerentes Técnicos (PARA 506B)

    El objetivo de este curso es proporcionar a los estudiantes conocimientos y habilidades en liderazgo, incluidas las habilidades de comunicación como preparación para futuros roles de liderazgo.

    Al final de este curso, los estudiantes comprenderán las respuestas a las preguntas clave sobre el liderazgo efectivo, que incluyen lo siguiente:

    ¿Hay líderes 'naturales'?

    ¿Tienes que tener carisma para liderar efectivamente?

    ¿Qué un activo se requiere para ser un líder?

    ¿Cuál es la diferencia entre administrar y liderar?

    ¿Cuáles son las muchas 'inteligencias' requeridas para liderar en esta era?

    ¿Qué es la 'mala práctica de la gerencia' y cómo conduce al auto-sabotaje?

    Sabiendo que la retroalimentación es esencial para el proceso de liderazgo, ¿cómo podemos superar el temor de darlo y recibirlo?

    ¿Cuál es la fuente del 80% de los problemas encontrados en el lugar de trabajo?

    ¿Hay investigación científica disponible para ayudar a la organización a mejorar sus habilidades de liderazgo individual y de equipo?

    Los oradores invitados incluirán eminentes empresarios, científicos de la computación, filántropos, académicos y otros líderes prominentes en la sociedad.

    (unidades 2)

Cursos adicionales de MSCS

  • Lenguajes de programación avanzados (CS 505)

    Este curso considera temas avanzados en diseño de lenguaje de programación con énfasis en métodos formales y mecanismos de abstracción. Los temas incluyen datos y abstracción de control, especificación formal de sintaxis y semántica, pruebas de corrección del programa, programación no determinista, estructuras de control avanzado y estudio de lenguajes específicos. (Unidades 4) Requisito previo: CS 401 o consentimiento de la facultad del departamento.

  • Big Data (Ciencia de datos) (CS 522)

    El procesamiento moderno de la información está definido por vastos repositorios de datos que no pueden ser manejados por los sistemas de bases de datos tradicionales. Este curso cubre la última tecnología desarrollada y utilizada por los líderes de la industria para resolver este problema de la manera más eficiente. Los temas específicos cubiertos incluyen los algoritmos MapReduce, los patrones de diseño del algoritmo MapReduce, HDFS, la arquitectura de clúster Hadoop, YARN, las frecuencias relativas de computación, la clasificación secundaria, el rastreo web, los índices invertidos y la compresión de índices, los algoritmos Spark y Scala. (Unidades 4) Requisito previo: Algoritmos CS 435.

  • Análisis de Big Data (Data Science) (CS 488)

    Big Data es el nuevo recurso natural: los datos se duplican cada mes 12-18. Este nuevo curso de análisis de Big Data cubre los conceptos y herramientas fundamentales para extraer grandes conjuntos de datos diversos para generar nuevos conocimientos. Dominarás el uso del lenguaje R para crear Wordcloud, Pagerank, Visualización de datos, Árboles de decisión, Regresión, Agrupación, Redes neuronales y más. Trabajará con algunos grandes conjuntos de datos de registro multimillonario, y también extraerá feeds de Twitter. Aprenderá los conceptos de Hadoop / MapReduce y Streaming Data, y explorará otros proyectos de Big Data de Apache, tales como Spark, Flink, Kafka, Storm, Samza, NoSQL a través de trabajos de investigación individuales. Trabajará en grupos en proyectos abiertos de Kaggle.com para competir por el premio en efectivo al resolver los mejores desafíos analíticos de datos. También aprenderá a usar IBM SPSS Modeler, líder en la industria, y plataformas de minería de datos de código abierto. El libro de texto del bestseller #1 utilizado en este curso está escrito por el propio instructor. El curso también utilizará una amplia gama de materiales de capacitación en video de MIT, Coursera, Google y otros lugares. (Unidades 4) Requisito previo: Consentimiento de la facultad del departamento

  • Tecnologías de Big Data (Data Science) (CS 523)

    En solo unos pocos años, las tecnologías de big data han pasado del ámbito de la moda a uno de los componentes centrales de la nueva era digital. Estas tecnologías son muy útiles para transformar la información en conocimiento.

    El objetivo del curso es agregar algunas herramientas realmente importantes en tu arsenal para ayudarte a resolver varios problemas de big data. Comenzaremos dando respuestas a preguntas como “¿Qué es Big Data? ¿Por qué es importante o útil? ¿Cómo almacena este big data? ”Luego estudiaremos diferentes herramientas y modelos de programación de la pila de tecnología de big data que nos ayudarán a analizar los datos. Los temas incluyen algunos de los proyectos en el ecosistema de Hadoop como MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper y proyectos de ecosistemas de Apache Spark. También cubriremos una introducción a AWS y EMR. Trabajará principalmente con una distribución de Hadoop de Cloudera de un solo nodo. (Unidades 4) (Sin requisitos previos)

  • Redes de Computadoras (CS 450)

    El objetivo de este curso es aprender los conceptos, los principios de arquitectura y la terminología de las redes de computadoras explorando cómo funcionan las redes y desarrollando aplicaciones de red. Este curso sigue el enfoque de arriba hacia abajo para comprender las redes utilizando la arquitectura y los protocolos de Internet como el ejemplo principal de una implementación de los principios de la red. Comenzamos en la capa de aplicación y continuamos a través de la capa de transporte, la capa de red, la capa de enlace y la capa física de las redes de computadoras. Los estudiantes desarrollan varias aplicaciones de red y completan varios laboratorios diseñados para rastrear y comprender los protocolos de red predominantes en uso en Internet. (Unidades 4) Requisito previo: CS 401 o consentimiento de la facultad del departamento.

  • Seguridad Informática (CS 466)

    Este curso profundiza en los tres aspectos de la seguridad informática: confidencialidad, integridad y disponibilidad. Se estudian varios modelos de políticas de seguridad confidenciales e integridad. Se examina el papel de la criptografía para garantizar la confidencialidad y la integridad. Otros temas incluyen autenticación, auditoría, pruebas de penetración, vulnerabilidades comunes y detección de intrusos. El curso concluye con el estudio de caso de un sistema seguro realista. Se les pedirá a los estudiantes que lean los artículos de la literatura de seguridad y los apliquen al material dado en las conferencias. (Créditos 4) Requisito previo: CS 401 o consentimiento del profesorado del departamento.

  • Sistemas de gestión de bases de datos (CS 422)

    Los sistemas de bases de datos organizan y recuperan información, lo que permite al usuario acceder a la información deseada de manera fácil y eficiente. Los temas incluyen: modelo de datos relacionales; SQL; Modelado ER; álgebra relacional; normalización de datos; actas; objetos en la base de datos; seguridad e integridad de los datos; almacenamiento de datos, OLAP y minería de datos; bases de datos distribuidas; y estudio de un sistema de base de datos comercial específico. (Unidades 4) Requisito previo: CS 401 o consentimiento de la facultad del departamento.

  • Aprendizaje automático (ciencia de datos) (CS 582)

    El aprendizaje automático, el campo de estudio que brinda a las computadoras la capacidad de aprender de los datos, es el centro de casi todas las disciplinas científicas, y el estudio de la generalización (es decir, la predicción) de los datos es el tema central del aprendizaje automático. Este curso ofrece una introducción a nivel de posgrado al aprendizaje automático y una cobertura en profundidad de métodos nuevos y avanzados en el aprendizaje automático, así como su teoría subyacente. Enfatiza los enfoques con relevancia práctica y analiza una serie de aplicaciones recientes del aprendizaje automático, como la minería de datos (en Big Data / Data Science, Data Analytics), el procesamiento de lenguaje natural, la visión por ordenador, la robótica, la bioinformática y el procesamiento de datos de texto y web. El aprendizaje automático se utiliza en diversas industrias, entre ellas, servicios financieros, petróleo y gas, atención médica, marketing y publicidad, gobierno, Internet e Internet de las cosas.

    Este curso cubre una variedad de paradigmas de aprendizaje, algoritmos, resultados teóricos y aplicaciones. Utiliza conceptos básicos de inteligencia artificial, teoría de la información, estadísticas y teoría de control en la medida en que son relevantes para el aprendizaje automático. Los temas incluyen: aprendizaje supervisado (aprendizaje generativo / discriminativo, aprendizaje paramétrico / no paramétrico, redes neuronales, máquinas de vectores de soporte, árbol de decisiones, aprendizaje y optimización bayesiano); aprendizaje no supervisado (agrupamiento, reducción de dimensionalidad, métodos de núcleo); teoría del aprendizaje (compensaciones sesgo / varianza; teoría VC; márgenes grandes); Aprendizaje de refuerzo y control adaptativo. Otros temas incluyen HMM (modelo de Markov oculto), computación evolutiva, aprendizaje profundo (con redes neuronales) y algoritmos de diseño cuyo rendimiento se puede analizar rigurosamente para detectar problemas fundamentales de aprendizaje automático.

    Una parte importante del curso es un proyecto grupal. Las principales herramientas de código abierto utilizadas para el aprendizaje automático paralelo, distribuido y escalable se cubrirán brevemente para ayudar a los estudiantes a realizar los proyectos. (Unidades 4) Prerrequisito: Ninguno.

  • Programación de dispositivos móviles (CS 473)

    La importancia de la programación de dispositivos móviles ha emergido en los últimos años como un nuevo dominio en el desarrollo de software. Este curso prepara a los estudiantes para desarrollar aplicaciones que se ejecutan en dispositivos móviles como un teléfono IPhone, iPad o Android. Este es un mercado en rápido desarrollo. El curso se enfoca en instalar, desarrollar, probar y distribuir aplicaciones móviles. Al final de este curso, los estudiantes pueden desarrollar una aplicación para las plataformas cubiertas, simularlas, probarlas en el dispositivo real y, finalmente, publicarlas en la tienda de aplicaciones para que estén disponibles para los usuarios. (Unidades 4) Requisito previo: CS472 o consentimiento de la facultad del departamento.

  • Aplicaciones Web Modernas (CS 572)

    En este curso, aprenderá la Arquitectura de programación reactiva de SPA (aplicaciones web de una sola página) junto con todas las habilidades necesarias para crear una aplicación web moderna completa. Las tecnologías incluyen: NodeJS, ExpressJS, TypeScript, AngularJS2, Firebase y bases de datos NoSQL (MongoDB). El curso abarcará:

    • Cómo funcionan el motor de C ++ V8 y el código asíncrono en el bucle de eventos Nodo y Nodo.
    • Cómo estructurar su código para reutilizarlo y crear una API Restful usando módulos y ExpressJS.
    • Cómo funcionan las bases de datos NoSQL: Mongo Shell, marco de agregación, conjuntos de réplicas, agrupación en clústeres, fragmentos, ORM de mangosta.
    • Comprensión profunda de cómo funciona Angular (respaldado por Google), detección de cambios, programación de RxJ reactivos con observables y sujetos, The Shadow DOM, zonas, módulos y componentes, directivas y tuberías personalizadas, inyección de dependencias y servicios, compilador angular, compilación de JIT y AOF , Formularios (controlados por plantillas y controlados por datos), enlace de datos, enrutamiento, protecciones y protección de rutas, cliente HTTP, autenticación de token web JWT JSON.

    (unidades 4)

  • Sistemas Operativos (CS 465)

    Un sistema operativo controla los recursos centrales del sistema informático y los asigna a usuarios individuales. Los temas del curso incluyen procesos secuenciales y simultáneos, exclusión mutua, intercambio de recursos, cooperación de procesos, interbloqueo, asignación de recursos, programación del procesador, administración de memoria, algoritmos de paginación y segmentación, sistemas de tiempo compartido, algoritmos de programación y protección de recursos. (Unidades 4) Requisito previo: CS 401 o consentimiento de la facultad del departamento.

  • Programación Paralela (CS 471)

    El procesador estándar para todas las computadoras nuevas ahora es un procesador de múltiples núcleos, que tiene el potencial de ejecutar programas mucho más rápidamente. Sin embargo, para utilizar este potencial, un programador debe tener algún conocimiento de las técnicas de programación paralela. Durante este curso, los estudiantes pasarán la mayor parte del tiempo escribiendo y depurando programas paralelos. El resultado esperado será desarrollar un nuevo nivel de habilidad de programación práctica. Esta habilidad no solo será útil para la programación de procesadores de múltiples núcleos, sino también para la programación de sistemas operativos y la programación de bases de datos distribuidas. Las herramientas de software utilizadas durante este curso incluyen Microsoft Visual C / C ++, la biblioteca de subprocesos múltiples de Java y el estándar de subprocesos OpenMP. (Unidades 4) Requisito previo: Conocimiento de la programación de computadoras utilizando Java, C o C ++.

  • Arquitectura de software (CS 590)

    En este curso veremos las técnicas, los principios y los patrones de cómo diseñar sistemas de software flexibles, escalables, comprobables y resistentes mediante microservicios. Estudiaremos cómo podemos dividir las aplicaciones grandes en microservicios más pequeños que son más fáciles de construir y otras ventajas en comparación con las aplicaciones empresariales monolíticas. Una arquitectura de microservicio distribuida también presenta muchos desafíos. Estudiaremos estos retos y cómo abordarlos. Los temas de este curso son estilos arquitectónicos, técnicas y patrones de integración, diseño impulsado por dominio, arquitectura dirigida por eventos y programación reactiva. (Créditos 4). (No hay requisitos previos)

  • Práctica en Desarrollo de Software (CS 575)

    En este curso práctico, los estudiantes realizan tareas relacionadas con la informática en un puesto técnico profesional. Las tareas realizadas pueden ser en el diseño y desarrollo de nuevos sistemas o la aplicación de sistemas existentes para propósitos específicos. Las descripciones de los puestos de práctica son formuladas por el empleador y el estudiante, y requieren la aprobación previa de uno de los profesores graduados del departamento, en consulta con el supervisor de práctica donde se ubica al estudiante. (Este curso es principalmente para estudiantes en prácticas o programas cooperativos). (Unidad 0.5-1 por bloque, se puede repetir).

“La primera vez que escuché sobre el programa MSCS, lo dudé. No podía creer que exista algo así. Pero un día, un amigo mío se unió al programa. Fue entonces cuando confirmé que es real. Luego reanudé mi proceso de solicitud. ¡Bien! Es cierto, estoy aquí, he completado el programa y estoy muy feliz ".

Edwin BwambaleUganda