CS184 - Introduction to Mobile Application Development

Fall 2023


This home page, the CS184 Slack Channel, and maybe a CS184 Gradescope, will be used as centers of communication for the class. Course announcements and grade administration will be through the CS184 Canvas. Make sure you are enrolled!

While the webpage provides you with up-to-date information about assignments and what is currently going on in class, homeworks will be submitted via Canvas or Gradescope. Slack serves as an open forum: questions, answers, suggestions, etc., with focused channels for special topics and project groups.


General Information


Class Hours:    MW, 2:00pm-3:15pm | Section F 3:00pm-3:50pm, 4:00pm-4:50pm, or 5:00pm-5:50pm 
Class Location: South Hall 1431
Instructor:     Tobias Höllerer
Office Hours:   Tue, 4pm-5pm or by appointment
e-mail:         holl@cs...
Discussion/Lab: F 3:00pm-3:50pm (ILP 2209), 4:00pm-4:50pm (ILP 2209) or Friday 5:00pm-5:50pm (ILP 2209) 
TAs:
Huanhua (Evelyn) Xu, Yilin (Michael) Wang, Luke Yoffe e-mail: {huanhua_xu,yilin_wang,lukeyoffe}@ucsb... Office hours: Evelyn: TBA, Yilin: TBA, Luke: TBA

Course Description

This course provides an introduction to developing applications for different mobile ecosystems.

Over the past 20 years, the use of information technology has undergone a clear transition from stationary office and desktop computing to mobile computing. This development was accompanied by the emergence of networked and social computing. The Sales of smartphones and tablet computers have by far outpaced the sales of conventional desktop PCs for years now. The way people today obtain computer literacy has changed: Apps and cloud computing have replaced desktop computing in many cases. Computing has shifted from office or home office work to an anywhere-and-anytime activity.

This course aims to prepare students for this extraordinary shift in commercial and societal focus. The possibilities of mobile device software development are endless. In this introductory course, we get your curiosity started and prepare you for more advanced app development.

Students will apply their gained knowledge in a series of practical assignments using an established ecosystem that highlight selected portions of the software design cycle, as well as familiarize them with sound programming practices and effective tools and techniques to create successful applications. The course will also touch upon novel interaction concepts that go beyond what we normally see in today's mobile apps.


Course Requirements and Grading

This class teaches the theory and practice of effective software design for mobile platforms. You will learn about principles, procedures, and programming approaches. You will create, iterate, and evaluate interaction designs.

With students coming into this class with varying backgrounds, the exact course requirements will emerge over the first week, once the instructor has been able to form an idea about students' resources, backgrounds and expectations.

There will likely be a series of design and implementation assignments that lead up to individual or group class projects. There _may_ be one exam (in week 8 or 9). We will continuously assign reading and tutorial material from online resources, which is supposed to help your design efforts and to stimulate class participation. Here is how your final grade will be determined:  

In case you disagree with any grade, submit your grievance in writing (email or paper) to the grader responsible, explaining and documenting your case.

Lateness Policy

All assignments are due at midnight on the scheduled due date. To make the deadlines more manageable, each student will be allowed three "late days" during the quarter for which lateness will not be penalized. Late days may be applied to all assignments, including design sketches and programming assignments, but not the final project! Your  late days may be used as you see fit -- one or multiple per assignment -- but once you used a late day it's good and gone, you cannot reapply it to another assignment. Anything turned in after 12:00:00am until midnight the next day is one day late. Every day thereafter that an assignment is late, including weekends and holidays, counts as an additional late day.

Absolutely no late work will be accepted after the deadline if you have used up all your late days. If you're not done on time you must turn in what you have to receive partial credit. There will be no exceptions from this rule. Please make sure you understand this policy.

When making use of your late days, the online submission provides the timestamp that counts. 

Academic Misconduct

We will strictly enforce UCSB's academic misconduct policies. We use electronic tools to detect plagiarism among submitted homework solutions and sources from the internet. Read these guidelines before beginning each programming assignment. Any form of  plagiarism, collusion, or cheating will result in an "F" in this course and may result in suspension from UCSB for two quarters. When in doubt about any forms of receiving help on your assignments, ask us!

F2023 update: use of generative AI coding help is explicitly allowed and encouraged, but needs to be acknowledgedd and documented. Details to follow.

Open Door Policy

I would like the course to be informative and enjoyable. Let us know what you find just, good and interesting about the course. Let us know sooner if you feel something could be improved. See us, send an e-mail, or leave us a note.

 

Class Materials

See the handout column in the class schedule!

Book/Materials

Other Sources

 

Class Schedule

(cont>)(cont>)

Wk

Class
/ Dis

Date Assigned
Reading
Topics Handout / Links HW
out
HW due
 1 C1 Mon Oct 02  

Introduction, Motivation,
Class Requirements, Policies

Mobile Development Ecosystems:

Android
IOS
Cross-Platform

Previous Class Projects


IOS App Dev

Android Development

Cross-Platform Development:
overview link 1
overview link 2
overview link 3

Student Survey
C2 Wed Oct 04  

 

Class Project Group Formation


see Slack  
D1 Fri Oct 06  

Getting started with group work:

Agile Development

Technical tutorials on your platform tech

Hello World Deployments


Scrum - A Breathtakingly Brief and Agile Introduction (free for class use only)

 
"Scrum/XP From the Trenches" by H. Kniberg (free with registration).
   
2 C3 Mon Oct 09  

HW 1: Hello World

Platforms:
First Steps


slides: platforms & first steps HW1  
C4 Wed Oct 11 TRANSITIONING TO CANVAS CALENDAR !!!    
  Thu Oct 12         HW1
D2 Fri Oct 13          
3 C5 Mon Oct 16          
C6 Wed Oct 18          
D3 Fri Oct 20          
  Sun Oct 22          
4 C7 Mon Oct 23          
C8 Wed Oct 25         
D4 Fri Oct 27          
  Sun Oct 29          
5 C9 Mon Oct 30          
C10 Wed Nov 01          
D5 Fri Nov 03          
6 C11 Mon Nov 06          
C12 Wed Nov 08          
D6 Fri Nov 10          
  Sun Nov 12          
7 C13 Mon Nov 13          
C14 Wed Nov 15          
D7 Fri Nov 17          
8
C15 Mon Nov 20          
C16 Wed Nov 22   No Class      
D8 Fri Nov 24   Thanksgiving      
9 C17 Mon Nov 27          
C18 Wed Nov 29          
D9 Fri Dec 01        
10 C19 Mon Dec 04          
C20 Wed Dec 06          
D10 Fri Dec 08          

 

 

11

Final
Slot
Mon Dec 11 4-7pm Project Presentations      
  Tue Dec
12

 

Project Materials Due      

 

Assignments


For questions, please contact the instructor and/or TAs