ECS 189e: iOS and Android fundamentals (Fall ‘19)
Sam King
A little bit about me
Graduated from UCLA, Stanford, Michigan
Been a professor since ‘06, like teaching
Usually teach Systems, Security, Ethics
Usually don’t like lecturing, but...
Professor at UIUC from ‘06 - ‘14
Started a company in ‘12, moved to California in ‘13
Started a company in ‘12, moved to California in ‘13
Davis High, class of ‘93
Company acquired by Twitter in ‘14, left UIUC
Head of Fraud and Identity @ Lyft ‘16 - ‘17
Back in academia in ‘18 (Go Aggies!)
CS @ UCDavis!
Research interests, define the notion of a digital identity for the 21st century:
Started a company based on my research
An SDK to let your users scan credit cards in your app while cleanly stopping stolen cards.
Unique industry experience for an academic
Mobile experience
Mobile browser vendor at Adrenaline Mobility
Android at Twitter -- owned the password reset flow
iOS at Lyft -- first set of login challenges for improved security
iOS and Android -- Built v1 SDK for card scanning at Bouncer
Picked them up because I was interested in solving problems
Mobile phones are everywhere, and they’re all iOS and Android
Ushered in a new era of apps where the physical world meets software
Problem: writing apps is a lot harder than traditional software
ECS 189e Goals
Write moderately complex iOS apps, get exposed to Android
Understand how things work behind the scenes
(Small) taste of what it’s like to deploy a real app
Types of mobile engineers I have worked with in industry
Work with and develop new APIs
Mobile platform architect
UI experience guru
This class: API and mobile platform architect
Work with and develop new APIs
Mobile platform architect
UI experience guru
Approach to the class
Lectures on Tuesday and Thursday
Quizzes in class on Thursdays
Some discussions will be required, others will be optional, and we may cancel them
Fair warning: this class is going to be programming intensive and difficult
“Those who stay will be champions.”
Topics for this quarter
Most of the time will be on iOS, will cover Android at the end
Roughly equal parts:
Graded content: quizzes, homework, project
Weekly quizzes
Weekly(ish) homework for first several weeks
Project for the rest of the quarter
No midterm or final!!!
Weekly quizzes
Every Thursday you will get a quiz, based on content from the previous two lectures
Lots of conceptual questions, some pseudocode programming
One “free” quiz, which means that I’ll convert your lowest grade to full credit
Homework: build a payments app
Each week will build on top of the past one
Login, create wallet, send cash, etc
Will cover UI design, using third party libraries, etc
Final project you will build an app (and hopefully submit it to the app store)
Group project, you pick whatever app you’re interested in
Experience with the full lifecycle from ideation to testing
I will come up with unique challenges for each group to work on
Want to get an A+? Ship an app!
We’ll go over the details when we introduce the project
We’ll use modern tools
Firebase, Trello, Github, Cocoapods, CardScan and more
Trying to connect 189E alumni with project groups for mentoring
Grade breakdown
Grade scale
General information
Meet Gary!
Do you need ECS 150 (undergrad OS)?
Yes. But I’m not going to enforce it
OS concepts will make up ⅓ of the class
You will struggle with 3 of the quizzes that will be heavily dependent on OS concepts
No space to add students from the waitlist
Limited by the size of the room
Be patient, I suspect many will drop due to the massive workload
10 day drop period for the class though
More information