It is an in-depth introduction to using Machine Learning (ML) and Natural Language Processing (NLP) in Software Engineering. The course is designed for aspiring software engineers, and developers at the undergraduate senior level and postgraduate level seeking to expand their knowledge on the development and maintenance of software systems and to harness the potential of integrating ML and NLP technologies at various stages of the software construction cycle. In particular, the program seeks to promote the education of the underrepresented Latin American talent in software development with state-of-the-art technologies. The course includes hands-on workshops, lectures, digital learning activities, and collaborative projects.
Idioma: Inglés
Requisitos: Profesionales interesados en el aprendizaje automático, el procesamiento del lenguaje natural y la ingeniería de software. Estudiantes de pregrado en sus últimos semestres, o estudiantes de posgrado en informática, ingeniería, matemáticas y física.
Los estudiantes regulares de la Universidad (estudiantes que estén cursando un pregrado o posgrado) no podrán inscribirse a través de la Dirección de Educación Continua a este curso. En caso de inscripción, la Dirección procederá con la devolución de la misma.
Dirigido a
Professionals interested in machine learning, natural language processing, and software engineering. Undergraduate students in their last semesters, or graduate students in computer science, engineering, mathematics, and physics.
Objetivos
- Understand AI fundamentals and its key concepts, including machine learning, deep learning, and natural language processing.
- Identify areas in software development where AI can be applied, such as data analysis, code summarization, documentation generation, and bug localization.
- Gain proficiency in using new AI tools and libraries that are reshaping the way software developers work.
- Comprehend how AI technologies can enhance or change traditional software development processes.
- Build a mindset of continuous learning in the rapidly evolving field of AI and the tools specifically oriented to support software development tasks.
Contenido
The entire curriculum will be delivered in four modules. This method combines traditional face-to-face lectures with a mix of online activities and hands-on in-person tutorials. This innovative approach will introduce AI topics and common practices in software engineering such as the Scrum ceremonies and other agile management techniques. Furthermore, all hands-on activities and exercises will be contextualized within common software development and maintenance tasks, providing practical experience that mirrors real-world scenarios.
- Pre-program Orientation: Before the start of the program, participants can access an online orientation module that provides an overview of the program structure, resources, and learning outcomes, as well as the course prerequisites.
- Module 1: Intro to ML and AI. In this module, the participants will learn about the basics of machine learning, artificial neural networks, and large language models. Topics: introduction to Machine Learning; introduction to Neural Networks; introduction to Large Language Models.
- Module 2: NLP in SE. In this module, the participants will learn about the different applications of Natural Language Processing (NLP) techniques to software engineering. Specifically, this module will incorporate tutorials and exercises in which the participants will work in groups as a development team that use NLP to support common software maintenance and development tasks such as summarization, documentation generation, and bug localization. Topics: Text preprocessing and tokenization; Source Code Summarization; Documentation Generation; Bug Localization; Sentiment Analysis; Mobile App Reviews.
- Module 3: AI & LLM for SE: The participants will review the foundations of web development. Afterward, the participants will discover how Artificial Intelligence can enhance the software development process through hands-on coding exercises developing web applications assisted by artificial intelligence and large language models (LLM) tools such as GitHub Copilot. Topics: Quick review of web development (Node and React); Code completion and generation using LLM; Bug detection and fixing using LLMs.
- M4: Project. The participants will engage in a week-long software development project, in which they will gain hands-on experience in software development and the integration of ML and AI. This module will be structured following an agile software development process including agile practices such as daily stand-ups and sprint.
Condiciones
Eventualmente la Universidad puede verse obligada, por causas de fuerza mayor a cambiar sus profesores o cancelar el programa. En este caso el participante podrá optar por la devolución de su dinero o reinvertirlo en otro curso de Educación Continua que se ofrezca en ese momento, asumiendo la diferencia si la hubiere.
La apertura y desarrollo del programa estará sujeto al número de inscritos. El Departamento/Facultad (Unidad académica que ofrece el curso) de la Universidad de los Andes se reserva el derecho de admisión dependiendo del perfil académico de los aspirantes.