Вы находитесь на странице: 1из 9

Федеральное государственное автономное образовательное

учреждение высшего образования


Национальный исследовательский университет
«Высшая школа экономики»

Факультет компьютерных наук


Департамент программной инженерии

Рабочая программа дисциплины


«Разработка мобильных приложений для платформы Android»

для образовательной программы «Системная и программная инженерия»


направленияcподготовки 09.04.04 «Программная инженерия»
уровень магистр

Разработчик программы
Шершаков С. А., sshershakov@hse.ru

Одобрена на заседании департамента программной инженерии « » 2016 г.


Руководитель департамента Авдошин С. М.

Утверждена Академическим советом образовательной программы


« » 2016 г., № протокола

Академический руководитель образовательной программы


Александров Д. В.

Настоящая программа не может быть использована другими подразделениями университета


и другими вузами без разрешения подразделения — разработчика программы.

Москва 2016
1 Course Description
Course title: Android Applications Development
Author of the program: Sergey A. Shershakov, MSc (responsible lecturer)

1.1 General Information and Field of Application


The training course “Android Applications Development” is offered to students of the specialization
(track) “Mobile Applications Design and Development” of Master Program “System and Software En-
gineering” (area code 09.04.04) at the Faculty of Computer Science of the National Research University
— Higher School of Economics (HSE). The course is classified as an elective subject (М.2.Б unit / base
module, М.2 – Special subject disciplines of 2016–2017 academic year working curriculum); it is a
two-module course (semester A quartiles 1 and 2). The duration of the course amounts to 40 class
periods (both lectures and practical trainings) divided into 18 lecture hours and 22 practical training
hours. In addition, 150 academic hours are set aside for self-studying of students. Total number of
course hours is equal to 190 (40 + 150).
The syllabus is prepared for teachers responsible for the course (closely related disciplines), teaching
assistants, students enrolled in the course as well as experts and statutory bodies carrying out assigned
or regular accreditations.

1.2 Pre-requisites
It is presupposed that all students enrolled in the course have completed corresponding full-time Bach-
elor degree training programs and been selected (based on either portfolio performance or other core
performance indices) to continue their MS education in the Program.
Students should be familiar with the basics of the following training courses: (a) Object-oriented
analysis and programming (Java experience highly recommended); (b) Mobile Applications Develop-
ment.

1.3 Abstract
Nowadays, mobile devices become widely spread due to a number of reasons. Among them, one can
distinguish an increase in performance and data storage, elongation of operation time together with
reducing the size of devices as well as their cost. Convergence of data and voice networks and ever-
increasing Internet accessibility plays here a significant role. Currently Android OS runs the majority
of devices all over the world and their number only increases. Hence, owning Android development
competencies is therefore highly valuable.
The training course “Android Applications Development” introduces participants to the design
and development of Android applications for handheld devices. The course starts with basic concepts
and step by step it involves all necessary components for building modern and reliable applications
for various purposes. The course concerns a number of perspectives including application develop-
ment workflow with modern tools and techniques, debugging and deployment, UI-related concepts,
domain-specific applications, distributed systems and others. Some of the most useful related libraries
are also considered. The participants develop their practical skills by doing problem-oriented exercises
throughout the course to reinforce material that is presented in the form of lectures.

2 Learning Objectives
During the course “Android Applications Development” the participants will:
• study platforms and toolkits for fast development of modern Android applications;
• practice application debugging and deployment with respect to different devices or emulators;

2
• investigate various use cases and appropriate tools for implementing them in Android applica-
tions;
• intensively use widespread industrial tools for software project management (such as Redmine,
git and others).

3 Learning Outcomes
By the end of the course the students will acquire theoretical knowledge and practical skills and will
be able to:
(Technical skills)
• analyze a problem to be implemented in the form of an Android application;
• design app architecture with respect to problem decomposition and known limitations;
• select the most appropriate toolset for app development;
• select a set of related protocols, libraries, and frameworks, taking into account the need to interact
with both a local and a distributed environment;
• develop the application and deploy it for different app stores;
• create a testbed environment for essential testing of the application.
(Soft skills)
• improve team-working skills with using collaborative working tools (Redmine);
• improve presentation skills;
• improve skills on writing reports and technical documentation, including rapidly changing docu-
mentation with using wiki and other specific tools;
• improve self- and peer-review skills.
Generally, the course contributes to the developments of the following competencies (as for FSES/HSE
(ФГОС/НИУ ВШЭ) code, rus. abbrev.): СК-М5, СК-М7, СЛК-М5, СЛК-М9, ИК-М2.1.АД (ПИ),
ИК-М2.2.АД (ПИ), ИК-М3.1.ПД (ПИ), ИК-М3.2.ПД (ПИ), ИК-М7.1.ОУД (ПИ).

4 Course Plan
Course Audience Hours Self
№ Topic Name
Hours, Lectures Practical Study
Total Studies
Module 1 (20 hrs. = 9 + 11)
1 Introduction to Android Development (Sec. 7.1) 15 2.5 1.5 11
2 GUI: Views, Widgets and Layouts (Sec. 7.2) 16 1.5 2.5 12
3 Activities and Intents (Sec. 7.3) 16 2 2 12
4 Dynamic UI and Fragments (Sec. 7.4) 16 1.5 2.5 12
5 Data Storage (Sec. 7.5) 16 1.5 2.5 12
6 Multi-threading (Sec. 7.6) 16 — — 16
Module 1, totally 95 9 11 75
Module 2 (20 hrs. = 9 + 11)
7 Services (Sec. 7.7) 16 1.5 2.5 11
8 Networking and Distributed Systems (Sec. 7.8) 15 2 2 12
9 Localization and Supporting Different Devices 16 — — 16
(Sec. 7.9)
10 Accessing Android Hardware (Sec. 7.10) 16 2 2 12
11 Multimedia (Sec. 7.11) 16 1.5 2.5 12
12 Android “Kernel Mode” (Sec. 7.12) 16 2 2 12
Module 2, totally 95 9 11 75
TOTAL: 190 18 22 150

3
Notes:
1. Each sequential number above corresponds to a separate theme, whereas a theme can span over
one or more lectures.
2. The modules above are about half a semester long. Modules 1 and 2 belong to the first semester.

5 Reading List
Books [43], [44].

Internet Sources [1], [2], [3], [4], [5], [6], [7], [8], [9] (for additional sources see references below).

6 Grading System
The course grade is based on both ongoing assessment and final examination. Every module ends up
with a final test. The grade for the test together with a cumulative grade represent a final grade for the
module. The final grade for the second module is the ultimate grade for the course.
The final grade F G1 for the first module is calculated as follows:

F G1 = 0.4 · T1 + 0.6 · OA1 , (1)


where T1 is a first module test grade, OA1 is an ongoing assessment grade (both 10-point scale). The on-
going assessment OA1 measures participant’s performance throughout all classes and involves various
types of activities (see Sect. below).
Next, the ultimate grade G (which is also the final grade for the second module) is calculated as
follows:

G = 0.4 · F E + 0.6 · CG, (2)


where F E is a second module final exam (test) grade, CG is a cumulative grade for the second module.
Here, cumulative grade CG is calculated as follows:

CG = 0.5 · OA2 · (F G1 /10) + 0.5 · HW, (3)


where OA2 ongoing assessment grade is determined similarly to OA1 , F G1 is a final grade for the first
module, and HW is a homework grade.
Grades F G1 and G are rounded (up or down) to an integer number of points before entering them
into records. Nevertheless, F G1 is not rounded in (3). The conversion of rounded 10-point scaled
results to 5-point scaled ones is performed according to Table 1.
The final exams as well as the intermediate test are given in the form of a writing test (paper- or
computer-based, subject to further refinement). The time limit is 80 min. One (10-point scale) grade
is given for the test.

6.1 Ongoing Assessment


The ongoing assessment grade is accumulated throughout all the classes and is related to a participant’s
activity. An ongoing control structure is individual for every class.
During the classes, there are some activities available for students to be involved in. They include
(but are not limited by) writing code and developing applications, evaluating practical problems, solv-
ing short tests, answering questions and so on. Every activity is evaluated and grants some points to
participants. We consider two sorts of points: 1) regular points (RP) and 2) extra points (EP).

4
Table 1: Correspondence of ten-point to five-point marks

Ten-point scale [10] Five-point scale [5]


1 — unsatisfactory
2 — very bad
3 — bad Unsatisfactory — 2
4 — satisfactory
5 — quite satisfactory Satisfactory — 3
6 — good
7 — very good Good — 4
8 — nearly excellent
9 — excellent
10 — brilliant Excellent — 5

As a result of every class, a certain maximum number of RP can be earned (RPmax ). RPs are
accumulated during a semester and give a resulting grade as maximum 8 points (10-point scale) to
OA1 and OA2 only if every class brings a maximum number of points (RPmax ) for a given participant.
EPs are given for additional efforts and for excellent jobs. They are also accumulated and can be used
in the end of a semester for compensating deficiency of RPs and increasing an OA grades up to 10
points.
Finally, some kinds of out-of-class activities can be accounted for as a part of ongoing assessment.
Peer review work, preparing and reporting one of a course-related topics are examples of such activities.
Ongoing activities grades can be significantly decreased (down to 0 points) if a participant does not
attend a class or attends it sporadically even though all other formal requirements for earning points
are met.

7 Course Content
7.1 Introduction to Android Development
Topic outline:
• Introduction
• Basics of Android development [1]
• Android architecture [10], [11]
• IDE, tools and main components [12]
• Java review
• Android Virtual Devices
• First application
Main references/books/reading: [43], [44], [3], [6], [8].

7.2 GUI: Views, Widgets and Layouts


Topic outline:
• Views and view groups [13]
• Sizing and positioning
• Layouts [14]
• Basic GUI Widgets: Button, EditText, ... [15]
• Events and event-driven programming
Main references/books/reading: [43], [44].

5
7.3 Activities and Intents
Topic outline:
• Creating an activity
• Activity lifecycle [16]
• Android activity classes
• Intents; implicit and explicit intents [17]
• Multiple activities and intents
• Debugging, ADB and Logcat [18]
Main references/books/reading: [43], [44].

7.4 Dynamic UI and Fragments


Topic outline:
• Introducing fragments
• Landscape orientation [19]
• FragmentManager class
• LayoutInflater class
• Dialog class [20]
• Testing Android app [21]
Main references/books/reading: [43], [44].

7.5 Data Storage


Topic outline:
• Saving simple application data
• Application state and preferences [22]
• PreferenceFragment class
• Saving and loading files [23]
• Introducing databases in Android; SQLite [24]
• Content providers [25]
Main references/books/reading: [43], [44].

7.6 Multi-threading
Topic outline:
• Threading overview [26]
• Java threads
• Android App’s UI thread
• AsyncTask class
• Messages and Handlers [27]
Main references/books/reading: [43], [44].

7.7 Services
Topic outline:
• Introducing services [28]
• Alarms [29]
• Notifications [30]
• Broadcasting [31]
• BroadcastReceiver class

6
Main references/books/reading: [43], [44].

7.8 Networking and Distributed Systems


Topic outline:
• Networking in Android [32]
• Sockets
• HTTP*
• Android.Net classes
• RESTful API [33]
Main references/books/reading: [43], [44].

7.9 Localization and Supporting Different Devices


Topic outline:
• L12N and I18N [34]
• Coping with various screen sizes
• Introducing Android Wear [35]
• WebView
• Publishing Apps on Google Play [36]
Main references/books/reading: [43], [44], [5].

7.10 Accessing Android Hardware


Topic outline:
• Introducing Sensor Management [37]
• Using the Camera
• Telephony
• Accelerometer and Compass
• Managing Networks and Wi-Fi
• Bluetooth
• NFC
Main references/books/reading: [43], [44].

7.11 Multimedia
Topic outline:
• 2D- and 3D- graphics [38]
• Animations
• Touch and Gestures [39]
• Introducing Android TV [40]
• Touching GameDev
Main references/books/reading: [43], [44].

7.12 Android “Kernel Mode”


Topic outline:
• Linux Kernel [10]
• Security and Permissions [41]
• Using Qt in Android Development [42]
Main references/books/reading: [43], [44].

7
8 Special Equipment and Software Support (if required)
Generally, it is possible to develop and debug an Android application by using simulator software.
Presence of a physical device is therefore not mandatory. Nevertheless, if such a device is available,
it allows to develop the application more naturally. Moreover, exploring some hardware features may
require specific devices.
Finally, a desktop or laptop computer is a must, preferably with a USB-port for connecting a physical
Android-based device.

References
[1] url: http://developer.android.com.
[2] url: https://developer.android.com/training/index.html.
[3] url: http://developer.android.com/sdk/index.html.
[4] url: https://developers.google.com/admob/android/quick-start.
[5] url: developer.android.com/wear/.
[6] url: https://developer.android.com/reference/packages.html.
[7] url: http://www.anddev.org/.
[8] url: http://docs.oracle.com/javase/7/docs/api/.
[9] url: http://android-developers.blogspot.com.
[10] url: https://developer.android.com/guide/platform/index.html.
[11] url: https://source.android.com/devices/.
[12] url: https://developer.android.com/studio/index.html.
[13] url: https://developer.android.com/reference/android/view/View.html.
[14] url: https://developer.android.com/guide/topics/ui/declaring-layout.html.
[15] url: https://developer.android.com/guide/topics/appwidgets/index.html.
[16] url: https://developer.android.com/guide/components/activities.html.
[17] url: https://developer.android.com/guide/components/intents-filters.html.
[18] url: https://developer.android.com/studio/command-line/adb.html.
[19] url: https://developer.android.com/guide/components/fragments.html.
[20] url: https://developer.android.com/guide/topics/ui/dialogs.html.
[21] url: https://developer.android.com/training/testing/start/index.html.
[22] url: https://developer.android.com/guide/topics/ui/settings.html.
[23] url: https://developer.android.com/training/basics/data-storage/files.html.
[24] url: https://developer.android.com/training/basics/data- storage/databases.
html.
[25] url: https://developer.android.com/guide/topics/providers/content-providers.
html.
[26] url: https://developer.android.com/guide/components/processes- and- threads.
html.
[27] url: https://developer.android.com/reference/android/os/Handler.html.

8
[28] url: https://developer.android.com/guide/components/services.html.
[29] url: https://developer.android.com/training/scheduling/alarms.html.
[30] url: https://developer.android.com/guide/topics/ui/notifiers/notifications.
html.
[31] url: https://developer.android.com/guide/components/fundamentals.html.
[32] url: https://developer.android.com/training/basics/network-ops/index.html.
[33] url: https://netbeans.org/kb/docs/websvc/rest_ru.html.
[34] url: https://developer.android.com/guide/topics/resources/localization.html.
[35] url: https://developer.android.com/wear/index.html.
[36] url: https://developer.android.com/distribute/googleplay/index.html.
[37] url: https : / / developer . android . com / guide / topics / sensors / sensors _ overview .
html.
[38] url: https://developer.android.com/guide/topics/graphics/index.html.
[39] url: https://developer.android.com/training/gestures/index.html.
[40] url: https://developer.android.com/tv/index.html.
[41] url: https://developer.android.com/guide/topics/security/permissions.html.
[42] url: http://doc.qt.io/qt-5/android-support.html.
[43] Reto Meier. Professional Android Application Development. Wiley Publishing, Inc., 2014.
[44] Bill Phillips et al. Android Programming: The Big Nerd Ranch Guide. 2nd. Pearson Technology
Group, 2015.

Author of the program: Sergey A. Shershakov

Ред. 0.32b / 30.08.2016 г.

Вам также может понравиться