Inicio

Banner del curso

Nombre del curso: AI For Software Engineering
Créditos: 4
Profesores: Mario Linares
Sonia Haiduc
Esteban Parra Rodriguez
Juan Sebastian Rodriguez Casas
Horario: Martes, Miercoles, Jueves, Viernes: De 09:00AM a 12:20PM (Hora Colombia)

DESCRIPTION

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.

TARGET AUDIENCE

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

LECTURERS

  • Sonia Haiduc. Associate Professor. Florida State University
  • Mario Linares-Vásquez. Associate Professor. Universidad de los Andes
  • Esteban Parra-Rodríguez. Assistant Professor. Belmont University
  • Juan Sebastián Rodríguez. Senior Software Engineer. Endava

LEARNING GOALS

  1. Understand AI fundamentals and its key concepts, including machine learning, deep learning, and natural language processing.
  2. Identify areas in software development where AI can be applied, such as data analysis, code summarization, documentation generation, and bug localization.
  3. Gain proficiency in using new AI tools and libraries that are reshaping the way software developers work.
  4. Comprehend how AI technologies can enhance or change traditional software development processes.
  5. Build a mindset of continuous learning in the rapidly evolving field of AI and the tools specifically oriented to support software development tasks.

CONTENT

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.