-
Presentation
Presentation
The objectives of this course unit are: Teach students skills that enable them, in the role of a software developer, to responsibly delegate parts of software development work to LLMs and other Generative AI tools. Examples include: requirements, small functions/classes, and possibly tests. Develop critical thinking regarding these new tools and others of the same kind (evaluate, question results, compare, draw conclusions, etc.). Foster clear and unambiguous communication skills (e.g., providing examples, contextualizing, etc.). Promote ethical and responsible use of these tools.
-
Class from course
Class from course
-
Degree | Semesters | ECTS
Degree | Semesters | ECTS
Bachelor | Semestral | 4
-
Year | Nature | Language
Year | Nature | Language
2 | Mandatory | Português
-
Code
Code
ULHT260-19082
-
Prerequisites and corequisites
Prerequisites and corequisites
Not applicable
-
Professional Internship
Professional Internship
Não
-
Syllabus
Syllabus
Generative AI Literacy Introduction to Large Language Models Ethics and Copyright Ethical implications of using LLMs (ethics, intellectual property, security, …) Techniques to improve LLM outputs: fine-tuning, RAG, prompt engineering Systematic code reading and analysis Debugging with the IntelliJ debugger Critical Thinking and Skeptical Thinking Introduction to both types of thinking Key differences between the two types of thinking The importance of both types of thinking in the LLM era Problem decomposition and modularization Software Testing Test types (e.g., manual, automatic, integration, unit, etc) Unit testing with JUnit Test Driven Development (TDD) Introduction to Code Review/Verification Exploring existing code with the help of LLMs Integrating LLMs into software via API Retrieval-Augmented Generation
-
Objectives
Objectives
Understand and explain the basic functioning of Large Language Models, their caracteristics and limitations Code reading: systematic reading and interpretation of programs Debugging: using the IntelliJ debugger Unit testing: using JUnit Exploration and documentation of existing code with the help of LLMs Critical and skeptical thinking Code review: critical analysis of code Prompt Engineering Techniques
-
Teaching methodologies and assessment
Teaching methodologies and assessment
Use of "Custom GPTs" configured to introduce errors that students must find in the code. Guided interaction with LLMs (i.e., ChatGPT, etc.). Presentation of real-world use cases in which LLMs caused problems.
-
References
References
Vladimir Khorikov – Unit Testing: Principles, Practices, and Patterns. 2.ª edição. Shelter Island, NY : Manning Publications, 2020. 1 volume (xx + 300 p.) : il. ISBN 9781617296277. Roy Osherove – The Art of Unit Testing: With Examples in .NET. 2.ª edição. Shelter Island, NY : Manning Publications, 2013. 1 volume (xx + 320 p.) : il. ISBN 9781617290893.
-
Office Hours
Office Hours
-
Mobility
Mobility
No