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 tech industry. The purpose of this 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 in data science, especially Machine Learning and Artificial Intelligence - so I became very 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. I can agree that this analogy is appropriate at least when speaking in terms of productivity gains, and especially for certain kinds of tasks.

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.

With this shift, the human responsibility for the system’s impact increases. The engineer becomes 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 (and ethical) thinking, nuanced problem-solving, and collaboration with humans and GenAI tools.

Structure & Design Philosophy

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

While a working knowledge of Python is not required, some basic code reading comprehension ability will be very helpful in reading this book.

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 purposes. This book is intended as a more example and lab-oriented introduction to literacy of modern Generative AI techniques and concepts in particular.

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