Course Description :
The purpose of this course is to introduce students to event-driven programming for embedded systems. In particular, we will chose to program for handheld devices such as Palm and Sony PDAs. The language of choice is C using the Metrowerks CodeWarrior for Palm programming environment focussing on software development with the Palm API. Prerequisite: CS250. 3 hours.
Topics:
- Event-handling methods
- Event propagation
- Exception handling
- Principles of graphical user interfaces (GUIs)
- GUI toolkits
- Fundamental design concepts and principles
- Design for reuse
- API programming
- Class browsers and related tools
- Programming by example
- Debugging in the API environment
- Introduction to component-based computing
Learning Objectives:
- Explain the difference between event-driven programming and command-line programming.
- Design, code, test, and debug simple event-driven programs that respond to user events.
- Develop code that responds to exception conditions raised during execution.
- Identify several fundamental principles for effective GUI design.
- Use a GUI toolkit to create a simple application that supports a graphical user interface.
- Illustrate the effect of fundamental design principles on the structure of a graphical user interface.
- Discuss the properties of good software design.
- Evaluate a software design from the perspective of reuse.
- Explain the value of application programming interfaces (APIs) in software development.
- Use class browsers and related tools during the development of applications using APIs.
- Design, implement, test, and debug programs that use large-scale API packages.
Tentative Course Schedule :
- C++ vs C
- Understanding the Palm Computing Platform & Palm OS
- Introduction to the Palm Development Environment
- Writing your first Palm Applicaton
- Introduction to the Palm Emulator/Simulator
- Debugging your application
- Working with Gremlins
- Introduction to MemoPad
- Resources and the Constructor
- Building Forms and Menus
- User Interface Elements
- System Elements
- Tables
- The Palm Database
- Programming with Color
The above topics and learning objectives were taken from the Computing Curricula 2001 recommendations found at:
http://www.computer.org/education/cc2001/final/chapter05.htm
Instructor Details:
Professor:
|
Douglas J. Ryan
|
Email:
|
ryandj@pacificu.edu
|
Office:
|
Strain 201
|
Phone:
|
(503) 352-2135
|
Office Hours:
|
M 10:00am - 12:00pm
T 11:00am - 12:00pm
W 10:00am - 11:00am
or by appt
|
|
|
Course Details:
Course Title:
|
CS360 Special Topics: Event-driven programming for PDAs
|
Prerequisite:
|
CS 250 Introduction to Computer Science II
with a grade of C or better.
|
Meeting Times:
|
TTh 1:00pm - 2:15pm
|
Location:
|
Strain 322
|
Textbooks
|
Palm OS Programming Bible , second edition, by Lonnon R. Foster IDG Books WorldWide, Inc
The C Programming Language by Brian W. Kernighan
|
Course Website:
Prerequisite For:
|
http://zeus.cs.pacificu.edu/ryand/cs360pda/cs360pdaf04.html
None
|
Tentative Grading:
Programming Assignments |
200 pts |
Midterm |
100 pts |
Final Project / Presentation |
100 pts |
TOTAL |
400 pts |
Percent Breakdown:
|
|
92-100 |
A |
90-92 |
A- |
88-90 |
B+ |
82-88 |
B |
80-82 |
B- |
78-80 |
C+ |
72-78 |
C |
70-72 |
C- |
68-70 |
D+ |
60-68 |
D |
|
|
|
|
0-60 |
F |
|
|
Program Grading:
Successful execution |
70% |
Strict adherence to C coding standards, version 1.0 |
20% |
Efficiency of code |
10% |
Tentative midterm date:
Midterm |
October 14 , 2004 |
Date of Final:
December 9, 2004 (Thursday), 3:00pm - 5:30pm
Policies:
-
Attendance at every class is critical to your success in this course. I expect you to be on time and ready to go once it's 1:00pm and that you stay until the end of class. Any missed lecture is your responsibility to make up; just remember, if you fall behind, it will be very difficult to catch up.
- Programs are to be submitted in the course drop box by 1:00pm on the day in which the assignment is due.
-
Programs can be turned in late with a penalty of 10% per day (or portion thereof) meaning that one minute late is the same as 23 hours and 59 minutes late.
- Make sure to test your program before you turn it in. You may turn in your program only once. A request to grade a program other than the first program submitted will result in a 10% penalty regardless of whether both programs are turned in on time or not.
- A program that does not successfully compile or produces no output loses 70% of the assignment grade.
-
No early or late exams/finals will be
given.
-
No incompletes will be given.
-
The cheating policy is defined in
Pacific Stuff & the Pacific Catalog as well as the Academic Policy that
each of you signed upon entering Pacific University. Be sure you read or reread
this policy carefully. All code written for CS360 is to be an original design
and an original implementation. The Web, textbooks, and any other references
are simply references for you. Copying source code from any source is
prohibited unless described in a particular assignment and applies only to that single assignment. Further, source code is not to exchange hands between any students in CS360 in any form or by any
medium. It is OK to share
high level ideas during the design phase, help someone in the class fix a bug occasionally,
share information dealing with OS issues, debugger issues, in general,
development issues that do not involve code writing.
-
All code in any form generated from
this course becomes the intellectual property of Pacific University. You may
not share this code with anyone without obtaining written permission from
Pacific University.
-
Neither computer failure, software
failure, nor lack of computer access are accepted as excuses for late programs;
therefore, start work on the programs as soon as they are assigned, and don't put
them off until the last minute. Further, corruption of programs due to bad disk
media is also not accepted as an excuse for late programs; therefore, always
keep a current backup of all programs on a separate disk. Please note that the Computer Science departmental servers are not backed up.
-
The instructor reserves the right to
raise or lower a student's grade based on class participation and attendance.
Specifically, participation can raise or lower your final grade by 1/3 of a grade.
Further, your final grade may be lowered by 1/3 of a grade for each day (or
portion thereof) of class missed. Please notify me PRIOR to class if you must
miss class for any reason. Just sending an email prior to missing class does
not guarantee you will be cleared to miss. Only legitimate reasons will be
accepted as excuses for missing class.
-
Any important issue pertaining to class such as the need to miss an exam
or grade issues will not be discussed via email. I will not even reply to your email if the issue is important; therefore, do not assume that no response means everything is OK.
-
If you are unhappy with something related to the class, then
schedule an appointment to see me so that we can discuss it in my office.
Complaining in class or out of class to other students gets us nowhere.
-
You may be asked to leave the classroom if you are causing a distraction
e.g. cell phone ringing, talking, etc
Important Dates:
September 6
|
Labor day holiday |
September 13
|
Last day to add courses, Last day to drop courses with no record |
October 8
|
Fall Day Off |
November 8
|
Last day to withdraw from courses |
November 24-26
|
Thanskgiving Break |
December 9 |
Final Exam (3:00pm - 5:30pm) |