Syllabus
Advance Mobile Programming

Advance Mobile Programming

ITSE-2343

Credit Spring 2021
01/19/2021 - 05/16/2021

Course Information

There was a problem retrieving the course information. If this error persists, ask the instructor to contact the help desk.

Office Hours

  • M T W Th
    c. 5:00 - c. 5:30
    Online
    Send an email to arrange a time.

Course Requirements

The primary goal of the course for each student will be to design and code a real time 3d sensor driven game that runs on a mobile device.  The course will cover topics that include sensors, signal processing, 3d graphics, transformations, lighting, and motion control.  The prerequisite for the course is ITSE 1333 Mobile Application Development.

Readings

There is no required text for the course. All of the required information can be found on the web.  There are many OpenGl ES guides on the web, some are unix based, or ios based, but they can all be helpful.  The only difference is in the initialization routines that allow OpenGl to talk to the os.

A good intro intro intro with lots of text. A good place to start if new to 3d graphics:

http://blog.db-in.com/all-about-opengl-es-2-x-part-1/

Tutorials:

http://www.learnopengles.com/android-lesson-one-getting-started/

http://lazyfoo.net/tutorials/OpenGL/index.php

http://www.jayway.com/2013/05/09/opengl-es-2-0-tutorial-for-android-part-i-getting-started/

3d matrices overview:

http://www.songho.ca/opengl/gl_transform.html

Android’s page

https://developer.android.com/guide/topics/graphics/opengl.html

Khronos’ site. Good for reference, bad for tutorials.

https://www.khronos.org/opengles/

http://www.khronos.org/opengles/sdk/docs/man/

Course Subjects

The primary goal of the course for each student will be to design and code a real time 3d sensor driven game that runs on a mobile device.  The course will cover topics that include sensors, signal processing, 3d graphics, transformations, lighting, and motion control.  The prerequisite for the course is ITSE 1333 Mobile Application Development.

Student Learning Outcomes/Learning Objectives

Class Outline/Course Calendar:

  • Week 1:
    • Lecture: Introduction to course. Passwords. Hello Triangle.
  • Week 2:
    • Lecture: Android OpenGl overview, simple transformations;
    • Assignment : Translation.
  • Week 3:
    • Lecture: Polygons, 3d pipeline
    • Assignment: Geometry creation.
  • Week 4:
    • Lecture: Vector math, camera matrix
    • Assignment: camera animation.
  • Week 5:
    • Lecture: The Dot Product
    • Assignment: The Endless Hallway
  • Week 6:
    • Lecture: Matrix transformations , Collision Detection
    • Assignment: : Collision Detection
  • Week 7:
    • MidTerm Exam
  • Week 8:
    • Lecture: Accelerometer input
    • Assignment: : Accelerometer input
  • Week 9:
    • Lecture: Flying
    • Assignment: A weightless flying airplane
  • Week 10:
    • Lecture: Gravity, stall prevention
    • Assignment: Gravity, Air vents
  • Week 11:
    • Lecture:  Hierarchical motion, final project
    • Assignment: Rotating Fan
  • Week 12:
    • Lecture:  collision detection
    • Assignment: fan collision
    • Final Project Proposal due
  • Week 13:
    • Lecture:  Quaternions, Texture mapping
    • Assignment: Texture mapping
  • Week 14:
    • Lecture:  Programmer Interviews
    • Class Work: Final Project
  • Week 15:
    • Final Exam
  • Week 16:
    • Final Project Due
    • Class Work: Present Final Project  to class