Native App Studio
Syllabus, Fall 2017
Today’s applications are increasingly mobile. Computers are no longer confined to desks and laps but instead live in our pockets and hands. This course teaches students how to build mobile apps for Android and iOS, two of today’s most popular platforms, and optionally, how to deploy them on Google Play and the App Store. Students practice using the platforms through a series of programming assignments, and working towards a final project to show off everything that has been learned. Students learn to write native apps for Android using Studio and the Android SDK or to write native apps for iPhones, iPod Touches, and iPads using Xcode and the iOS SDK.
Table of contents
- Getting started
- Asking questions
- What to do
- Office hours
0. Getting started
- Check if your personal timetable shows App Studio
- Read the remainder of this syllabus
- Practice object-oriented concepts in Java or Swift
- Create your first app!
- If in doubt, contact the course’s heads at email@example.com or speak to an assistant
You are expected to complete the provided exercises, attend most office hours, submit five fully working practice apps, as well as a final project.
Programming 1 and 2, or equivalent, as decided by the course’s instructor. You need to be comfortable with memory management, runtime analysis, design patterns, databases, and basic data structures and algorithms. You also need to have a laptop capable of running either Xcode or Android Studio.
3. Asking Questions
The course’s staff consists of your instructor and many teaching assistants. You are encouraged to speak to any of the staff in the lab to get help with your problem sets or to ask questions about lectures. Send a help request by using the “Ask” menu, above. Due to the size of the course, we can’t usually respond to email inquiries about your assignments. You are encouraged to speak to a student assistant or the instructor in the lab. Below you will find a list of the courses’s instructors:
- Martijn Stegeman, instructor firstname.lastname@example.org
- Renske Talsma, teaching assistant (Android)
- Julia Anten, teaching assistant (Android)
- Marijn Jansen, teaching assistant (iOS)
- Emma Hokken, teaching assistant (iOS)
4. What to do
Every week, exercises and a programming project will be made available. In the final two weeks, you will create an app of your own design instead. Find all assignments in the “Current” menu atop this website.
Final grades are determined using the following weights:
You must complete all guided projects and a final project to be eligible for a satisfactory grade, unless granted an exception in writing by the course’s heads.
No retakes are possible for any part of the course. You may re-take the course as a whole in a next semester.
Exercises help you learn the ropes of programming iOS or Android. Earlier in the course, the exercises focus on learning a new programming language and reinforcing your knowledge of object-oriented design. Later, emphasis shifts to complex parts of the programming platform, allowing you to make more interesting applications.
You can earn points for completing exercises early in the week. To earn points, complete the exercises and push your answers to a GitHub repository. You are encouraged to review the week’s exercises before office hours on Monday, so as to make optimal use of your time during the lab session.
|1||Thu 7 Sep|
|2||Thu 14 Sep|
|3||Thu 21 Sep|
|4||Thu 28 Sep|
|5||Thu 5 Oct|
|1||Mon 30 Oct|
|2||Mon 6 Nov|
|3||Mon 13 Nov|
|4||Mon 20 Nov|
|5||Mon 27 Nov|
4.2 Guided projects
Each week, you will create an app using the concepts introduced in exercises and tutorials. Points can be earned by completing the guided projects and demonstrating the fully functional application during office hours. In order to be eligible for points, you must have uploaded your project on GitHub and have committed and pushed any final changes before you show it to the staff.
|no||2 point deadline||1 point deadline|
|1||Thu 7 Sep||Mon 11 Sep|
|2||Thu 14 Sep||Mon 18 Sep|
|3||Thu 21 Sep||Mon 25 Sep|
|4||Thu 28 Sep||Mon 2 Oct|
|5||Thu 5 Oct||Mon 9 Oct|
|no||2 point deadline||1 point deadline|
|1||Fri 3 Nov||Mon 6 Nov|
|2||Fri 10 Nov||Mon 13 Nov|
|3||Fri 17 Nov||Mon 20 Nov|
|4||Fri 24 Nov||Mon 27 Nov|
|5||Fri 1 Dec||Mon 4 Dec|
Feedback can be obtained in class while checking off assignments. You are encouraged to clearly ask for feedback that you need to improve your future work, this also includes code quality!
4.3 Final project
In the last two weeks of the course, you will implement a final project. While you will receive a set of requirements for the app, much of the design is left up to you, giving you an opportunity to show the skills that you gained in earliers weeks. In particular, the final project will be assessed on such factors as user interface design and code quality.
- Deadline Period 1: 19 Oct 2017 at 23:59.
- Deadline Period 2: Friday, 15 December 23:59, or just a little bit later.
5. Office hours
Office hours are opportunities for help with projects and exercise materials alongside the course’s teaching assistants. Office hours are scheduled in the official timetable.
For students who avail themselves of the course’s other resources but still find themselves struggling, the course offers tutoring, to the extent possible, providing opportunities for students to work with the course’s staff one-on-one or in particularly small groups. To arrange, contact the course’s heads.
No books are required for students of the Android platform, but the following book may provide additional learning material: Bill Phillips, Chris Stewart and Kristin Marsicano, Android Programming, the Big Nerd Ranch Guide.
Students of the iOS platform need to aquire one book in particular:
- Apple, App Development with Swift (Free)
The books below may provide additional learning material:
All work that you do toward fulfillment of this course’s expectations must be your own work. You may read and comment upon classmates’ code toward fulfillment of projects’ code reviews but only for classmates whose code is assigned to you by the course’s staff for review. You may integrate ideas and techniques that you glean from your reviews of classmates’ code and from classmates’ reviews of your code into your own work, so long as you attribute those ideas and techniques back to your classmates, as with comments in your own code. You may discuss projects, including designs, but you may not share code. In other words, you may communicate with those classmates in English, but you may not communicate in Swift, Java, or Objective-C and such languages. If in doubt as to the appropriateness of some discussion, contact the course’s heads.
You may turn to the web for instruction beyond the course’s lectures and sections, for references, and for solutions to technical difficulties, but not for outright solutions to problems on homework or your project. However, failure to cite (as with comments) the origin of any code or technique that you do discover outside of the course’s lectures and sections (even while respecting these constraints) and then integrate into your own work may be considered academic dishonesty.
All forms of academic dishonesty are dealt with harshly. In all cases we follow the directives regarding fraud and plagiarism of the University of Amsterdam and of the Computer Science BSc programme. Find them here in English and Dutch.