Skip to the content.
This is the CSE340-W20 final website.


We have had to update the planned assessment structure for the class due to COVID-19. We’ve made changes to the Undo assignment and the weighting of class participation up until this point. In both cases, things that were changed are marked as crossed out if they have been replaced.

Welcome to Interaction Programming!

Interactive technology is changing society. Some of today’s interfaces are used by a billion people at a time. Almost everything we create is created for people to use, through user interfaces. We will learn about interactive systems, including programming paradigms and design of event handling, layout, undo, accessibility and context awareness.

For quick links to key things, check out the navbar above and the table of contents here:

Class Instructors, time and date

CSE 340 will be held on M/W/F at 12:30pm Labs will be Thursday morning

CSE 340 is taught by Jennifer Mankoff. Adam Towers is Head TA.

Instructor Pronouns Role Office Hour Time/Location
Jennifer Mankoff She/her Instructor 1:30-2 Wed (Gates 211); 8:30-9:30pm Sun (online)
Lauren Bricker She/her Friday Instructor 1:30-3:30 Tues (Allen 552)
Adam Towers He/him Head TA Thur. 11:30am-12:30pm @ Gates 152
Sophie Tian She/her TA Tues. 9:30-11:30am @ Gates 152
David Chen He/him TA Mon 1:30-3:30pm @ Gates 150
Zach Cheung He/him TA Tues. 12:30-1:30pm & Fri. 2:30-3:30pm/Gates 153
My Tran She/her TA Mon. & Wed. 11:30am-12:30pm, Gates 152

Should I take this class?

Yes! Some of today’s interfaces are being used by a billion people at a time. Almost everything we create is created for people to use, and user interfaces are how people interact with anything else you do (whether it is a new machine learning algorithm or a database system). User interfaces are incredibly important, but they also represent a different programming paradigm than you may have learned before. This class will teach you

Taking a class is a big commitment, and you will work hard in this class. So we want to help you make sure this is the right class for you. Below is some information about prerequisites and expectations.

Prereqs and expectations

The only requirement for this class is that you have taken CS 142 and 143 or an equivalent class, meaning you are comfortable programming in Java, and have some experience with data structures. However, if you are not comfortable working in an IDE environment, using version control, and picking up and working with someone else’s library code, you will likely need to plan for extra time with TAs, and possibly attend extra tutoring sessions, to keep up with the class. A good plan is to take 391 just before or concurrently with 340 to learn some of these things.

The specific platform and language for this class are Java on Android phones (or simulators); using the IntelliJ IDE (Android Studio). While Google is switching over to Kotlin, there are good reasons to start learning Android with Java first.

Note that this class is designed for CS majors, and other students who work regularly with information technology and are strong programmers. While we will consider applications from outside the major, financial and room restrictions may limit space for such students.

Other relevant classes to know about

There are a number of classes on campus that teach related concepts which you may wish to consider in addition to this one. As of summer, 2018, here are the ones we are aware of:

Course Structure

Many of the goals in this class center around learning by doing. This means that hands on time trying out everything from implementation to evaluation is critical to learning. An educational approach that can support this is active learning. To support this, class time will be used as much as possible for activities, discussion, review, and homework. Preparation outside of class and participation in class are both very important and will improve your class experience. Stay on top of course materials, bring your questions to class and seek help if there are problems.


This is a challenging, four credit class, meaning you should expect 8 hours of homework a week. We hope make the workload as predictable as possible. Assignments will have a fixed and an open ended piece, followed by peer review in many cases. After you turn an assignment in, you will also work on a short quize on the most relevant material taught in the assignment.

Homework will typically involve either a single (one-week) part or be split into two parts, with each about a week long

Class Coordination

We want you to succeed in this class, and an important way that you do that is by asking questions and discussing course issues with your peers and teaching staff. Some ways to do that include:

Class Expectations

The class is a shared learning environment, and it is important that you treat everyone in the class with respect. Some specific things we will do to try to make the class a welcoming environment:


Grades will be assigned approximately as follows:

To estimate your final GPA, multiply your current overall grade (from 0 to 100) by 4 and divide by 100.

Late Days

You have 3 free late days which will automatically be applied until they run out, following which each late day will incur a 10% penalty.

Each homework will allow up to two late days, after which turn-ins will be given a zero.

Regrade Policy

Reflecting on feedback is one of the most valuable ways you can learn from your mistakes, and we encourage you to do so. If you have a question about a grade you received or if you feel the grade you received is incorrect, please email an instructor for an appointment to discuss the assignment and your grade in detail.

It is also possible for the graders to make mistakes. If that happens we certainly would like to correct the error. Please note the following:

When you request a regrade, we may look at the entire assessment, homework or reflection. Therefore, it is possible for your grade to go either up or down through this process.


There will be two exams in this class.

Alternate exams will only be given in unusual extenuating circumstances. You must contact the instructor prior to the exam date if you believe you need to take the exam at another time, but no later than least two days prior to the exam.

You will be given an instructor provided “cheat sheet” for the exams. More information about the exams, their structure, and what resources you will be allowed to use will be discussed in class and listed on the course website as we approach the exam times.