A crucial step in designing a user interface for a software application is to design a coherent, task-focused conceptual model (CM). With a CM, designers design better, developers develop better, and users learn and use better. Unfortunately, this step is often skipped, resulting in incoherent, arbitrary, inconsistent, overly-complex applications that impede design, development, learning, understanding, and use. This course covers what CMs are, how they help, how to develop them, and provides hands-on experience.