Syllabus of CSCE590 Mobile Application Development

Course Summary

The trend of current information technology is mobile and web. This is an introductory course on mobile application development. It will focus on developing apps that can run one or more mobile platforms including but not limited to ios, android, windows, and etc. The course will cover all major aspects of mobile app development including user interface design, data storage (local or cloud), and MVC model. The key programming language used will be selected by the target platform for the apps designated by the instructor. Students will form teams to work on a specific app development throughout the course. This is a “hands-on” course involving in-class and homework assignments to build the app development skills.

Course Objective At the end of the class, students are expected to be able to
- Students will learn basic programming skills needed for developing mobile apps for a specific platform. One of the following programming languages will be selected (java, swift, C#, HTML5 language and javascript). It will cover the basics of programming constructs such as for loop, if-else, arrays, json format, parameter passing etc.
- Students will attain skills for designing and implementing basic mobile apps. They will learn how to create user interface, manage the data storage, and interactions with the data. They will also learn how to distribute the developed app to the android Google Play store, Apple App store, or windows store.
- Students will learn skills for developing cloud-based mobile apps
- Students will also learn how to utilize hardware and sensors of mobile devices such as camera, GPS, network, and other functionality
- Students will practice in applying the learned app development skills to work on a specific app within a team.
- The class will yield sufficient knowledge and practical skills for developing native or cross-platform mobile apps appropriate for an individual research project conducted by the advanced undergraduate or graduate student.
Prerequisite You are not expected to have some basic programming skills. Experience with C, or C++ or java is helpful.

Textbooks

Ionic in Action: Hybrid Mobile Apps with Ionic and AngularJS ISBN-10: 1633430081; This textbook is for reference only.
(you can find cheap books at http://www.addall.com)

Instructor: Dr. Jianjun Hu
Machine Learning and Evolution Laboratory (MLEG)
Email: jianjunh AT cse.sc.edu
Office: 3A47 Swearinger Engineering Center
Office Hours: TTH 10:30PM-12:00PM or by Appointment.

Lecture Notes/Assignments/Readings

Lecture notes, homework assignments will be available at the class website. You will be responsible for downloading them to prepare for class and homework.

Supplementary Readings Extensive reading materials will be provided each week to develop a broad understanding of algorithms

Grading

Your course grade will be based on homework assignments, 1 mid-term exam, 1 final project, and attendance. The weights given to these components is:

  1. Homework assignments (30%)
  2. In-class midterm exams (1) (30 %)
  3. Final project(35%)
  4. Attendance and participation(5%)

Grade: A (90-100%), B+ (85-90%), B (80-85%), C+ (75-80%), C (70-75%), D+ (65-70%), D (60-65%), and F (0-60%)

Covered Topics: (These are tentative topics. Changes may be made based on the available time.)

Many interesting topics will be covered:

  1. User-interaction design and requirements design
  2. Graphical User Interfaces and Event-Driven Programming
  3. Advanced Object-Oriented Programming
  4. Robust design and programming for user constraints (application interruption, application responsiveness, partial user engagement)
  5. Robust design and programming for device constraints (power consumption, screen size, network connectivity, memory limitations)
  6. Data distribution: distribution types, basic parsing, distribution security.
  7. Location awareness, messaging, and other connections between the device and the outside world.
  8. Utilizing hardware and sensors of mobile devices in mobile apps.

A due time will accompany each homework assignment. Late homework is not accepted without prior approval from the instructor. Homework may have different weight when it is counted into your final grade. The due time of the homework will be at the beginning of the class. Some homework questions need programming. You need to turn in your code to the departmental electronic dropbox. Code should be written in C or C++ and should be tested in the departmental Linux computers. Class attendance is required as claimed in University policy and a student is responsible for all the material covered in the class. Not knowing changes to class policy/homework/etc. is NOT an acceptable reason for non-compliance. Both midterm and final exams are closed to books and notes, except for a single-side letter-size cheat sheet for each midterm and a double-side one for the final exam. Grades of homework and exams will be uploaded into Blackboard when they are available.

Academic Integrity: Homework and examinations are expected to be the sole effort of the student submitting the work. Students are expected to follow the Code of Student Academic Responsibility. Every instance of a suspected violation will be reported. Students found guilty of violations of the Code will receive the grade of F for the course in addition to whatever disciplinary sanctions are applied.