Introduction to Programming Course Outline

hammerhappysinnSoftware and s/w Development

Nov 9, 2013 (4 years and 8 months ago)


During the first and second quarters of the school year, I will be the
teaching my students the Objective C programming language. Objective C is
the language that is used in iOS App Development. My syllabus is structured
to present programming techniques in small increments so that the students
can construct a firm foundation of programming techniques. During the third
and fourth quarters, my students will be learning how to integrate their
knowledge of Objective C programming with the Cocoa Touch frameworks
implemented in the XCode programming platform. By the end of this course,
the students will be well versed in iOS App Development.
My grading system is based on 100 points per quarter. Each assignment is
awarded a point value as indicated in the class syllabus. Kindly refer to the
Syllabus page of my website for full details.. I am utilizing a blog for student
discussions, a podcast cloud for student produced projects, a wiki cloud for
guided research and the XCode programming platform.
I practice a “flipped classroom”, which means that I have recorded my
lectures and have posted them as the students’ assignment. The benefit of
assigning my lecture as “homework” is that I can maximize the amount of
time that I can spend programming with my students once they arrive for
class in the Media Center. As the students work on their programs, I can touch
base with each student as they are programming. The students can replay my
lecture as they are coding to see a step by step process of how to implement
the technique being covered.
I am providing a Simple Touch Nook to each student that includes an eBook
Steve Jobs’
biography by Walter Isaacson. During the second quarter, my
students will be reporting and blogging about certain aspects of this work.
40 Chestnut Ridge Road Montvale NJ 07645
Introduction to Programming
Course Outline
Additionally, I will be loaning a copy of
iOS Programming: The Big Nerd Ranch
by Conway and Hillegass to each student to support App Development.

If a student would like to bring his own Mac laptop to class, then XCode can
be downloaded to that computer for free via the App Store. The Mac must be
running the Lion or Mountain Lion Operating System. All work will be stored
on a flash drive that I will provide and keep in the Media Center for grading
purposes. If a student wishes to develop code on his own Mac, then the XCode
project must be copied to my flash drive for grading.
Topics Covered During the First Quarter:
Establish Programming Platforms
(Edublogs, Wikispaces, VoiceThread, Gliffy Flowcharting)
Set the target: What makes a great App?
Xcode and You
AGoodStart: Programming Terminology
Types of variables
Using float variables
printf() function
Comparison Operators
Logical Operators
Local Variables, frames and the stack
Global and Static Variables
Integer Division
Operator Shorthand
#include <math.h>
Loops - while
Loops - for
Loops - break
Loops - continue
Loops - do while
Addresses & Pointers -
Getting addresses
Addresses & Pointers -
String address
Addresses & Pointers -
Getting data at address
How many bytes?
The concept of null and nil
Stylish Pointers
Pass By Reference cartesian
and polar coordinates
Structs and typedef
Time Components
The Heap - buffering memory

Topics Covered During the Second Quarter:
Objective C Foundations
and Framework
What are objects?
“NS” and the history of Steve Jobs “Next” OS
Bracket Flavors: { }, [ ], ( ), < >
The anatomy of a message
Objects in Memory
type id
NSLog, NSDate
NSCalendar, NSUInteger
alloc and init - nesting message sends
Multiple Arguments
Sending messages to nil
Using Apple’s Developer Documentation
Your First Class
Accessor Methods - Setters and Getters
Dot Notation vs. Square Brackets
Overriding methods; the concept of super
Object Instance Variables
Object Ownership and ARC
Global Variables & enum
Topics Covered During the Second Quarter - Continued:
Writing Files with NSString and NSData
Protocols & Property Lists
Topics Covered During the Third Quarter:
Advanced XCode Platform Usage
The concept of
event-driven applications
Your First IOS Application!
Working with the AppDelegate
Setting up Views
Running on the iOS Simulator
Wiring Up the Table View
Adding New Tasks
Saving Task Data
Introduction to Cocoa Touch
The Interface Builder

- P a r t O n e
A t t r i b u t e s, S i z e a n d
C o n n e c t i o n s I n s p e c t o r s
T h e I n t e r f a c e B u i l d e r
- P a r t T w o
T h e O b j e c t L i b r a r y
A d d i n g a n N S T a b l e V i e w
S e l e c t i n g a V i e w f r o m a S t a c k
R e s i z i n g C o l u m n s a n d s e t t i n g t h e a u t o s i z e m a s k
M a k i n g C o n n e c t i o n s
S e l e c t i n g a n a c t i o n
C o n n e c t i n g t h e T a b l e V i e w ’ s D a t a S o u r c e
E d i t i n g O b j e c t i v e C i n t o y o u r c o d e
W r i t i n g I n i t M e t h o d s
U s i n g A c c e s s o r s
I n t r o d u c t i o n t o B l o c k s
R e t u r n i n g b l o c k v a l u e s
S w i t c h S t a t e m e n t s

Topics Covered During the Third Quarter:
Managing Memory with ARC
Delegation and Core Location
MapKit and Text Input
Subclassing UIView and UIScrollView
Notification and Rotation
View Controllers
UITableView and UITableViewController
Topics Covered During the Fourth Quarter:
UIPopOverController and Modal View Controllers
Saving, Loading and Application States
Subclassing UITableViewCell
Core Data
Touch Events and UIResponder
UIGestureRecognizer and UIMenuController
Core Animation Layer
Controlling Animation with CAAnimation
Web Services and UIWebView