One frustration I have encountered in my mobile development course is the gap between what is introduced during lectures and what is required during practical work.

In one lecture, we were introduced to some basic Kotlin and Jetpack Compose concepts, including composable functions and layouts such as Row, Column, and Box. We also briefly encountered components such as buttons and modifiers such as padding.

However, the in-class project required a much broader understanding of Compose than these examples provided. Completing it involved unfamiliar libraries, framework conventions, layout behaviour, and modifier usage that had not been explained in much depth. Padding, for example, had technically been introduced, but only through a short example without much discussion of how modifiers are chained, ordered, or used throughout a real interface.

Independent research is obviously part of software development. Programmers are expected to consult documentation, search for examples, and learn unfamiliar APIs. I do not expect every library or function to be taught directly.

However, there is a difference between independently applying taught foundations and being assessed on framework knowledge that has not yet been sufficiently scaffolded. For a beginner, links to the official Kotlin and Jetpack Compose documentation are useful, but they do not necessarily provide a clear learning sequence. Documentation explains what APIs do, but it does not always tell a beginner which concepts are fundamental, what should be learned first, or how the different parts of the framework fit together.

Generative AI makes it easier to bridge this gap. Tools can quickly produce working Compose code that satisfies an interface requirement. The problem is that working code is not necessarily understood code. A student may be able to generate a layout using modifiers, state, and external libraries without understanding recomposition, state ownership, modifier ordering, or why a particular solution is appropriate.

This creates an uncomfortable situation: the practical requirements encourage students to use concepts beyond the taught material, while GenAI makes it possible to complete those requirements without developing a systematic understanding of the framework.

What I expected from a university course was not that every solution would be handed to us, but that the course would provide a clearer conceptual foundation and learning pathway. Independent exploration should extend that foundation rather than replace it.