Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

My insights in this book mostly come from my time at WWU designing ang going through hands-on labs and projects with students in the CPTR 450 Software Engineering and CPTR 430 Artificial Intelligence classes. At the time we were adding a lot of AI-related content to the course curriculum in general to try to keep things modern and help the students have a competitive edge in the rapidly-changing industry. The purpose of this book or monograph is primarily to help other students or educators in a similar situation.

My PhD background is in logic-based verification & privacy-preserving technology, which is primarily applied today in data science, especially machine learning and artificial intelligence - so I became familiar with those topics during my research. I also did some work with programming (language) design and verification, which I think helps guide my teaching of modern software engineering topics and the logic aspects of AI. Speaking of programming languages (PLs) Some people like to think of prompting as the new high-level programming language, and LLMs as the new compilers, and I can agree that this analogy is appropriate at least in terms of productivity gains. This is especially true for certain tasks, such as: onboarding into a new codebase, learning new topics, boilerplate generation, code review, mock data generation, brainstorming and many other areas of software engineering as we will see in this book.

As AI and low-code platforms automate the “how,” the engineer’s value is shifting to the “what” and the “why.” It seems to me that the future software engineer’s primary technical role will be more of a system architect and their role will be to design and connect complex systems, orchestrating a mix of cloud services, microservices, and multiple AI models. Their core technical skill will be system design, not just routine and repetitive coding.

With this shift, the human responsibility for the system’s impact increases. The SWE becomes the human steward responsible for ensuring these complex, and often opaque, AI-driven systems are secure, unbiased, private, and truly aligned with human values.

The most valuable skills for this new era are the ones that AI cannot replicate, which include critical thinking and nuanced problem-solving, empathy and a deep understanding of user needs, business acumen and collaboration both with cross-functional human teams and GenAI programming tools. This elevated engineering role, with its own unique challenges and responsibilities, is the subject of this book.

Structure & Design Philosophy

The book contains numerous examples as programs, including implementations of concepts. Each chapter is generated from a self-contained Jupyter Notebook.

We assume a working knowledge of Python.

This book is open source, and the latest version will always be freely available online.

Purpose

There are of course many great AI books, but no one of them fulfills all possible purposes. This book is intended as a more example-oriented, lab-oriented introduction to fluency and literacy of modern generative AI (using LLMs) techniques and concepts in particular. What is sometimes called the “AI boom” of the early 2020s has lead to an increased demand in academia for this kind of content.

A major reason for the example-oriented approach (in both the privacy book and this one) is to raise interest in this kind of science among diverse groups by showing how easily accessible it is.

Contact

This book is open-source on Github: https://github.com/abuach/programming-genai

If you’re using my content in your class, please let me know at: chike.abuah@wallawalla.edu