Link

Welcome to CS-639 Building User Interfaces

What is this class about?

This is a new class developed by Professor Mutlu with the help of CS graduate student Andrew Schoen and CS undergraduate Mathias Strohkirch to introduce CS undergraduates to the wonderful world of User Experience (UX) development.

Wait, what’s that? UX development, sometimes called front-end development, sits 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?

Important information

  • We will be using Teams for communication in this course. The team Join Code is 6k403jx.
  • Be sure to review the official course syllabus for learning objectives, course policies, and so on.
  • Mark your calendar for the midterm (Thursday, October 24, 1-2:15 pm) and the final (Wednesday, December 18, 2:45–4:45 pm).