Aprenda habilidades prácticas con las últimas tecnologías en desarrollo de software

Estas listo para ¿Avanza tu carrera?

¿Estás listo para avanzar en tu carrera?

En consulta con sus asesores, todos los estudiantes eligen cursos fundamentales de la columna de la izquierda a continuación y cursos avanzados de la columna de la derecha.

Basado en los exámenes de calificación tomados cuando llegan al campus, solo los estudiantes en el Pista de entrada preparatoria tendrá que tomar la clase de Prácticas fundamentales de programación (CS 4) de 390 semanas. Se requieren FOR 506 y CS 401 para todos los estudiantes. Ver requisitos de graduación >

Cursos Fundamentales

  • Su primer curso está diseñado específicamente para establecer las bases de cómo puede convertirse en un profesional de la informática de alto rendimiento. El curso tiene sus raíces en la práctica de la Meditación Trascendental que conduce a la realización de su verdadero potencial. Aprenderá acerca de los beneficios de la MT, 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 respalda el éxito en la vida. (2 unidades)

  • El curso FPP proporciona un programa enfocado para mejorar las habilidades analíticas y de programación en cinco áreas: resolución de problemas, estructuras de datos, programación orientada a objetos, el lenguaje de programación Java y el uso de recursividad en programas Java.

    Estos temas son de particular importancia como requisito previo para los cursos del programa de posgrado en Ciencias de la Computación.

    Los temas incluyen: elementos de programación Java, diseño e implementación orientados a objetos, estructuras de datos (incluidas listas, pilas, colas, árboles de búsqueda binaria, tablas hash y conjuntos), la jerarquía de excepciones, flujos y e / s de archivos y JDBC. (4 créditos) Prerrequisito: Para estudiantes de pregrado: CS 221; para estudiantes de posgrado: consentimiento del cuerpo docente del departamento (4 unidades)

  • El curso MPP presenta los principios fundamentales de la programación orientada a objetos. Los estudiantes aprenderán a 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 clases UML y principios de diseño que promueven la reutilización y el mantenimiento del software. (4 unidades)

  • Este curso cubre los fundamentos de los principios de diseño de bases de datos y una introducción a las bases de datos SQL y NoSQL.

    Los temas incluyen: Principios de diseño de bases de datos relacionales, formas normales, claves primarias y externas y únicas; consultas (agregación, uniones, clasificación); Actas; Principios de diseño de bases de datos basadas en documentos, índices, bases de datos escalables; Disponibilidad y recuperación (volcado, restauración, exportación, importación); Base de datos como servicio. Sin requisitos previos.

    (unidades 4)

  • 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.

  • 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).

  • 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).

  • Este curso profundiza en los conceptos de programación web asíncrona y cubre los patrones de diseño más esenciales para JS, que incluyen el patrón de observador, fábrica, decorador y muchos más. También cubre el trabajo con Web API y estructuras de datos inmutables.

    Los temas incluyen: Git colaborativo; Introducción a TypeScript y Bundlers; JavaScript asíncrono; bucle de eventos; API de historial, API de geolocalización; Ajax (HTTP, Ajax, JSON, Fetch, Introducción a CORS, Depuración); Promesas y Async/Await; Programación Reactiva; Operadores y Observables RxJS; Patrones de Diseño: Módulo, Prototipo, Singleton, Observador, Fachada, Fábrica, Decorador, Proxy, Estrategia, Memoización; Navegadores web modernos. Sin requisitos previos.

    (unidades 4)

  • El futuro de la informática es paralelo. El aumento en el rendimiento secuencial se ha estancado a medida que los diseños de los procesadores alcanzan los límites de miniaturización, frecuencia de reloj, potencia y calor. En 2005, la cantidad de núcleos de procesador comenzó a aumentar abruptamente de un solo núcleo a varios núcleos, lo que generó la posibilidad de ejecutar programas mucho más rápido. Sin embargo, para utilizar este potencial, un programador debe tener algún conocimiento de las técnicas de programación paralela.

    Este curso enseña a los estudiantes los conceptos fundamentales de la programación paralela en el contexto de Java 9. La programación paralela permite a los desarrolladores usar computadoras multinúcleo para hacer que sus aplicaciones se ejecuten más rápido al usar múltiples núcleos al mismo tiempo. Al final de este curso, aprenderá a usar marcos Java paralelos populares (como Multi-Threading, Streams y Executors) para escribir programas paralelos para una amplia gama de plataformas multinúcleo, incluidos servidores, computadoras de escritorio o dispositivos móviles.

    Las herramientas de software utilizadas durante este curso incluyen Microsoft Visual Studio, la biblioteca de subprocesos múltiples de Java y el estándar de subprocesos OpenMP. (4 unidades) Prerrequisito: Conocimiento de programación de computadoras usando Java, C o C++.

    Para más información, mira este vídeo de cinco minutos realizado por el profesor de este curso:

    https://www.youtube.com/watch?v=dWcWAnn0Ppc

  • Este curso proporciona una introducción sistemática a la programación de aplicaciones web interactivas y dinámicas. El curso está destinado a personas con poca o ninguna experiencia previa en programación de aplicaciones web. Esta oferta utilizará NodeJS y el marco Express para el procesamiento del lado del servidor.

    El curso comienza con una revisión de los fundamentos de HTML y CSS, con un enfoque especial en el diseño de páginas web usando CSS. JavaScript es el lenguaje de programación utilizado a lo largo del curso, incluidas funciones, objetos, módulos, jQuery framework, Ajax y Promises. Los estudiantes pasan la mayor parte de su tiempo programando una serie de sitios web cada vez más complejos y sofisticados. Un proyecto final durante la última semana del curso crea un sitio web con una base de datos SQL a la que el cliente accede de forma asincrónica para un rendimiento óptimo.

    Este curso es un requisito previo para Arquitectura de aplicaciones web CS545 y Aplicaciones web modernas CS572. Prerrequisito: CS 220 o CS 401 o consentimiento de la facultad del departamento

    (unidades 4)

  • El desarrollo de programas Android es una experiencia emocionante y potencialmente lucrativa. El desarrollo de Android abre el mundo de la creatividad al programador. Le permite expresarse de maneras que nunca soñó en un mundo digital donde puede crear un producto y ponerlo a disposición de miles de millones de usuarios con solo hacer clic en un botón. Este curso enseñará cómo desarrollar aplicaciones Android utilizando el lenguaje de programación Kotlin.

    Los temas incluyen: Configuración de su computadora para la programación de Android; Fundamentos manifiestos; Diseños, actividades, vistas y componentes de la interfaz de usuario; Trabajar con intenciones, fragmentos y preferencias compartidas; Vista Web y HTML; Trabajar con Multimedia; componentes de Android Jetpack, Room Database y JSON; subestimar los sensores; Localización; Aplicación de publicación en Google Play Store. (4 unidades) No se requieren requisitos previos.

  • Este curso se enfoca en el uso de JavaScript en el backend (NodeJS). Los estudiantes aprenderán cómo funciona NodeJS y obtendrán una comprensión profunda de su interfaz de programación de aplicaciones (API) central. El curso cubre cómo funciona el motor del compilador JS (V8), cómo estructurar el código usando módulos y cómo funciona el código asíncrono en Node y el bucle de eventos de Node. El curso también enseña Node Package Manager (NPM), cómo construir un servidor web, cómo trabajar con el marco Express y cómo usar ODM como Mongoose para administrar MongoDB. Los estudiantes aprenderán todas las técnicas que definen una aplicación web moderna, incluida la autenticación de usuarios con tokens web JSON, la persistencia de datos en la base de datos y la creación de una API Restful. También se cubren otros conceptos de informática.

    Los temas incluyen: Diseño de API HTTP y resto; Aplicaciones sin estado frente a aplicaciones con estado; API de nodo; Administrador de paquetes de nodos (npm); arquitectura Model-Controller, marco Express y middleware; enrutamiento del lado del servidor; Autenticación basada en token. Sin requisitos previos.

    (unidades 4)

  • Big Data es el nuevo recurso natural: los datos se duplican cada 12-18 meses. Este nuevo curso de Big Data Analytics cubre los conceptos y herramientas fundamentales para extraer grandes conjuntos de datos diversos para generar nuevos conocimientos. Dominará el uso del lenguaje R para crear Wordcloud, Pagerank, visualización de datos, árboles de decisión, regresión, agrupación en clústeres, redes neuronales y más. Trabajará con grandes conjuntos de datos de registros de varios millones 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 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 premios en metálico resolviendo los mejores desafíos de análisis de datos. También aprenderá a utilizar IBM SPSS Modeler líder en la industria y plataformas de minería de datos de código abierto. El curso también utilizará una amplia gama de materiales de capacitación en video del MIT, Coursera, Google y otros lugares. (4 unidades) Prerrequisito: Consentimiento del cuerpo docente del departamento

  • El Desarrollo de Software es el proceso sistemático de concebir, especificar, analizar, diseñar, programar, probar, documentar y mantener involucrado en la producción de algún Sistema o Software de Aplicación.

    En este curso, los estudiantes aprenderán cómo producir soluciones de software de nivel empresarial, tomando los requisitos desde la concepción, pasando por el análisis, el diseño, la implementación y las pruebas, hasta la entrega y el despliegue de software funcional. Enseñará una variedad de principios, mejores prácticas y herramientas y tecnologías relacionadas y cómo se utilizan y aplican en la producción de soluciones de software sólidas y de alta calidad. Las técnicas y herramientas cubiertas se centrarán principalmente en la plataforma de software Java, aunque no se limitarán a ella.

    Estudiaremos las técnicas sobre cómo identificar y obtener los requisitos correctos para un producto de software, cómo analizar estos requisitos y seleccionar una arquitectura de solución de software adecuada y crear un diseño apropiado. Y cómo implementar el diseño en código, incluidas las pruebas y, en última instancia, cómo construir y empaquetar el artefacto resultante para su entrega/implementación. Consideraremos varios mecanismos de implementación modernos, incluida la nube. Prerrequisito: CS 401

    Los temas incluyen:

    • Diseño y desarrollo de bases de datos
    • Análisis y diseño orientado a objetos
    • Modelado de dominio
    • Arquitectura de sistemas
    • Desarrollo de aplicaciones web utilizando Spring Web MVC
    • Implementación y Pruebas del Sistema; incluyendo pruebas unitarias, pruebas de burla y de integración
    • Seguridad del software, incluida la gestión de identidades y accesos
    • Containerización y tecnologías de contenedores

    (unidades 4)

  • 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?

    ¿Existe 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 avanzados

  • Project Management introduce al estudiante a aprender a través del desarrollo práctico de un proyecto, conferencias, lecturas, experimentando el Marco de Gestión de Proyectos, su conjunto de áreas de conocimiento (10 áreas de conocimiento y procesos relacionados) y su implementación. Los estudiantes trabajan en la implementación de un proyecto real y experimentan el papel de la gestión de proyectos en todas las fases del ciclo de vida del desarrollo de software utilizando una metodología de desarrollo de aplicaciones.

    Los estudiantes adquieren experiencia real en la planificación de proyectos, gestión de requisitos, gestión del alcance, estándares de codificación, estimaciones de costos por módulo/código en términos de valor en dólares, así como en términos de horas hombre, gestión de cronogramas, gestión de calidad, gestión de riesgos y gestión de comunicaciones. Al final del curso, los estudiantes tendrán una aplicación en ejecución que se desarrolla utilizando los procesos de PM utilizados en la industria. (Desde los requisitos hasta el despliegue de producción). El proyecto se desarrolla utilizando las últimas Tecnologías Java y sus frameworks con los Servicios Web y Patrones de Diseño.

  • 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.

  • Este curso cubrirá los patrones de programación en la nube y permitirá a los estudiantes practicar el trabajo con varios servicios web en la nube, incluidas las funciones sin servidor de AWS.

    Los temas incluyen: Gestión de acceso e identidad (IAM); Nube privada virtual (VPC), listas de control de acceso a la red: NACL, subredes, zonas de disponibilidad, servicio de almacenamiento simple (S3), computación en la nube elástica (EC2), servicio de notificación simple (SNS), balanceador de carga elástico (ELB), escalado automático, Ruta 53, API en la nube; AWS Lambda, sin servidor; Servicios web; Despliegue de Aplicaciones, Proyecto Final. (4 créditos). (Sin requisitos previos)

  • 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.

  • En tan solo unos pocos años, las tecnologías de big data han pasado del ámbito de la exageración a uno de los componentes centrales de la nueva era digital. Estas tecnologías son de gran utilidad para transformar la Información en Conocimiento. El objetivo del curso es agregar algunas herramientas importantes a su arsenal para ayudarlo a resolver varios problemas de big data.

    El curso comienza dando respuestas a preguntas como “¿Qué es Big Data y su importancia? ¿Cómo almacenar big data de forma fiable y económica? ¿Qué herramientas usar para encontrar información útil a partir de estos grandes datos? etc." En este curso, los estudiantes estudiarán diferentes herramientas y modelos de programación para analizar big data. Los temas incluyen proyectos del ecosistema Hadoop como MapReduce, Pig, Hive, Sqoop, Flume, HBase (NoSQL DB), Zookeeper, así como proyectos del ecosistema Apache Spark como Spark SQL y Spark Streaming. Los estudiantes también tienen la oportunidad de construir una canalización completa de big data a partir de la recopilación de datos en tiempo real, el procesamiento, el análisis y, finalmente, la visualización de los resultados en formato gráfico en los paneles. Los estudiantes trabajarán principalmente con un clúster de Hadoop de un solo nodo de distribución de Cloudera. (4 unidades) (MPP es el único requisito previo)

  • Con el rápido crecimiento de los datos de varias fuentes, la mayoría de las empresas y organizaciones se han vuelto altamente impulsadas por los datos. Extraer información clave de dichos datos y convertirla en conocimiento e inteligencia es la función clave de Big Data Analytics. Es por eso que cada vez más empresas gastan más dinero en análisis de datos. Esto ahora se acelera aún más por el rápido crecimiento Transformación Digital. Este curso de Big Data Analytics cubre los conceptos fundamentales de análisis, algoritmos y herramientas para extraer grandes conjuntos de datos diversos para generar nuevos conocimientos comerciales.

    Todos los principales análisis, incluidos Descriptivo, Predictivo, Prescriptivo y Diagnóstico será cubierto. Cubrirá enfoques algorítmicos para analizar grandes conjuntos de datos (no estructurados, mixtos, estructurados, gráficos y transmisión): aprendizaje automático (redes neuronales, aprendizaje profundo, árboles de decisión, bosque aleatorio y más), IA, procesamiento de lenguaje natural (NLP), estadística y algoritmos de transmisión, sobre modernas plataformas de análisis distribuidas (por ejemplo, MapReduce, Hadoop, Spark) para regresión (predicción), clasificación, agrupamiento, sistemas de recomendación y más. Análisis avanzado de grandes datos, especialmente Análisis causal también estará cubierta. Se utilizarán mayoritariamente los lenguajes de programación Python/R. Los estudiantes también realizarán un proyecto grupal para resolver un problema de la vida real utilizando Big Data Analytics.

    (4 unidades) Prerrequisito: Consentimiento de la facultad del departamento

  • Este curso considera los métodos y prácticas actuales para un buen diseño de sistemas de software. Los temas incluyen patrones de diseño de software, marcos, arquitecturas y sistemas de diseño para aplicar estas abstracciones de varios niveles. (2-4 créditos) Prerrequisito: CS 401 o consentimiento del cuerpo docente del departamento.

  • Este curso se enfoca en enseñar los principios y las prácticas que se utilizan 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, incluido el mapeo relacional de objetos (ORM), la inyección de dependencia (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 e invocación de métodos remotos. 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 registrarse en CS422 DBMS antes de registrarse en EA. (4 unidades)

  • 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.

  • React es la biblioteca más popular para crear potentes aplicaciones web. En este curso, los estudiantes aprenderán a usar React y ES6 para crear aplicaciones robustas y escalables desde cero utilizando los últimos patrones de Redux para mantener el estado de su aplicación.

    Los temas incluyen: desarrollo de aplicaciones web basadas en componentes, patrones de diseño de componentes, consumo de API de descanso, persistencia con la API del navegador, API JSX y React (accesorios, tipos de prop, eventos, referencias), flujo de datos de la aplicación e implementación de aplicaciones React. Prerrequisitos WAP o CS 477.

    (unidades 4)

  • En este curso, los estudiantes aprenden la arquitectura de programación reactiva de aplicaciones web de una sola página (SPA) junto con todas las habilidades necesarias para crear una aplicación web moderna completa utilizando TypeScript y Angular. Los estudiantes obtienen una comprensión profunda de cómo funciona Angular, que incluye: Detección de cambios; Programación reactiva de RxJs con observables y sujetos; El DOM de la Sombra; zonas; Módulos, componentes, directivas personalizadas y tuberías; Servicios e inyección de dependencia; Compilador angular: compilación JIT y AOF; Formularios (basados ​​en plantillas y basados ​​en datos); Enrutamiento, guardias y protección de rutas; cliente HTTP; y autenticación de token web JWT JSON. Prerrequisitos: WAP o CS 477.

    (unidades 4)

  • Este curso pasa del desarrollo web al desarrollo de aplicaciones móviles usando React Native, un marco popular de Facebook que permite que las aplicaciones nativas multiplataforma se ejecuten usando JavaScript sin Java o Swift. El curso presenta JavaScript moderno, JavaScript XML (JSX), una extensión de JavaScript. Los estudiantes adquieren experiencia con React Native y sus paradigmas, arquitectura de aplicaciones e interfaces de usuario. El curso culmina con un proyecto final en el que los estudiantes implementan una aplicación móvil completamente de su propio diseño. Requisitos previos: WAA o CS568.

    (unidades 4)

  • 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)

  • En este curso de práctica, 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ácticas donde se ubica al estudiante. (Este curso es principalmente para estudiantes en pasantías o programas cooperativos.) (0.5-1 unidad por bloque - puede repetirse).

  • El aprendizaje automático (ML) es el campo de estudio que brinda a las computadoras la capacidad de aprender a partir de los datos, está en el corazón de casi todas las disciplinas científicas, y el estudio de la generalización (es decir, la predicción) a partir de los datos es el tema central del aprendizaje automático. . Este curso brinda una introducción a nivel de posgrado al aprendizaje automático y una cobertura detallada de métodos nuevos y avanzados en el aprendizaje automático, así como su teoría subyacente. Enfatiza 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/ciencia de datos, análisis de datos), procesamiento de lenguaje natural, visión por computadora, robótica, bioinformática y procesamiento de datos de texto y web. El aprendizaje automático se utiliza en varias industrias, incluidas las de 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ística y teoría de control en la medida en que sean 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 apoyo, árbol de decisiones, aprendizaje y optimización bayesianos); aprendizaje no supervisado (agrupamiento, reducción de dimensionalidad, métodos de kernel); teoría del aprendizaje (compensaciones de sesgo / varianza; teoría de VC; márgenes grandes); aprendizaje por refuerzo y control adaptativo. Otros temas incluyen HMM (modelo oculto de Markov), computación evolutiva, aprendizaje profundo (con redes neuronales) y el diseño de algoritmos 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.

  • La Inteligencia Artificial (IA) es la disciplina que intenta construir y comprender los Sistemas Inteligentes. Las computadoras con inteligencia a nivel humano tendrían un gran impacto en la sociedad. Los agentes de software inteligente y los sistemas multiagente están creciendo rápidamente y ayudan en muchas áreas, como la transformación digital, la automatización, los sistemas conversacionales, la búsqueda web, la robótica, la fabricación, la salud, la industria farmacéutica, la banca, la cadena de suministro, la conducción autónoma, la publicidad, los juegos, entre otros. nombrar unos pocos. La IA impulsa una industria multimillonaria. Este curso enseñará los fundamentos de la IA y brindará a los estudiantes una comprensión práctica del campo. Los temas incluyen los conceptos básicos de la IA: agentes inteligentes, sistemas multiagente, búsqueda inteligente, lógica de primer y orden superior, representación del conocimiento, razonamiento, percepción, aprendizaje, semántica (PNL, Imagen, Objeto...), planificación, toma de decisiones, actoral, reactivo, deliberativo, racional, adaptativo, comunicación e interacción. El curso enfatiza enfoques con relevancia práctica y analiza una serie de aplicaciones populares recientes de IA. Se cubrirán brevemente las principales herramientas de código abierto y lenguajes de programación para IA (incluidos el código bajo y sin código). Los estudiantes también realizarán un proyecto grupal para resolver un problema de la vida real usando IA.

    (4 unidades) Prerrequisito: Consentimiento de la facultad del departamento

  • 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)

  • En honor a los 50 años de educación de MIU, el Departamento de Ciencias de la Computación se complace en iniciar nuestra nueva serie Golden Jubilee ComPro Tech Talks.

    Charlas disponibles aquí.

Opciones de estudio

Hay 3 opciones de estudio para estudiantes internacionales.
Cada uno proporciona una maestría en Ciencias de la Computación.
Todos tienen fechas de entrada de febrero, mayo, agosto o noviembre.

ProgramasMeses de estudio en el campusPráctica pagadaEducación a distancia (DE) durante la práctica
CPT8 - 9Hasta 2 años CPT4 cursos de DE
OPT8 - 9Hasta el mes 11.5 CPT + 3 años OPT (opcional)4 cursos de DE
Tiempo completo en el campus12 - 133 años OPT opciónNA

“La primera vez que escuché sobre el programa MSCS, lo dudé. No podía creer que existiera 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 verdad, estoy aquí, he completado el programa y estoy muy feliz ”.

¿Estás listo para comenzar una nueva carrera?

Nuevo Gira de reclutamiento por el oeste y el norte de África del 7 al 22 de diciembre

> Ver detalles y reservar tu entrada gratuita

(Las entradas ya están disponibles para los 5 eventos)

TIEMPOS DE ESPERA PARA ENTREVISTAS EN LA EMBAJADA DE EE. UU. Y TIEMPOS DE PROCESAMIENTO DE SOLICITUDES DE MSCS

Hemos encontrado que muchos países tienen fechas de entrevista muy retrasadas. Por favor mira Tiempos de espera para citas de visas (state.gov) para averiguar el tiempo para obtener una fecha de entrevista para su país/ciudad.

Si el tiempo de espera de la entrevista es de más de 2 meses, lo alentamos a que presente y complete su solicitud de inmediato, incluso si planea solicitar una entrada futura. De esta manera, puede completar el proceso de solicitud, obtener su I-20 y luego obtener una fecha para la entrevista. Debe tener un I-20 para obtener la fecha de la entrevista. Si la fecha es anterior a la que planea venir a los EE. UU., siempre puede posponer su fecha de llegada una vez que obtenga la visa. Simplemente le emitiríamos un nuevo I-20 para la fecha de entrada para la que planea venir.

Si tiene preguntas sobre esta información, comuníquese con nuestra oficina de admisiones al admisionesdirector@miu.edu.

Hágase estas 4 preguntas:

  1. ¿Tiene una licenciatura en un campo técnico? ¿Si o no?

  2. ¿Tuviste buenas notas en tu licenciatura? ¿Si o no?

  3. ¿Tiene al menos 12 meses de experiencia laboral remunerada a tiempo completo como desarrollador de software después de su licenciatura? ¿Si o no?

  4. ¿Está disponible para venir a los EE. UU. para recibir clases (este programa no está disponible en línea)? ¿Si o no?

Si respondió 'sí' a todas las preguntas anteriores, puedes aplicar (Aunque esto no garantiza que serás aceptado).