Syllabus for CS-5331/1
Mobile Computing

Course Information
CS 5331/1:
Mobile Computing
Location: CP 201
Time: 8 a.m. - 8:50 a.m., MWF

Course webpage is


The advent of widespread portable computers, in the 1980s and beyond, has lead to a wide variety of interesting devices, and interesting HW and SW issues. Laptops have long been popular, especially among travelers. The vast majority of laptops run in a stand-alone mode, at least when away from one's home or office. This mode is termed "nomadic computing". Most existing computing devices (total global mobile users: 1.3 billion, total US mobile users: 148 million) have wireless network connectivity permitting true "mobile computing".  The class will include Mobile Information Device Profile (MIDP 2.0) programming using J2ME (de facto standard for mobile devices) to supplement the introduction to wireless Internet (WAN, LAN and PAN) covered in the classes. By the end of this course, you will have acquired a deep understanding of various wireless programming concepts and APIs and developed extensive knowledge that you can use to develop sophisticated MIDP applications.

There is no a formal prerequisite for this course, familiarity with Java required. My course on Java Programming is a plus.

Dr. Michael Sobolewski
Room: CP-310
Office hours: 1:00 p.m. to 4:00 p.m. Friday, or by appointment

[1] Wireless Java: Developing with J2ME, 2/e, Jonathan Knudsen, ISBN: 1-59059-077-5, Apress, 2003

[1] Programming Wireless Devices with Java2 Platform, Micro Edition, R. Riggs, A. Taivalsaari, M. VandenBrink, ISBN: 0-201-74627-1, Addison-Wesley, 2001

[2] Wireless Internet, Applications and Architecture, Mark Beaulieu, ISBN: 0-201-73354-4,
Addison-Wesley, 2002.

[3] Mobility: Processes, Computers and Agents, edited by Dejan Milojicic at al., ISBN: 0-201-37928-7, Addison-Wesley, 1999.

Tentative Course Outline:
Introduction to Wireless Internet
  The Wireless Internet World Stage
  The Equipment and Technology of Wireless
  Wireless Networks (1G, 2G, 2.5G, 3G)
Wireless Internet Applications and Content
Wireless Services
   SORCER Services
J2ME/MIDP 2.0 Programming
   Building MIDlets
   CLDC (Connected, Limited Device Configuration)
   Creating MIDP UIs
   Persistent Storage
   Connecting to the World (services)
   The Game API
   Sound and Music
   Performance Tuning
   Parsing XML
   Protecting Network Data
Sample MIDP Applications

Course Delivery Format/Policies
This course consists of lectures,  homework assignments, two exams and a final project. All assignments will be submitted by email:

Homework assignments will contain short-answer questions, reading exercises, problems assigned from the textbook and references,
 and MIDP programming tasks. The format and types of questions on homework will be similar to those on the midterm and final exams. Doing and understanding the homework assignments will help prepare for tests.


Final Project

Students should make two person teams or work individually if it is preferred. Each team must complete a MIDP application in the SORCER environment. Programs must compile and run using the J2ME™ Wireless Toolkit Version 2.1. The project will receive points for #1- proper operation (50% of grade), #2- structure, commenting, and style (25% of grade), and #3- presentation/demo (25% of grade).

Please note the following programming style and coding guidelines:
  • Each source file must begin with a comment block identifying the programmer, project, last modification date.
  • The class file containing "public static void main()" must include a comment block (following the identification header comment), that briefly describes the purpose of the program and the primary data structures employed.
  • Each class method or property must be accompanied by a header comment that describes what the method or property does, the logical purpose of each passed parameter (including whether it is input, output, or input/output), the pre-conditions that are assumed, the post-conditions that are guaranteed, and the return value (if any).
  • Declarations of class level variables and finals (constants) must be accompanied by a brief description of purpose.
  • Major control structures, such as loops or selections, should be preceded by a block comment describing what the following code does.
  • Use a sensible, consistent pattern of indentation and other formatting style (such as bracket placement) to improve the readability of your code.
  • Identifier names (constants, variables, methods, properties, classes, etc.) should be descriptive.
  • When a final (constant) is appropriate, use a final (constant) instead of a "magic number". More explicitly, any constant value other than 0 or the empty string, "", should be a named constant.
  • Store character data (aside from single characters) in string objects, rather than char arrays.

Exams will be open-book/notes. Material from handouts, textbooks and assignments will be included in the scope of the exams.

Midterm exam
A makeup exam will not be given. A valid excuse from the dean or health office will result in the points being applied to the final exam.
Final exam
The final exam is comprehensive.

Point Distribution:

Homeworks (5)20%
Final Project40%
Midterm Exam15%
Final Exam25%

Grading Scale:
Grades may be curved as necessary.

90 guarantees at least an A-
80 guarantees at least a B-
70 guarantees at least a C-
60 guarantees at least a D-
59 or less is F

Late Policy:
Late work will not be accepted. Each homework and programming assignment will have a posted deadline. Deadlines are absolute. Failure to submit an assignment by the deadline will result in a grade of 0. There are no exceptions. A written excuse from the dean or health office is the only acceptable form of excuse. This will result a minimum extension to the deadline to complete the assignment.
Questions about grades:
After each graded assignment is returned students will have one week following the return of the assignment to question the grade assigned with either the course instructor or TA. After one week has passed the grade becomes final and will not change. This applies to all programming assignments, homework and tests.

The purpose of these different instruments is to have a positive learning experience, critical thinking about Java programming, and some sound grasp of fundamentals. If you feel any of these instruments is not working for any reason, please send me email and I will consider a change in the format of delivery.

Student-teacher relationships are based on trust. Acts, which violate this trust, undermine the educational process. Your classmates and the instructor will not tolerate violations of academic integrity.

prev: SOBOL Home
Sobolwski's Home
next: TTU CS Home