Link Search Menu Expand Document

Welcome to CS-639 Building User Interfaces

What is this class about?

This is a relatively new class developed by Professor Mutlu, first offered in Fall 2019 and in Fall 2020 for the second time, to introduce CS undergraduates to the wonderful world of User Experience (UX) development.

But what is UX development? Sometimes called front-end development, UX development its between traditional software development and UX design. Let’s hear about it from an actual UX developer::

The realm of the UX developer exists somewhere between that of the traditional developer and the designer. We’re not really designers, yet to be a good UX developer you certainly need to have an eye for design. In the same vein, we’re not traditional developers but we certainly need to have development experience and expertise. Often this experience spans multiple technologies, languages, and platforms.

It falls on the UX developer to bridge the gap between design and technology. We need to be able to think and speak the language of designers. It’s our job to help translate their vision to the development team in a way that they can understand and accept. This can be a critical piece of the puzzle in a project, especially if the design and the interactions behind it are complex.

Similarly, we need to speak on behalf the developers to help reign in the designers, at times. If they are coming up with concepts that will be extremely difficult or time consuming to implement, we can explain the limitations of the technology and the complexity involved in implementing their designs, and try to come up with an acceptable alternative.

— Tim R. Todish

With UX development skills, you can become better software developers with an eye for design and the ability to speak the language that UX designers speak. Alternatively, you can become a UX designer by strengthening your design skills, for example, by taking CS-570.

What will I learn in this class?

As an introduction to UX development, the course will cover the (1) programming skills you will need to prototype and build user-facing applications and (2) design skills you will need to understand user needs, devise solutions, and test how well they work. The design skills, under the category design, are introduced on Tuesdays, and the programming skills, under the category build, are introduced on Thursdays. Across three modules, you will focus on web, mobile, and voice interfaces. For each module, we will use the programming framework that is most commonly used in the software development industry. Below is a visual breakdown of the topics.

Who should be taking this class?

Anyone pursuing a CS major or certificate who has taken CS-400 or an equivalent class.

What do I need to know/have?

Intermediate knowledge of Java, basic knowledge of HTML and CSS, and tools that are outlined in the technology requirements page.

Ok, great. What’s next?

The majority of the course content can be found on this website, and links below provide additional resources for lectures, assignments, and course communication.

Course Access

The course can be taken in three formats: (1) in class, (2) online, synchronously (through streamed lectures and live Q&A), and (3) online, asynchronously (through recorded lectures).

Course time & location MW 4:00-5:15 pm, Humanities 3650 Live stream

Course Communication

Students can use the following systems to review and submit assignments, ask questions, and communicate with the instructional team.