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

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

Факультет компьютерных наук Департамент программной инженерии

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

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

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

Одобрена на заседании департамента программной инженерии Руководитель департамента Авдошин С. М.

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

« »

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

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

«

»

2016 г.

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

Москва 2016

1

Course Description

Course title:

Author of the program: Sergey A. Shershakov, MSc (responsible lecturer)

Android Applications Development

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

Topic Name

Course

Audience Hours

Self

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 (Sec. 7.9)

16

16

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 G 1 for the first module is calculated as follows:

(1)

where T 1 is a first module test grade, OA 1 is an ongoing assessment grade (both 10-point scale). The on- going assessment OA 1 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:

FG 1 = 0.4 · T 1 + 0.6 · OA 1 ,

(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:

G = 0.4 · F E + 0.6 · CG,

CG = 0.5 · OA 2 · (FG 1 /10) + 0.5 · HW,

(3)

where OA 2 ongoing assessment grade is determined similarly to OA 1 , FG 1 is a final grade for the first module, and HW is a homework grade. Grades F G 1 and G are rounded (up or down) to an integer number of points before entering them into records. Nevertheless, F G 1 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

 

— excellent 10 — brilliant

9

Excellent — 5

As a result of every class, a certain maximum number of RP can be earned (RP max ). RPs are accumulated during a semester and give a resulting grade as maximum 8 points (10-point scale) to OA 1 and OA 2 only if every class brings a maximum number of points (RP max ) 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,

• Events and event-driven programming

[15]

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

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

8