Cleveland State University

Department of Electrical and Computer Engineering

EEC 492/693/793 iPhone Application Development

Fall Semester 2010

 

Course Objectives:

This course introduces the tools (Xcode and Interface Builder), the frameworks (Foundation and UIKit), and the programming language (Objective-C) needed to develop applications for the iPhone/iPod Touch/iPad platforms. Graduate students will be exposed to projects related to participatory sensing research.

 

Prerequisite:

Approval of instructor and academic adviser

 

Textbooks:

·          Beginning iPhone 3 Development, Exploring the iPhone SDK, by Dave Mark and Jeff Lamarche, Apress, 2009.

·          Learn Objective-C on the Mac, by Mark Dalrymple and Scott Knaster, Apress, 2009

 

Instructors:

Dr. Wenbing Zhao and Dr. Nigamanth Sridhar

Office:  SH434/SH435

Phone: (216) 523-7480 (216) 687-5341

Fax:        (216) 687-5405

E-mail: wenbingz@gmail.com n.sridhar1@csuohio.edu

Lecture time: M W 6:00-7:50pm

Office hours: M W 2-4pm for Dr. Zhao and 4-6pm for Dr. Sridhar

 

Reading Assignments for EEC693/793 Students

 

FAQ on iPhone Application Development

 

 

Tentative Schedule:

Week

Topics

1

(Aug 30 – Sept 3)

Aug 30:

  • Lecture #1 – Overview of the course; syllabus; policies (notes)

Sept 1:

·          Screening Test


2

(Sept 6 – 10)

Sept 6:

  • Labor Day (no class)

Sept 8:

  • Lecture #2 – Overview of iPhone application development environment (notes)

3

(Sept 13 – 17)

Sept 13:

  • Lecture #3 – Introduction to Objective-C; Model-View-Control design pattern; Handling basic interaction (notes)

Sept 15:

  • Lecture #4 – More on Objective-C (delegates and protocols); More user interface fun (part I) (notes)

4

(Sept 20 – 24)

Sept 20:

  • Lecture #5 – More user interface fun (part II) (notes)

Sept 22:

  • Lecture #6 – Objective-C memory management (notes)

5

(Sept 27 – Oct 1)

Sept 27:

·          Lecture #7 – Autorotation and autosizing (notes)

Sept 29:

·          Lecture #8 – Multiview applications (notes)

6

(Oct 4 – 8)

Oct 4:

·          Lecture #9 – Tab bars and pickers (notes)

Oct 6:

·          Make-up session

7

(Oct 11 – 15)

Oct 11:

  • Columbus Day (no class)

Oct 13:

·          Lecture #10 – Categories; Introduction to table views (notes)

8

(Oct 18 – 22)

Oct 18:

  • Lecture #11 – Navigation controllers (notes)

Oct 20:

  • Lecture #12 – More on table views (notes)

9

(Oct 25 – 29)

Oct 25:

  • Lecture #13 – Basic data persistence (notes)

Oct 27:

  • Lecture #14 – Bonjour (notes)

10

(Nov 1 – 5)

Nov 1:

  • Lecture #15 – GameKit (notes)

Nov 3:

  • Lecture #16 – Taps, touches and gestures (notes)

11

(Nov 8 – 12)

Nov 8:

  • Lecture #17 – Location & Map Kit (notes)

Nov 10:

  • Lecture #18 – Accelerometer; CoreGraphics & Quartz 2D (notes)

12

(Nov 15 - 19)

Nov 15:

  • Project Progress Presentation

Nov 17:

  • Lecture #19 – Unit Testing & Objective-C Runtime (notes)

13

(Nov 22 – 26)

Nov 22:

  • Lecture #20 – Consuming Web services (notes)

Nov 24:

  • Thanksgiving Eve (no class)

14

(Nov 29 – Dec 3)

Nov 29:

  • Lecture #21 - Access build-in applications (notes)

Dec 1:

  • Invited talk

15

(Dec 6 – 10)

Dec 6:

  • Lecture #22 – Concurrency and Multithreading (notes)

Dec 8:

  • Invited talk

16

(Dec 13 – 17)

Dec 15 (5-9pm):

  • Project presentation

 

 

Class Participation

25% of the course credit is allocated to encourage student class participation. A roll call may be carried out in the beginning of each class to determine the attendance.

 

Grading

For EEC492

         Class participation 25%

         Projects 75%

For EEC693/793

         Class participation 20%

         Paper summaries 20%

         Projects 60%

 

 

The final grading is based on your accumulated effort in this course. Your final grade is determined approximately based on the following schedule:

A: 90-100%

A-: 85-89%

B+: 80-84%

B: 70-79%

B-: 60-69%

C: 50-59%

D: 40-49% (undergraduate only)

F: (<50% for graduate students; <40% for undergraduate students)