Location: CP 201
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.
hours: 1:00 p.m. to 4:00 p.m. Friday, or by appointment
 Wireless Java:
Developing with J2ME, 2/e, Jonathan Knudsen, ISBN: 1-59059-077-5,
 Programming Wireless Devices with Java2 Platform, Micro Edition,
R. Riggs, A. Taivalsaari, M. VandenBrink, ISBN: 0-201-74627-1,
 Wireless Internet, Applications and
Architecture, Mark Beaulieu, ISBN: 0-201-73354-4, Addison-Wesley, 2002.
 Mobility: Processes, Computers and Agents, edited by Dejan
Milojicic at al., ISBN: 0-201-37928-7, Addison-Wesley,
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
J2ME/MIDP 2.0 Programming
CLDC (Connected, Limited Device Configuration)
Creating MIDP UIs
Connecting to the World (services)
The Game API
Sound and Music
Protecting Network Data
Sample MIDP Applications
consists of lectures, homework assignments, two exams and a
All assignments will be submitted by
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.
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
- 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.
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
The final exam is comprehensive.
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 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.
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