Skip to main content Link Search Menu Expand Document (external link)

Course Syllabus

Table of Contents

  1. Lecture Sessions
  2. Staff Information
  3. Course Description and Requirements
  4. Communication and Logistics
  5. Assessment and Grading
    1. New Grading - Post-Thanksgiving
    2. Deprecated Grading - Kept for Reference
  6. Class Management
  7. Academic Integrity
  8. Miscellaneous Policies

Basic Info

Fall 2022 Semester
https://f22.cs4720.org

Lecture Sessions

Mondays, Wednesdays, and Fridays @ 2:00 PM-2:50 PM in OLS 018

Staff Information

Instructor: Prof. Mark Sherriff
Office: Rice 400
Office Hours: Tuesdays, 11:00 AM-12:30 PM and Wednesdays, 9:00 AM-10:30 AM
Email: sherriff@virginia.edu
Website: http://marksherriff.com

Teaching Assistants: Farzana Ahmad and Oishee Hoque
Office Hours (Rice 442): Farzana - Tuesdays 2:00 PM-3:30 PM and Wednesdays 3:00 PM-4:30 PM // Oishee - Mondays and Thursdays 12:00 PM-1:30 PM

Course Description and Requirements

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. -SIS Course Description

Our course is an introductory course in mobile application development. We will focus on both the unique nature of building apps for mobile devices, including challenges with usability, privacy, and third-party integration.

Upon successful completion of this course, students will:

  • Understand the differences in building applications for mobile devices as opposed to desktop or the web;
  • Understand the basic technology and platforms for mobile development;
  • Understand the software engineering concepts necessary to develop mobile apps (and other large systems) in a group;
  • Understand the privacy, ethical, usability, and accessibility issues specific to mobile;
  • Have a familiarity with at least one mobile platform and programming language.

Major Topics

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

Course Requirements

  1. Prereq: Old Curriculum - CS 2150 / New Curriculum - CS 3140
  2. Can attend class regularly.
  3. You will be expected to learn programming languages and platforms on your own in this class! If you don’t feel comfortable with this, please talk to Prof. Sherriff as soon as possible!

Communication and Logistics

Piazza

Piazza @ https://piazza.com/class/l6fccdmluj73ia

We will be using Piazza for the following:

  • Long-form questions about the class, code, or project (please post all code privately!)
  • Private messages for faculty or the entire staff
  • A searchable repository of common questions in the course about the project, assignments, etc.

We will not be using Piazza for:

  • Regrades (use Gradescope first, then office hours only if not resolved)

Email

We will be using email for the following:

  • Personal issues that can and should only be handled by a professor
  • Team issues that need to be escalated beyond the TA

We will not be using email for:

  • Regrades (use Gradescope first, then office hours only if not resolved)
  • Tech help (use Piazza)
  • Project questions (use Piazza)
  • Guided Practice questions (use Piazza)

PLEASE make sure to put “CS 4720” in the subject line somewhere so I can keep track of your request! And please be patient with me in responding. I receive A LOT of email and it’s easy to get behind. If there is a time-critical nature to your note, please let me know that as well.

Assessment and Grading

We will utilize a positive-reinforcement grading policy in this course. Your grade in this course will be based on experience points (XP). Every student begins the course with 0 XP. As you complete assessments and quizzes, you will earn XP. Some assessments will have a way to retake or resubmit to earn some of the XP that was not earned on the first attempt. Please see individual assessments for more information regarding how this mechanic works.

New Grading - Post-Thanksgiving

Assessment Who Max XP
Practice App 1 (Android, iOS, or React Native) Individual 150
Practice App 2 (Android, iOS, or React Native) Individual 150
Final App Project (Student Choice Platform) Individual or Pair 300
Quiz 1 - Platforms Individual 200
Quiz 2 - UX & Services Individual 200
Total Course XP   1000

Deprecated Grading - Kept for Reference

Assessment Who Max XP
Practice App 1 (Android, iOS, or React Native) Individual 150
Practice App 2 (Android, iOS, or React Native) Individual 150
Final App Project (Student Choice Platform) Individual or Pair 250
Quiz 1 - Platforms Individual 150
Quiz 2 - Data and Service Individual 150
Quiz 3 - User Experience Individual 150
Total Course XP   1000
Letter Grade XP Required
A+ 1000
A 950
A- 900
B+ 875
B 850
B- 825
C+ 775
C 750
C- 700
D+ 675
D 650
D- 625

Assessment Notes

  • There are 3 total quizzes, which will be taken in-person during lecture. Students can earn back up to 150 XP from missed quiz questions on the final exam.
  • There are 3 total mobile apps that students will build during the semester. The first two will be the same app (a UVA Bucket List), but built using two different platforms (Android + Kotlin, iOS + Swift, React Native + Javascript). The final app project will be a larger project of the student’s choice on the platform of their choice. However, there will be a set of technical requirements that the student must fulfill. More information can be found on the Mobile Apps and Project page.

Class Management

Devices and Platforms

You are not required to own a mobile device of any particular kind for this course. The bulk of development will take place in the emulators provided by the platforms. If you wish to check out a device, we have some options available.

  • Windows: If you only have access to a Windows machine, you should probably focus on Android and React Native development. If you wish to develop an iOS app, you can also use cloud services such as http://www.macincloud.com/ at your own cost.
  • Mac: If you have access to a MacOS machine, you can develop for any of the three platforms.
  • Android: Samsung tablet devices are available for students to check out for development. Students are welcome to use their own Android devices if they like. Due to device limiations, we strongly suggest students avoid creating apps that lean heavily on phone-only features, such as calling or SMS. Android code should be developed in Android Studio in Windows or macOS.
  • iOS: iPod Touch devices are availalbe for students to check out for development. Students are welcome to use their own iOS devices if they like. Due to device limiations, we strongly suggest students avoid creating apps that lean heavily on phone-only features, such as calling or SMS. iOS code should be developed using Swift in Xcode.
  • React Native: As React Native is intended to be platform independent, you can use any device for these apps. However, we would recommend Android devices due to ease of deployment.

Attendance

  • Attendance in lecture is vital to learning the material and making a good grade in this class.
  • Attendance in class will not be explicitly graded.
  • It is not necessary to inform me of missing a class unless you are missing one of the noted quiz days.
  • If you are going to miss a quiz, you must inform me more than 24 hours in advance to discuss your reason and options for making up the quiz (if possible). In case of illness or emergency, please inform me when you are able to do so within reason.

Late Policy

  • Apps may be submitted up to 24 hours late, but will incur a 10% penalty.
  • Quizzes may not be submitted late.

This Syllabus

This syllabus is to be considered a reference document that can and will be adjusted through the course of the semester to address changing needs. This syllabus can be changed at any time without notification. It is up to the student to monitor this page for any changes. Final authority on any decision in this course rests with the professor, not with this document.

Professionalism

In this course, there will be a focus on working well together and learning about the development process. A large portion of that process involves interpersonal skills and conflict management. Students and staff are all expected to treat each other with respect. This includes, but certainly is not limited to:

  • Proper use of class platforms (Discord, Piazza, YouTube comments, etc.)
  • Respectful behavior in class (including extraneous internet browsing, social media, phone usage, etc.)
  • Respectful language or actions to course staff or other students
  • Promptness for all deadlines and class meetings
  • Quality work
  • Working well with your partners
  • Following the honor code and other collaboration policies
  • Following any University health and safety regulations

Students can and will be penalized for unprofessional behavior.

Academic Integrity

Summary:

  • Know the honor code
  • Work with your team, but not any other team
  • Using code from other students (from any semester) is an honor violation
  • Using publically-available example code and libraries is fine, but you must cite your resources
  • More information on what is allowed will be included with each assignment if necessary
  • It never hurts to ask the staff what is allowed or not allowed!

The School of Engineering and Applied Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University’s Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles of honor will benefit every member of the community both while enrolled in the Engineering School and in the future.

Students are expected to be familiar with the university honor code, including the section on academic fraud http://honor.virginia.edu/academic-fraud. Assessments will describe allowed collaborations, and deviations from these will be considered Honor violations. If you have questions on what is allowable, ask! Unless otherwise noted, all assessments will be considered pledged that you have neither given nor received help. (Among other things, this means that you are not allowed to describe problems on an exam, assignment, or project to a student who has not taken it yet. You are not allowed to show exam papers to another student or view another student’s exam papers while working on an exam.) Sending, receiving, or otherwise copying or describing the contents of electronic files that are part of course assignments are not allowed collaborations (except for those explicitly allowed in assignment instructions).

Assignments or exams where honor infractions or prohibited collaborations occur will receive a zero grade for that entire assignment or exam. Such infractions will also be submitted to the Honor Committee if that is appropriate. Students who have had prohibited collaborations may not be allowed to work with partners on remaining homeworks.

Using code developed by previous students in the course or code written for your use by someone outside the course is not allowed and will likely be an honor violation. This does not apply to the use of publicly available frameworks and libraries, unless indicated in the assessment instructions.

In general, we expect that you will be using code, examples, and ideas from many different websites and resources for your projects. This is allowed within reason. Wholesale copying of an entire project or any major feature from any source (the web, another student, etc.) is definitely not allowed. Using code snippts that you find to round out a feature is allowed. If you ever have a question about what is or is not appropriate, ask first!

In ALL cases, you need to cite all sources at the top of the file where the code or algorithm was used AND you should note all sources in your documentation. Failure to properly attribute your sources will result in a 50% penalty for the project at a minimum.

How to Cite Code

Use the following format (or something functionally similar) as an example citing code you use. You may not have all of these fields available, but this should give you a good idea of things to look for. Order by title of the software package. Use the appropriate commenting format for the programming language of your source code. Below is a general example of a citation format. Does yours have to look exactly like this? No, nor does it have to have all the fields. It does have to have enough to give the proper credit and so we can find the resource if needed.

/***************************************************************************************
*  REFERENCES
*  Title: <title of program/source code>
*  Author: <author(s) names>
*  Date: <date>
*  Code version: <code version>
*  URL: <where it's located>
*  Software License: <license software is released under>
*
*  Title: ....
*
***************************************************************************************/

Miscellaneous Policies

Inclement Weather Policy

If there is the possibility of inclement weather that could affect class, it is your responsibility to stay informed. Information about how to sign up for email and/or text alerts from UVA Emergency Management, along with the current University status, can be found at https://uvaemergency.virginia.edu/.

SDAC and Other Special Circumstances

It is my goal to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please make an appointment to with your instructor outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center (SDAC) to discuss a range of options to removing barriers in this course, including official accommodations. We are fortunate to have an SDAC advisor, Courtney MacMasters, physically located in Engineering. You may email her at cmacmasters@virginia.edu to schedule an appointment. For general questions please visit the SDAC website: sdac.studenthealth.virginia.edu.

If you have already been approved for accommodations through SDAC, please send your instructor your accommodation letter as soon as possible. We happily and discretely provide the recommended accommodations for those students identified by the SDAC. For quizzes and other individual assessments, please remind us one week before an exam so we can make accommodations. For team related assessments, we cannot grant significant accommodations for an entire team due to just one person. However, we are more than happy to discuss with you the best way to integrate with your team with your accommodations in consideration. Please make an appointment with your instructor outside of office hours to have this discussion.

If you have other special circumstances (athletics, other university-related activities, etc.), please contact the instructor as soon as you know these may affect you in class.

Religious Accommodations

It is the University’s long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.

Students who wish to request academic accommodation for a religious observance should submit their request to their instructor by email as far in advance as possible. Students who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200.

Accommodations do not relieve you of the responsibility for completion of any part of the coursework - including the team project - missed as the result of a religious observance.

Support for Career Development

Engaging in your career development is an important part of your student experience. For example, presenting at a research conference, attending an interview for a job or internship, or participating in an extern/shadowing experience are not only necessary steps on your path but are also invaluable lessons in and of themselves. We wish to encourage and support you in activities related to your career development. To that end, please notify your instructor by email as far in advance as possible to arrange for appropriate accommodations.

Student Support Team

You have many resources available to you when you experience academic or personal stresses. In addition to your professor, the School of Engineering and Applied Science has staff members located in Thornton Hall who you can contact to help manage academic or personal challenges. Please do not wait until the end of the semester to ask for help!

NOTE: These resources are available for BACS majors as well! You are still a part of our department!

Learning

Health and Wellbeing

You may schedule time with the CAPS counselors through Student Health. When scheduling, be sure to specify that you are an Engineering student or College student. You are also urged to use TimelyCare for either scheduled or on-demand 24/7 mental health care.

Community and Identity

The Center for Diversity in Engineering (CDE) is a student space dedicated to advocating for underrepresented groups in STEM. It exists to connect students with the academic, financial, health, and community resources they need to thrive both at UVA and in the world. The CDE includes an open study area, event space, and staff members on site. Through this space, we affirm and empower equitable participation toward intercultural fluency and provide the resources necessary for students to be successful during their academic journey and future careers.

Statement on Violence

The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available.

The same resources and options for individuals who experience sexual misconduct are available for discrimination, harassment, and retaliation. UVA prohibits discrimination and harassment based on age, color, disability, family medical or genetic information, gender identity or expression, marital status, military status, national or ethnic origin, political affiliation, pregnancy (including childbirth and related conditions), race, religion, sex, sexual orientation, veteran status. UVA policy also prohibits retaliation for reporting such behavior.

If you witness or are aware of someone who has experienced prohibited conduct, you are encouraged to submit a report to Just Report It (justreportit.virginia.edu) or contact EOCR, the office of Equal Opportunity and Civil Rights.

If you would prefer to disclose such conduct to a confidential resource where what you share is not reported to the University, you can turn to Counseling & Psychological Services (“CAPS”) and Women’s Center Counseling Staff and Confidential Advocates (for students of all genders).

As your professor and as a person, know that I care about you and your well-being and stand ready to provide support and resources as I can. As a faculty member, I am a responsible employee, which means that I am required by University policy and by federal law to report certain kinds of conduct that you report to me to the University’s Title IX Coordinator. The Title IX Coordinator’s job is to ensure that the reporting student receives the resources and support that they need, while also determining whether further action is necessary to ensure survivor safety and the safety of the University community.