Herzberg Building 4125
Monday, Wednesday 9:30 am - 11:30 am
Tony White
arpwhite (at) scs.carleton.ca
HP 5354, x2208
Office Hours: Tue. and Thu. 1:30 pm - 2:30 pm
The TA(s) for this course will be in HP 1170 during stated office hours.
|
Name |
Office Hours |
|
Thu. 10:00 am-12:00 pm, plus in class |
|
|
In class |
Introduction to developing mobile applications using the Mac OS X platform. Topics include: the Objective-C programming language; development tools; framework API's; and the Quartz graphic system. Extensive practical experience with development for Apple mobile devices such as the iPhone.
- Students are required to have their own laptop with the Mac OS X installed on it, and must bring it to class
- COMP 1405 or equivalent
- S. G. Kochan, Programming in Objective-C 3.0 (3/e)
- E. Burnette, Hello, Android: Introducing Google's Mobile Development Platform
- Please use "COMP 1601" as the subject on any e-mail to the professor.
- Suggestion! Get Dropbox to save your course materials.
- Monday, 2nd April will be the last class.
- Deadline for demonstration of in class work for classes 13-22 is end of class on Monday, 2nd April 2012. There will be no in class work on or after Wednesday 28th March 2012.
- UPDATED! Final exam is scheduled for the 13th April at 2:00 pm in the Field House (FH), rows 58-60. The exam is paper-based like the midterm.
- Assignment #3 posted. Due date is 1st April, 2012 at 11:55 pm.
- There's a talk by Jason Brennan on "Cocoa touch and new features in Objective-C" at Cocoaheads this Thursday. See page for details.
- IMPORTANT: All iPhone in class assignments must be demonstrated to a TA by the end of class on the 27th February. No iPhone in class assignments will be marked after that.
- Midterm exam on 15th February is in-class:
- NOTE: Students with last names starting with A-G will take the exam in HP 4175.
- NOTE: Students with last names starting with H-Z will take the exam in HP 4125 (course class room).
- Coverage is: Chapters 1-9, 14, 15 and 17 of Kochan.
- Exam is paper-based. Write your answers on the exam paper provided.
- Exam will last 1.5 hours.
- Exam will consist of short coding questions and explanations of concepts.
- Assignment #2 posted. Due date is 4th March, 2012.
- Gentle reminder ... DO READ THE BOOK! The pages indicated are examinable.
- IMPORTANT: A note taker is required for a student in this class. Please follow this link for details.
- Added another page on setting up projects for testing; this time a command line project.
- NOTE: The iTunes Bookstore has several very good books on iOS programming and Objective-C. These are free too! iTunes University has free lectures on iOS programming.
- Added page on setting up a project with Unit Tests.
- Assignment #1 posted. Due date is 5th February, 2012.
- Midterm with be the 15th February in class. It will last 1.5 hours.
- The TAs will be present at 9:30 am on Wednesdays. I will join them at 10:00 am.
- Please note: in-class problems MUST be demonstrated to a TA by the end of the class following the class in which the problems were set.
- 4th January: Course Overview
- 9th January: Introduction to Programming in Objective-C
- Reading: Programming in Objective-C 3.0 (3/e), Chapter 2
- Web: NSLog
- In-class: Chapter 2, problems 1-6
- 11th January: Classes, Objects and Methods
- Reading: Programming in Objective-C 3.0 (3/e), Chapter 3 and Chapter 4
- Web: Objective-C: A Primer
- Web: Getting Started
- Web: Data Types
- NEW Reading: Programming in Objective-C 3.0 (3/e), Chapter 7
- In-class: Chapter 3, problem 7 and Chapter 4, problems 6-10
- 16th January: Unit Testing
- Web: OCUnit
- Web: About Unit Testing
- Web: Calculator Testing
- Web: OCUnit API
- Web: Adding testing to an existing project
- In-class: Class 4: Adding tests to Exercises 3.7, 4.7 and 4.10
- NEW Reading: Setting up a project with Unit Testing
- 18th January: Program Looping and Making Decisions
- Reading: Programming in Objective-C 3.0 (3/e), Chapter 5 and Chapter 6
- Web: Looping: The for statement
- Web: While: Making decisions
- Web: Faster enumeration
- In-class: Class 5: Exercises 5.1, 5.3, 5.8 and 6.1, modified program 6.10, write function to return nth prime number
- NEW Reading: Setting up a command line project with Unit Testing
- 23rd January: Foundation Classes: NSNumber and NSString
- Reading: Programming in Objective-C 3.0 (3/e), Chapter 14, 15 pages 305-328
- Web: NSNumber
- Web: NSString
- Web: More NSString
- In-class: Class 6: Modify Exercises 4.7 and 4.10 to use NSNumber, not ints or doubles, including tests
- 25th January: Foundation Classes: NSArray, NSMutableArray, NSDictionary, NSMutableDictionary and NSSet
- Reading: Programming in Objective-C 3.0 (3/e), Chapter 15 pages 328-366
- NEW Web: Class variables
- In-class: Class 7: Exercise 15.9 with modifications
- 30th January: Inheritance, Dynamic Binding, Classes and Exceptions
- Reading: Programming in Objective-C 3.0 (3/e), Chapter 8, 9 pages 149-196
- Web: Exception Handling
- In-class: Class 8: Exercise 8.1
- 1st February: Memory Management
- Reading: Programming in Objective-C 3.0 (3/e), Chapter 17, pages 397-416
- Web: Objective-C reference, including memory management
- Web: Autorelease
- FUTURE Web: Automatic Reference Counting (short)
- Web: Video: Basics of Automatic Reference Counting
- In-class: Class 9: Exercise 17.1, understanding the effects of adding and removing entries in a dictionary...
- 6th February: Model View Controller (MVC) and a first app
- NEW Web: Nib files
- Web: Model View Controller -- the pattern
- Web: Model View Controller -- an introduction
- Web: UIButton tutorial
- Web: UIButton API
- Video: Making Hello World iPhone app
- In-class: Class 10: Create an iPhone view app that has two buttons. For each button ...
- 8th February: Storyboarding and the tabbed view controller
- RECOMMENDED Web: Storyboards
- Web: Project creation ...
- Web: Tutorial: Storyboards and tabbed controllers
- Web: UIPickerView example
- In-class: Class 11: Create an iPhone app based upon the Tabbed Application template ...
- 13th February: Navigation-based view controllers
- Video: Introduction to storyboarding
- Web: UITableViewController
- Web: UITableView
- In-class: Class 12: Create an iPhone app based upon the Navigation Application template ...
- 15th February: Midterm
- 27th February: Installing Eclipse and Android
- Web: Installing Eclipse
- Web: Installing the ADT
- 29th February: Android Fundamentals
- Web: What is Android?
- Web: Android Fundamentals
- Web: Layouts
- Web: Layout tricks
- In-class: Class 15: Create a new Android project with one activity ...
- 5th March: JUnit
- Web: JUnit Tutorial
- Web: Junit 4 Tutorial
- Web: Junit
- In-class: Class 16: JUnit
- 7th March: Activities and Intents
- Web: Activity class
- Web: Understanding the Activity Life Cycle
- Web: Video on Android Activity Lifecycle
- Web: Intents and Intent Filters
- In-class: Class 17: Activities
- 12th March: Menus
- GOOD Web: Android tutorial: nice overview
- Web: Android Menus
- In-class: Class 18: Menus
- 14th March: AutoCompleteTextView and Toasts
- Web: Android Toasts
- Web: Android AutoCompleteTextView
- In-class: Class 19: Toasts
- 19th March: Tabs
- Web: Android TabActivity (deprecated, but still worthwhile for 2.3.X)
- Web: Android TabHost
- Web: Android Tab Layout Example
- Web: Tabbed Example
- Web: Custom Tabs
- Video: Dynamic Tabs
- In-class: Class 20: Tabs
- 21st March: Dialogs
- Web: Android Dialogs
- Web: Android Handler
- In-class: Class 21: Dialogs
- 26th March: Notifications
- Web: Android Intent
- Web: Android Notifications
- Web: Android PendingIntent
- In-class: Class 22: Notifications
- 28th March: Publishing -- NOT EXAMINABLE
- Web: Obtaining a certificate
- Web: Android preparation for publishing
- Web: Android publishing
- In-class: NONE! Completion of outstanding in-class problems.
- 2nd April: Exam review
- In-class: NONE! Completion of outstanding in-class problems.
Objective-C
- Primer
- The Objective-C Programming Language
- Objective-C Runtime Reference
- Object-Oriented Programming with Objective-C
- Learn Objective-C
- Objective-C Classes
- Objective-C Essentials
- Memory Management
- More Memory Management
- Autorelease
- Testing
- Unit Testing Applications
Useful Classes
iPhone
Android
References
Students must use their own machines.
Students will be required to use Eclipse and Xcode during this course.
Assignment of submissions is via WebCT.
You should take the time to ensure that assignments are neat, legible and easy to understand. Any instructions required by the teaching assistants (for example, any assumptions you made about the assignments) should be clearly indicated in a README.TXT file included with the submitted archive. Remember, it is YOUR responsibility to demonstrate that you have understood and completed the assignment. A significant portion of your assignment grade will be given for the readability of them and for your demonstration that you have completed the assigned tasks.
All assignments are counted towards the final grade.
Assignments must be handed in before or on the due date and time. NO LATE ASSIGNMENTS WILL BE ACCEPTED. Instructions on where to submit assignments are provided in class.
Students must retain all assignment results in case of questions regarding correctness of recorded marks. The marks will be posted on-line in WebCT. The students should ensure that the posted marks are correct. Any complaints regarding assignment marks should be brought to the attention of the TA who marked it (only if the TA does not address the problem to your satisfaction should you bring the matter to the instructor). This should be done no later than two weeks after the assignment has been handed back in class. After this time, no remarking will be done.
Copying of assignments is strictly disallowed. On the first occasion, all students involved will be given a mark of 0. On subsequent occasions, students will be asked to withdraw from the course.
A schedule for office hours will be posted on the network the second week of classes.
Assignments 26% In-class 24% Mid-Term Exam 20% Final Exam 30% Passing grades on the term mark (assignments, in-class work, mid-term exam) and the final exam are required to receive a passing grade for the course.
As well as being announced in class, all important information, such as course news, assignments and office hours, will be available on the http://people.scs.carleton.ca/~arpwhite/courses/1601/. It is the student's responsibility to check this web page for new information.
Students with disabilities requiring academic accommodations in this course are encouraged to contact a coordinator at the Paul Menton Centre for Students with Disabilities to complete the necessary letters of accommodation. After registering with the PMC, make an appointment to meet and discuss your needs with me at least two weeks prior to the first in-class test or itv midterm exam. This is necessary in order to ensure sufficient time to make the necessary arrangements.