Icon

CS 4720 - Fall 2022

Mobile Application Development

Info about CS 4720 - Fall 2022

Hi everyone! I’m posting some preliminary info about CS 4720: Mobile App Development for the fall semester in case there are questions. I am currently on sabbatical this semester, so I’m a bit slower on email responses. And there’s a really good chance I’ll just direct you here if you email anyway :-). I’m going to do my best to keep this page fully updated with everything I know going forward.

Thanks for your interest in my class! Maybe I’ll see you this fall!

/Sherriff

Course Info

Instructor: Prof. Mark Sherriff
Lectures: MWF 2:00-2:50 PM in OLS 018 (as of 3/17/22 at least…)
Textbook: None. I’ll provide all the materials.
Prereqs: Old Curriculum - CS 2150 / New Curriculum - CS 3140
SIS Description: Mobile computing devices have become ubiquitous in our communities. In this course, we focus on the creation of mobile solutions for various modern platforms, including major mobile operating systems. Topics include mobile device architecture, programming languages, software engineering, user interface design, and app distribution.

Major Topics

  • Client Hardware (Desktop vs. Mobile)
  • Android Development w/ Kotlin
  • iOS Development w/ Swift
  • Cross Platform Tools and Development (minor focus - see FAQ)
  • Incorporating Web/Cloud Services
  • Mobile Sensors
  • Security and Trust Management
  • Privacy and Ethics
  • User Interface Design
  • Accessibility for Mobile
  • App Distribution Systems

FAQ

Q: How do I get off the waitlist?

A: If there is a waitlist for this class (I’m writing this before registration has even opened), here’s what I can tell you right now (in March/April… several months away from when class starts): I will make no waitlist or course add changes until August AT THE EARLIEST. There are just too many things that can happen between March and August to worry about it now. So, all I can say is sit tight if you want to have a shot at a seat.

Q: What if I don’t meet the prereqs?

A: Sorry, but you’ll have to take the class another semester. There are too many folks with the prereq to let someone in ahead of them. And our data shows that prereq performance really does matter for future success in courses.

Q: Wasn’t McBurney going to teach this?

A: We traded - one section of 3240 for one section of Mobile. :shrug:

Q: Have you ever taught this before?

A: Yes! In fact, I was the first person to teach it in our department back in fall of 2009 (wow, I’m old…) when it was originally “Web and Mobile Systems.” We have since made that into two courses - this one and Web Programming Languages. I taught this course 13 times until Prof. Graham took it over in 2019.

Q: Are you going to do the same things as Prof. Graham?

A: The thing about mobile is that there is a TON of stuff that we could do in this course, and, in fact, at some schools there are two courses in mobile. Prof. Graham taught primarily cross-platform development with JS, HTML, React, etc. Which is awesome! I need him to teach me that stuff because I need to learn it too! And while I’m going to touch base with him and see what I can incorporate, it’s going to be more what I was doing before.

Q: Okay… well, what were you doing before?

A: I’m a “first party, best party” kind of mobile teacher, so we are going to do both Android using Kotlin and iOS using Swift. Android can be done on either Windows or Mac OS (or Linux for that matter). However, if you do not own a Mac OS device, you will either need to work with someone who does and/or use a cloud-based service for renting a Mac. If you have to go this route, it will most likely cost no more than $30 total for the time that you need it all semester (and probably less than that).

Q: Is there going to be a project like CS 3240?

A: Yes - the end result of this class is building a mobile app and you will choose whether you are going to build for Android or iOS. Is it exactly like what we did in 3240? No, but there are similarities (I’m still a software engineering guy, of course). Such as using GitHub, doing some documentation (not as much, don’t worry), some form of “sprint check,” etc.

Q: What will the project be?

A: I don’t know yet. In the past, I let everyone do basically anything they wanted (within reason) as long as certain tech specs were met (e.g. must use GPS, must use a cloud DB, etc.). It’s highly likely this will be the path I take again.

Q: Will we be in teams?

A: The project will be either solo or partnered. Nothing bigger than that.

Q: Will there be other team assignments?

A: There will be other assignments, such as a “take this basic Android app that I started and now make it pull data from a cloud database” sort of thing. I anticipate most of these will be solo, with the exception of one (or two) iOS assigments to help ofset any costs of renting a Mac OS machine.

Q: Do we have to have our own Android/iOS device?

A: No. If you want to use a device of a platform you do not have, we have some that I can loan to you. They are old… but that’s part of the challenge of building for mobile devices! There are SO MANY types of devices out there!

Q: Do we have to come to class? Will you record everything?

Justin Timberlake Disapproving Stare Meme