Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit


CIS 600

Course Syllabus

CIS 400/600 - Android Programming

Fall 2021


Course Description

In this class we will learn how to develop applications for the Android mobile platform using Kotlin programming language. The course primarily focuses on User Interface (UI) Design and Implementation. After taking this class, students should be able to develop sophisticated and professional-looking apps.


Textbooks and Readings

There is no required textbook. Study materials will be made available via online links, recording and documents delivered to blackboard and Kaltura.


Prerequisites

The student should have mastered a high-level object-oriented programming language such as Java or C++, and data structures. In addition, the students should be capable of mastering a new computer language quickly (Kotlin in this case).


Cell Phones/Laptops

All cell phones are to be turned-off during class. Laptops (Windows or Mac) is required for blackboard/Zoom online class sessions, note taking and class exercising.


Attendance

Attendance in lecture is expected. It is the student’s responsibility to obtain missed materials in the event of absence. A missed exam/exercise will result in a score of zero for that exam or exercise.


Focus

User Interface (UI) Design and Implementation

In mobile app development, the most challenging to learn is the User Interface (UI) design and implementation. As mobile apps on the market become more and more sophisticated and versatile, fewer people could stand to use an app with a bad UI, regardless of how useful that app is. To learn UI, learning a few APIs is not enough; you need to understand a lot of elements that are relevant to UI. Each of them may not be very difficult to learn, but there are so many things that you need to learn. It takes a lot of time and practice to become proficient in building appealing UIs.

In this topic, we will systematically study the basic UI elements in Android programming, including Activity, Fragment, Layout, Menu, Views, UI Widgets, RecyclerView, ViewPager, NaviGraph etc. Moreover, we will cover how to polish UIs; this includes graphics, styles, drawing, animation, custom view, etc. To help student gain a deeper understanding of the Android UIs, we will also study how various UI features are actually implemented in Android. The ultimate objective is to teach students how to develop appealing and professional-looking user interface in mobile applications.

Libraries, Locate and Remote Database (REST APIs, SQLite, Room/Live Data, Firebase)

We will learn how to use libraries to implement more robust and feature-rich apps. If you haven’t been exposed to any relational database management system (RDBMS) already, this is a good time to learn the basics and its application in Android. You are very likely to encounter them in one form or another (SQLite, Oracle, PostGres and so on) for your first professional job or intern/coop.

Future Learning

Due to the time limitation, we cannot cover everything about Android in this class. If time permits we will try to go through a simple example of Server-side Programming. However, it does not matter how much we cover in this class, in a few years, much of you have learned from this class may become obsolete, and new features will become available. Therefore, the material knowledge itself from this class is not the most important part; what we hope is that through this class, you lay a solid foundation of the Android UI and system, and acquire the learning skill which you can use to quickly master new technologies in Android or other systems, whenever they appear.


Outcome Measurement (Tentative)

Your final grade will be based on the following:

  Question of the Day (25 x4)                            15

  In Class Exercises (5x20)                                10

  Assignments (7x5, grad.)                                35

  Assignments (5x7, under)                               35

  Final Project Idea                                           5

  Final Project Design                                       10

  Final Project Progress Report                 Pass/Fail

  Final Project Demo & Final Report                   25

                                                                           

  Total                                                          100


Question of the Day

Your Question of the Day (QOD) will be done through the blackboard in class. Passcode for QOD will be given in the class. Please don’t share this code with your classmate who is not present in the class; doing so constitutes a violation of the Academic Integrity.

You get 0 point when not present at the time of the QOD.

You will get 3 points by default when you answer a QOD. 1 additional point will be awarded for a correct answer.

Understand that some students have certain legitimate reasons to miss a session, up to 2 QOD can be made up outside class in these cases.


In Class Exercises (Approximately 5)

Occasionally we will have class demo that you are required to follow along or to complete (individual or group) in Android studio, and submit your work at end of the class.

The grading for in class exercise will be very lenient. You get full credit as long as you submit and show evidence of effort.


Assignments (7 for graduate and 5 for undergraduate students)

There are 7 assignments in total and 7 will be counted for grades for graduate students, and 5 for undergraduate students, with the lowest grade dropped.

All Assignments are individual works and will be announced on a regular schedule.

You need to submit assignment demo video and the project files in zipped format.

Each assignment will be 5 (grads) or 7 (under) points of your final grade.

Note: Please don’t post lecture slides, exams, demo projects and your completed assignment projects online, such as on GitHub.


Deadlines and Late Policies

Deadlines are stated in each assignment. All assignments must be turned in to blackboard electronically before the deadline. There will be a deduction of 5% per day (every day) for excused late submission. Your grade will be zero if later than a week.

Students are responsible to contact the instructor/TA ASAP if they are unable to meet the deadline(s) due to university acceptable reasons (no later than a week of its happening).


Getting Help

Your instructor and TA will hold regular office hours and will make appointments with students having class conflicts with scheduled office hours.CIS 600


Learning Goals

What you will learn in this course:

Build cool, sophisticated apps (that can be easily distributed through Google Play)

Master a real-life object oriented program language Kotlin

Application of many fundamental design models: MVC, Adapter, Singleton…

Many computer science concepts used in mobile programming: Graphics, Animation, Networking and Multithreading et al

Basic software development cycle and practice via a realistic final project


Key to Success

There are a few things you can do to be successful in this course:

Make sure you satisfy the prerequisite of the course.

Read the assigned reading material BEFORE lecture.

Attend lecture, pay attention, do in-class exercise and ask questions.

Be engaged in the classroom, with the instructor and fellow students.

Do the corresponding assignments on time and do not wait for the last moment!

If you still need help, contact your TA or instructor as soon as possible to not get behind!


Final Project

Grading Criteria

Grading an app is very different from grading other computer science projects. Just like gymnastics, diving, and figure skating, judging an app is inherently subjective. To make the grading as fair as possible, we learned from the ISU Judging System, which is the scoring system currently used to judge most of the events in figure skating competition. Here is the system that we developed.


Groups

The final project can be a group project, with up to 2 people in each group. The number of people in the group will not be considered during the grading. Therefore, a single-person group might have an inherent disadvantage compared to a two-person group. Please consider carefully when you decide to work alone or work together with another student.


App Ideas

You are encouraged to come up with your own ideas. However, if your app is too simple, you risk not getting a high grade, even if it is flawless and might make you millions of dollars. You are allowed to implement two apps, however, to incorporate more features and earn higher grades, if each app is just inherently simple.


Milestones

There are four major milestones for the final project, each is assigned a grade.

The idea of the app: You first come up with an idea for your app. You can discuss your ideas with the professor and or the TA.

The detailed UI design: You submit/present a design to describe how your apps will be designed. You need to follow the MVC (Model-ViewController) or MVP (Model-View-Presenter) model in your design. In your presentation document (slides), you should clearly describe the design of each element: model, view, and controller. For the view part (i.e., the UI), you need to use tools to draw the prototypes of your app’s user interfaces.

– UI Design presentation: Each group will be given about 5 minutes to present their App design to the judges: professor, TAs and fellow classmates.

The progress report: You have to show at least 30% implementation of your proposed design.

Final submission and demonstration: see the below.


Final Presentation

Each group will be given 15 minutes to present and demonstrate their apps to the judges. Your grade will be based on your project submission, this demo and your final report. All groups need to submit their final report, apk file, demo video and source code before their presentation to the blackboard.





Blackboard/Zoom/Kaltura

Blackboard will be used to deliver lecture notes, assignments, exams and project information, any corrections or clarifications about assignments, and any changes to exam times or locations. Students are strongly advised to check the blackboard for announcements and updates regularly. It is your responsibility to follow the announcements on Blackboard. The Blackboard site is http://blackboard.syracuse.edu