Course Home | Syllabus | Assignments | Examples | [print]

CS 3020: iOS Application Development

Fall 2020 Syllabus

Course Description

For students pursuing degrees in Computer Science, or other students interested in writing applications for modern mobile devices using the iOS operating system.


CS 2420 (grade C- or higher) and CS 3005 (grade C- or higher)

Course fees

Course fee: $20, used to assist in maintaining computing infrastructure.

Disability Statement

If you suspect or are aware that you have a disability that may affect your success in the course you are strongly encouraged to contact the Disability Resource Center (DRC) located in the North Plaza Building. The disability will be evaluated and eligible students will receive assistance in obtaining reasonable accommodations. Phone # 435-652-7516.

Title IX Statement

DSU seeks to provide an environment that is free of bias, discrimination, and harassment. If you have been the victim of sexual harassment/misconduct/assault we encourage you to report this to the college’s Title IX Director, Cindy Cole, (435) 652-7731, If you report to a faculty member, she or he must notify the Title IX Director about the basic facts of the incident.


One section:

  1. MWF at 9:00 am–9:50 am in Smith 112

    CRN: 40998

    Final exam: Mon, Dec 7 at 9:00 am–10:50 am


Instructor: DJ Holt


Office hours: see here


At the successful conclusion of this course, students will be able to:

  1. Use the iOS SDK and related tools to develop modern applications for phones and tablets.
  2. Design and implement a functional graphical user interface suitable for a mobile application.
  3. Implement the software architectural and design patterns necessary to develop sophisticated mobile applications.



There is one required text for this course:

iOS Programming: The Big Nerd Ranch Guide (7th Edition) by Christian Keur and Aaron Hillegass, ISBN: 978-0135264027

Additionally, there is an optional text:

Swift Programming: The Big Nerd Ranch Guide (2nd Edition) by Matthew Mathias and John Gallagher, ISBN: 978-0134610610


You are encouraged to bring a Mac laptop to class every day with a working and sufficiently charged battery. Your MacBook must run macOS and should be connected to the university WiFi network. A Mac computer will be necessary to complete required coursework.

A limited number of MacBooks are available for students to check out for class in the event that your laptop is unavailable or you are unable to acquire a suitable machine. These laptops are only available during scheduled class time, and are not available to use at any other time.

Outside of class, you may use the iMacs in the Smith open computer lab. There will also be lab assistants in this lab. Keep in mind that not all lab assistants will be qualified to assist with this course.

The computers provided within the Smith lab facilities have all necessary software installed and configured as required for the course. Personal computers will require several software components to be correctly installed and configured. While this may not be covered in class, students may request individual help from the instructor.

Course Website

This course has an accompanying website. You are responsible for staying apprised of updates to the website. Grades will be posted to Canvas, which is available here:

Assignments and Exams


The student is responsible for reading the material in the textbook. The student is expected to read the material before the class in which it is discussed. The book also includes material beyond what we will discuss in lecture, which you are encouraged to study on your own. Feel free to bring questions from the reading to lectures or to office hours.

In addition, students will be expected to find and reference online documentation and examples to assist with the completion of assignments. Additional reading resources can be recommended upon request.


A series of programming projects will be assigned throughout the course. Assignments are due at 11:59pm on the date specified in Canvas. See below for the course late work policy.


A comprehensive final exam will be given at the end of the semester.


The final exam will count for 33% of your point total. Assignments will count for the remaining 67% of your point total.

Letter grades are assigned based on the percentage of possible points attained, according to the following chart:

Minimum Percentage Letter Grade Minimum Percentage Letter Grade Minimum Percentage Letter Grade Minimum Percentage Letter Grade
94 A 84 B 74 C 64 D
90 A- 80 B- 70 C- 60 D-
87 B+ 77 C+ 67 D+ 0 F

Course Policies


Per Governor Herbert’s mandate that masks be worn in all state facilities, all individuals must wear face coverings while in all hallways, public spaces, classrooms, and other common areas of campus buildings. Students will not be permitted to occupy any classroom if not wearing an approved face covering.

This course will be taught in person for all students who are able, in the classroom designated in the syllabus. In the event that pandemic conditions worsen and restrictions increase, class attendance may transition either partially or wholly to remote livestream. The attendance policies and all other course policies described in the syllabus apply likewise to students attending class in person as well as via remote livestream. Attendance will be taken in class every day as required for contact tracing efforts across campus.

Click here to read more about the University’s COVID-19 response plan.


Students are responsible for material covered and announcements made in class. School-related absences may be made up only if prior arrangements are made. The class schedule is approximate and the instructor reserves the right to modify the schedule according to class needs; changes will be announced in class. Exams and quizzes cannot be made up unless arrangements are made prior to the scheduled time of the exam or quiz.

Occasional absences are acceptable as long as the student maintains current progress on assignments; however, students who miss more than two consecutive weeks of class or who miss more than 20% of scheduled classes during the semester without making prior arrangements will receive a failing grade. Students who miss any scheduled exam or fail to complete a final project without making prior arrangements will receive a failing grade.

This course can only be completed by attending classes and completing all assigned work to a satisfactory level. There is no procedure for testing out of the class.

Time Commitment

Courses should require about 45 hours of work per credit hour of class. This class will require about 135 hours of work on the part of the student to achieve a passing grade, which is approximately 9 hours per week. If you do not have the time to spend on this course, you should probably rethink your schedule.

Late Work Policy

Assignments are due on the date specified in Canvas, for full credit. Assignments may be submitted not more than seven (7) calendar days beyond the specified due date, including weekends and holidays, subject to a penalty determined by the degree of lateness compounded by late work submitted earlier in the semester (i.e. each late submission will result in progressively more severe late work penalties thereafter). Assignments will not be accepted after this period of time (except under exceptional circumstances decided by the instructor, if prior arrangements are made with the instructor). No late work will be accepted after the last day of class, with absolutely no exceptions. Exams cannot be made up, unless arrangements are made with the instructor prior to the date of the exam.


Limited collaboration with other students in the course is permitted. Students may seek help learning concepts and developing programming skills from whatever sources they have available, and are encouraged to do so. Collaboration on assignments, however, must be confined to course instructors, lab assistants, and other students in the course. Students are free to discuss strategies for solving programming assignments with each other, but this must not extend to the level of programming code. Each student must code his/her own solution to each assignment. See the section on cheating.


Cheating will not be tolerated, and will result in a failing grade for the students involved as well as possible disciplinary action from the college. Cheating includes, but is not limited to, turning in homework assignments that are not the student’s own work. It is okay to seek help from others and from reference materials, but only if you learn the material. As a general rule, if you cannot delete your assignment, start over, and re-create it successfully without further help, then your homework is not considered your own work.

You are encouraged to work in groups while studying for tests, discussing class lectures, discussing algorithms for homework solutions, and helping each other identify errors in your homework solutions. If you are unsure if collaboration is appropriate, contact the instructor. Also, note exactly what you did. If your actions are determined to be inappropriate, the response will be much more favorable if you are honest and complete in your disclosure.

Where collaboration is permitted, each student must still create and type in his/her own solution. Any kind of copying and pasting is not okay. If you need help understanding concepts, get it from the instructor or fellow classmates, but never copy another’s code or written work, either electronically or visually. The line between collaborating and cheating is generally one of language: talking about solutions in English or other natural languages is usually okay, while discussions that take place in programming languages are usually not okay. It is a good idea to wait at least 30 minutes after any discussion to start your independent write-up. This will help you commit what you have learned to long-term memory as well as help to avoid crossing the line to cheating.

College Policies

Additional college policies, calendars, and statements are available online at

Last Updated 08/22/2020