Course Syllabus
Table of Contents
- Lecture Sessions
- Staff Information
- Course Description and Requirements
- Communication and Logistics
- Assessment and Grading
- Class Management
- Academic Integrity
- Miscellaneous Policies
Basic Info
Fall 2022 Semester
https://cs4720-sp24-uva.github.io/
Lecture Sessions
Mondays, Wednesdays, and Fridays @ 2:00 PM-2:50 PM in OLS 018
Staff Information
Instructor: Prof. Will McBurney
Office: Rice 404
Office Hours: TBD
Email: mcburney@virginia.edu
Website: https://www.cs.virginia.edu/~pm8fc/
Teaching Assistants: TBD
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
- Prereq: Old Curriculum - CS 2150 / New Curriculum - CS 3140
- Can attend class regularly.
- 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. McBurney as soon as possible!
Communication and Logistics
Piazza
Piazza @ https://piazza.com/class/lr546t74wl57e/
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)
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.
Assessment | Who | Max XP |
---|---|---|
Hello World App (Android) | Individual | 30 |
Practice App 1 (Android) | Individual | 150 |
Practice App 2 (Flutter) | Individual | 150 |
Final App Project (Student Choice Platform) | Individual or Pair | 250 |
Quiz 1 - Platforms | Individual | 140 |
Quiz 2 - Data and Service | Individual | 140 |
Quiz 3 - User Experience | Individual | 140 |
Total Course XP | 1000 |
Assessment Notes
- There are 3 total quizzes, which will be taken in-person closed note 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 for all students, and must be built in Android and Flutter respectively. 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 minimum set of technical requirements that the student must fulfill. More information can be found on the 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 Flutter 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 limitations, 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 available for students to check out for development. Students are welcome to use their own iOS devices if they like. Due to device limitations, 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.
- Flutter: As Flutter 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.
- Lectures will not be recorded! While slides and some in-class code examples will be uploaded, lecture recordings will not be made available.
- That said, you are adults and can make your own decisions regarding coming or not coming to class. I will not take attendance.
- 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 48 hours in advance to discuss your reason and options for making up the quiz (if possible).
Late Policy
- Apps may be submitted up to 24 hours late, but will incur a 10% penalty.
- Apps will not be accepted after 24 hours for any reason.
- The apps are intended to take more than a week to complete, so last second extension requests will not be granted without sufficient existing work completed.
- Quizzes may not be submitted late or taken 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 publicly-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
- Lisa Lampe, Director of Undergraduate Education
- Blake Calhoun, Director of Undergraduate Success
- Courtney MacMasters, Accessibility Specialist
- Free tutoring is available for most classes
Health and Wellbeing
- Assistant Dean of Students, Student Safety and Support
- Elizabeth Ramirez-Weaver, CAPS counselor
- Katie Fowler, CAPS counselor
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 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.