General Context
This course is designed to introduce software engineers to the basic and advanced capabilities of ChatGPT in software development. ChatGPT, a large language model (LLM) developed by OpenAI, has significantly changed how coding, testing, debugging, and managing practices in software industry. While it is still in the early stage of the GenAI movement, we believe that students would greatly benefit from understanding the tools and are prepared with an appropriated mindset, practices and processes. Participants will explore how ChatGPT can assist in various stages of software development, from initial conception to deployment, and its integration with existing development workflows. The course will cover practical applications, ethical considerations, and limitations of AI in software engineering, providing a comprehensive understanding of how ChatGPT can be a valuable tool in a developer’s toolkit.
Learning Objectives
By the end of this course, participants will be able to:
- Understand the fundamentals of ChatGPT and its underlying technologies.
- Apply ChatGPT in various software engineering tasks such as code generation, debugging, and documentation.
- Integrate ChatGPT into software development pipelines to enhance productivity.
- Critically assess the ethical implications and limitations of using AI in software development.
- Develop innovative solutions to complex software engineering problems using ChatGPT.
- Stay informed about the evolving landscape of AI in software engineering.
Teaching Activities
The course will employ a blend of theoretical and practical learning approaches. Each module will begin with a lecture to introduce concepts, followed by hands-on workshops where students apply these concepts in real-world scenarios. Interactive sessions with ChatGPT, case studies, and group projects will encourage active learning and collaboration. Guest lectures from industry experts will provide insights into how ChatGPT is being used in the software industry. Regular assessments, including quizzes and project presentations, will be used to gauge understanding and provide feedback.
Course Curriculum
| Week | Topic | Description |
|---|---|---|
| 1 | Introduction to ChatGPT and AI in Software Engineering | Overview of ChatGPT, its capabilities, and its role in software development. |
| 2 | Prompt Engineering | Teaching patterns, various usage scenarios and practices with prompts for ChatGPT |
| 3 | ChatGPT for Requirement Engineering and Documentation | Utilizing ChatGPT for generating ideas, requirements documentation and reports. |
| 4 | ChatGPT for Code Generation, Debugging and Problem Solving | Using ChatGPT for writing, understanding, and optimizing code, debugging and resolving coding issues. |
| 5 | GenAI in UX design | Using ChatGPT, DallE, Midjourney in idealization, brainstorming, prototyping and user testing |
| 6 | ChatGPT for software project management | Using ChatGPT to generate product backlog, estimation, risk analysis and modelling and task assignment |
| 7 | Integrating ChatGPT into Development Workflows | Strategies for incorporating ChatGPT into existing software development processes. |
| 8 | Ethical Considerations and Limitations | Discussing the ethical implications and limitations of AI in software development. |
| 9 | Project Work and Case Studies | Applying knowledge in a project; analyzing real-world case studies. |
| 10 | Final Assessment and Future Trends | Final project presentation and discussion on the future of GenAI in software engineering. |
This course plan provides a comprehensive roadmap for teaching and learning the application of ChatGPT in software engineering, ensuring that participants gain both theoretical knowledge and practical skills.
References
- Nguyen-Duc, A., Cabrero-Daniel, B., Przybylek, A., Arora, C., Khanna, D., Herda, T., Rafiq, U., Melegati, J., Guerra, E., Kemell, K.-K., Saari, M., Zhang, Z., Le, H., Quan, T., & Abrahamsson, P. (2023). Generative Artificial Intelligence for Software Engineering—A Research Agenda (arXiv:2310.18648). arXiv. https://doi.org/10.48550/arXiv.2310.18648
- Duc, A. N., Lønnestad, T., Sundbø, I., Johannessen, M. R., Gabriela, V., Ahmed, S. U., & El-Gazzar, R. (2023). Generative AI in Undergraduate Information Technology Education—Insights from nine courses (arXiv:2311.10199). arXiv. https://doi.org/10.48550/arXiv.2311.10199
- Daun, M., & Brings, J. (2023). How ChatGPT Will Change Software Engineering Education. Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 1, 110–116. https://doi.org/10.1145/3587102.3588815
- Ebert, C., & Louridas, P. (2023). Generative AI for Software Practitioners. IEEE Software, 40(4), 30–38. https://doi.org/10.1109/MS.2023.3265877
- Liu, Y., Deng, G., Xu, Z., Li, Y., Zheng, Y., Zhang, Y., Zhao, L., Zhang, T., & Liu, Y. (2023). Jailbreaking ChatGPT via Prompt Engineering: An Empirical Study (arXiv:2305.13860). arXiv. https://doi.org/10.48550/arXiv.2305.13860
- Spasić, A. J., & Janković, D. S. (2023). Using ChatGPT Standard Prompt Engineering Techniques in Lesson Preparation: Role, Instructions and Seed-Word Prompts. 2023 58th International Scientific Conference on Information, Communication and Energy Systems and Technologies (ICEST), 47–50. https://doi.org/10.1109/ICEST58410.2023.10187269
- White, J., Fu, Q., Hays, S., Sandborn, M., Olea, C., Gilbert, H., Elnashar, A., Spencer-Smith, J., & Schmidt, D. C. (2023). A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT (arXiv:2302.11382). arXiv. https://doi.org/10.48550/arXiv.2302.11382
- Bera, P., Wautelet, Y., & Poels, G. (2023). On the use of ChatGPT to support agile software development. Agil-ISE 2023 : 2nd International Workshop on Agile Methods for Information Systems Engineering (Agil-ISE 2023) : Short Paper Proceedings of the Second International Workshop on Agile Methods for Information Systems Engineering (Agil-ISE 2023) : Co-Located with the 35th International Conference on Advanced Information Systems Engineering (CAiSE 2023), 3414, 1–9. http://hdl.handle.net/1854/LU-01H37XBNDJ8A62KPS0CTVKXWNN
- Dong, Y., Jiang, X., Jin, Z., & Li, G. (2023). Self-collaboration Code Generation via ChatGPT (arXiv:2304.07590). arXiv. https://doi.org/10.48550/arXiv.2304.07590
- Farrokhnia, M., Banihashem, S. K., Noroozi, O., & Wals, A. (2023). A SWOT analysis of ChatGPT: Implications for educational practice and research. Innovations in Education and Teaching International, 0(0), 1–15. https://doi.org/10.1080/14703297.2023.2195846
- Jalil, S., Rafi, S., LaToza, T. D., Moran, K., & Lam, W. (2023). ChatGPT and Software Testing Education: Promises & Perils. 2023 IEEE International Conference on Software Testing, Verification and Validation Workshops (ICSTW), 4130–4137. https://doi.org/10.1109/ICSTW58534.2023.00078
- Kasneci, E., Sessler, K., Küchemann, S., Bannert, M., Dementieva, D., Fischer, F., Gasser, U., Groh, G., Günnemann, S., Hüllermeier, E., Krusche, S., Kutyniok, G., Michaeli, T., Nerdel, C., Pfeffer, J., Poquet, O., Sailer, M., Schmidt, A., Seidel, T., … Kasneci, G. (2023). ChatGPT for good? On opportunities and challenges of large language models for education. Learning and Individual Differences, 103, 102274. https://doi.org/10.1016/j.lindif.2023.102274
- Lund, B., & Ting, W. (2023). Chatting about ChatGPT: How May AI and GPT Impact Academia and Libraries? (SSRN Scholarly Paper 4333415). https://doi.org/10.2139/ssrn.4333415
- Nascimento, N., Alencar, P., & Cowan, D. (2023). Comparing Software Developers with ChatGPT: An Empirical Investigation (arXiv:2305.11837). arXiv. https://doi.org/10.48550/arXiv.2305.11837
- Qadir, J. (2023). Engineering Education in the Era of ChatGPT: Promise and Pitfalls of Generative AI for Education. 2023 IEEE Global Engineering Education Conference (EDUCON), 1–9. https://doi.org/10.1109/EDUCON54358.2023.10125121
- Tian, H., Lu, W., Li, T. O., Tang, X., Cheung, S.-C., Klein, J., & Bissyandé, T. F. (2023). Is ChatGPT the Ultimate Programming Assistant—How far is it? (arXiv:2304.11938). arXiv. https://doi.org/10.48550/arXiv.2304.11938
- Ventayen, R. J. M. (2023). ChatGPT by OpenAI: Students’ Viewpoint on Cheating using Artificial Intelligence-Based Application (SSRN Scholarly Paper 4361548). https://doi.org/10.2139/ssrn.4361548
- White, J., Hays, S., Fu, Q., Spencer-Smith, J., & Schmidt, D. C. (2023). ChatGPT Prompt Patterns for Improving Code Quality, Refactoring, Requirements Elicitation, and Software Design (arXiv:2303.07839). arXiv. https://doi.org/10.48550/arXiv.2303.07839
Call for Action
We are seeking collaborators in development and adoption of our courses in academic or industrial settings. If you’re interested in partnering with us, please contact us at angu@usn.no.
