Docstoc

Lecture 1 _PPTX_ - ELEC 694

Document Sample
Lecture 1 _PPTX_ - ELEC 694 Powered By Docstoc
					                              COMP 446 / ELEC 446
                          Mobile Wireless Services Project



Scott Cutler
Professor in the Practice of Computer Technology
Department of Computer Science
Department of Electrical and Computer Engineering
cutler@rice.edu                                     Wednesday 2-4, HZ 122
8/25/10
Today’s Agenda
 Goals
 People
 History
 Resources
 Syllabus
 Next Week



SEC - 8/25/10    COMP 446 / ELEC 446 - Week 1   2
GOALS

SEC - 8/25/10   COMP 446 / ELEC 446 - Week 1   3
Goals
 Learn what differentiates programming a Smartphone from other software
     development.

 Major Technologies Covered
           Apple iPhone / Xcode / Interface Builder / Objective-C

 Covered in less detail (1 or 2 lectures each)
           Google Android
           Windows Phone 7
           Web services / ASP.NET
           MS-SQL Server
           JavaScript iPhone Web Applications

 Create a series of small applications in the above area leading to a larger final project

SEC - 8/25/10                              COMP 446 / ELEC 446 - Week 1                 4
PEOPLE

SEC - 8/25/10   COMP 446 / ELEC 446 - Week 1   5
Who Am I?




SEC - 8/25/10   COMP 446 / ELEC 446 - Week 1   6
Birth Through High School




                                                New Haven, CT




SEC - 8/25/10    COMP 446 / ELEC 446 - Week 1              7
MIT




                                               Cambridge, MA




                                                BS      1973
                                                MS      1973
                                                Ph.D.   1976
                                                Zork    1979
SEC - 8/25/10   COMP 446 / ELEC 446 - Week 1               8
GE Research and Development




                                                    Niskayuna, NY




                                               First business use of PC
                                               (TRS-80) in GE

SEC - 8/25/10   COMP 446 / ELEC 446 - Week 1                      9
Tandy Electronics (Radio Shack)




                                                   Fort Worth, TX




                                                 Deskmate
                                                 - First graphical Quicken
                                                 - First graphical Lotus
                                                 - Foundation for AOL


SEC - 8/25/10     COMP 446 / ELEC 446 - Week 1                      10
Chips and Technologies




                                                     San Jose, CA




                                                Wingine Windows Graphics Engine

SEC - 8/25/10    COMP 446 / ELEC 446 - Week 1                       11
Digital Equipment Corporation




                                                  Boston, MA




                                                 CTO – PC Group


SEC - 8/25/10     COMP 446 / ELEC 446 - Week 1             12
Compaq




                                                   Houston, TX



                                               CTO – PC Group




SEC - 8/25/10   COMP 446 / ELEC 446 - Week 1                    13
Rice University (2001 – Present)




                                                                          Houston, TX

                                                     Professor in the Practice of Computer Technology
                                                     Department of Computer Science
                                                     Department of Electrical and Computer Engineering

                                                     ELEC 694 / COMP 694
                                                     Future Personal Computing Technology


                                                     COMP 446 / ELEC 446
                                                     Mobile Wireless Services Project


                                                     Digital Media / Consumer Electronics / Personal
                                                     Computing



SEC - 8/25/10         COMP 446 / ELEC 446 - Week 1                                          14
Who are you?




SEC - 8/25/10   COMP 446 / ELEC 446 - Week 1   15
Current Roster
                 Julia Botev
                    COMP, SR, McMurtry Julia.K.Botev@rice.edu
                 Eric Cheng
                    COMP, GR eric.cheng@rice.edu
                 Jesus Cortez
                    COMP, JR, Jones JesusCortez@rice.edu
                 Graham De Wit
                    ELEC, SR, Wiess graham.dewit@rice.edu
                 Ashley Herron
                    ELEC, SR, Martel Ashley.N.Herron@rice.edu
                 Tara Hong
                    ELEC, SR, Will Rice Seoyeon.Hong@rice.edu
                 Vic Hu
                    ELEC, SR, Wiess mrwho@rice.edu
                 Marcos Hung
                    BIOE, GR Marcos.G.Hung@rice.edu

SEC - 8/25/10                         COMP 446 / ELEC 446 - Week 1   16
Current Roster (2)
                   Jin Kim
                        COMP, GR Kyujin.Kim@rice.edu
                   Kevin Lin
                        COMP, SO, McMurtry Kevin.S.Lin@rice.edu
                   Robyn Moscowitz
                        COMP, JR, McMurtry Robyn.A.Moscowitz@rice.edu
                   Norman Pai
                        ELEC, SR, Hanszen Norman.L.Pai@rice.edu
                   Josh Rykowski
                        COMP, GR Joshua.Rykowski@rice.edu
                   Ivan Van
                        COMP, SR, Will Rice, i.van@rice.edu
                   Jeff Yeh
                        ELEC, SR, Hanszen jeff.yeh@rice.edu
                   Aron Yu
                        ELEC, SR, Hanszen Aron.Yo@rice.edu


SEC - 8/25/10                               COMP 446 / ELEC 446 - Week 1   17
Current Roster (3)
                   Michael Lo
                        ELEC, GR mlo@rice.edu
                   Elliot Ng
                        ELEC, GR elliottng@rice.edu
                   Rick Manning
                        COMP, SR, Jones rick.manning@rice.edu
                   Henry Zhang
                        ELEC, SR, Jones qz1@rice.edu
                   Jason Xu
                        ELEC, SR, Brown jax1@rice.edu
                   Catherine Elder
                        ELEC, SR, Hanszen cje1@rice.edu




SEC - 8/25/10                               COMP 446 / ELEC 446 - Week 1   18
Course TA
 Richard Latimer




SEC - 8/25/10       COMP 446 / ELEC 446 - Week 1   19
HISTORY

SEC - 8/25/10   COMP 446 / ELEC 446 - Week 1   20
History
 ELEC 446 started Jan 03 using iPAQs, 802.11b and .Net (1.0) Web Services
       Operating system premature, poor connectivity
    Continued a couple more semesters with next version of software, but connectivity still an issue
    COMP 446 cross registered version started fall 05 with emphasis on smartphones
       Not well organized
       Windows Mobile 3 and GPRS didn’t cut it
    Reasonable Internet Connectivity, Fall 06
       Beta tools still an issue
    2008 was a banner year for Smartphones
       Introduction of the iPhone app store
       Initial shipments of Google’s Android
       Windows Mobile becoming much less relevant
       Wide deployment of 3G networks


SEC - 8/25/10                              COMP 446 / ELEC 446 - Week 1                          21
2009
 iTunes App Store a HUGE success

 iPhone remains the smart phone to beat
           Limited to AT&T and others want iPhone competitor
 Great support for Google Android
           Second Generation phones starting to come out
 New competition from Palm

 Blackberry and Nokia still holding on to large customer base

 Windows Mobile continues to lose ground – but many have been hurt counting Microsoft out;
     particularly in an important area.
 Ecosystem taking smart phones seriously and smart phones starting to thrive



SEC - 8/25/10                               COMP 446 / ELEC 446 - Week 1                  22
2010
 Smartphones everywhere

 iTunes App Store grows
           Close to 250K apps
           Close to 50K publishers
           Approx 375 apps submitted per day
           Stats per http://148apps.biz/app-store-metrics/

 iPad released.
           Same basic foundation as iPhone and iPod Touch
           Incredible growth
           Launches new product category – different than all previous tablet attempts



SEC - 8/25/10                                      COMP 446 / ELEC 446 - Week 1           23
2010
 2nd Quarter stats: Sales numbers and ranking differ by research study, but clearly show:
           Fast rise by Android platform and modest % rise by iPhone

           Decrease in market share from Symbian, RIM and Windows Mobile, Palm

 Android 2.x and various ‘Droid’ devices provide first real competition to the iPhone.
    About 200,000 Android devices being sold every day.

 Palm fades – but is now part of HP – but is HP fading??

 Blackberry not giving up

 Windows Phone 7 announced based on Silverlight and XNA programming stack

 Strong rumors of Verizon iPhone

 Sprint ships first 4G phone

 New announcements every day

SEC - 8/25/10                                         COMP 446 / ELEC 446 - Week 1           24
  Results from 2009 Class
The Good News                                        The Not as Good News
  9 Students – nice small class                       Course filled to limit of 10 on first day
  Creation of Rice iPhone Application                  Limit raised to 16 on second day, filled in hours
  Great Evaluations                                    Acquired larger room – class size now 22
      C-Overall:          1.00 / 1.93                          Will make some adjustments because of class size.
      C-Organization:     1.00 / 1.91                      More topics to cover in 2010
      C-Challenge:        1.00 / 1.85                          Some things had to be de-emphasized to make room
      C-Assignments:      1.38 / 1.95
                                                            Two important and interesting evaluation items:
      I-Organization:     1.13 / 1.69
                                                                C-Workload:             4.00 / 3.01
      I-Presentations:    1.25 / 1.89
      I-Responsiveness:   1.13 / 1.69                          I-Knowledge             1.63 / 1.64
      I-Atmosphere:       1.13 / 1.71                      Second lecture was the worst lecture I have
      I-Independence:     1.13 / 1.88                       ever given!
      I-Stimulation:      1.13 / 1.71                          Will try to do much better this semester!
      I-Effectiveness:    1.13 / 1.83
      I-Responsibility:   1.00 / 1.53
  SEC - 8/25/10                          COMP 446 / ELEC 446 - Week 1                                         25
Prerequisites
    Historical Prerequisites:
       With a Windows Mobile focus, comfort with Visual Studio and .Net a great plus
                   While we will use Visual Studio for ASP.Net development, Windows Mobile will not be the prime focus of this course in 2010.
           Objective C, XCode and Cocoa Touch would be nice; however we will cover that in this class and no experience is
            assumed
           COMP 314, COMP 410 or COMP 415 provide a foundation in similar problem solving; however we are not going to build
            on any of their technologies

    As such, formal prerequisites for COMP/ELEC 446 were dropped
       There are no other courses teaching Xcode, Objective-C or ASP.Net
       Understanding of object oriented programming a clear plus
       An interest in cool connected mobile devices is a must.


Disclaimer:
 I understand the technology and have worked extensively in this area. I have spent the past five years on complex ASP.NET
    applications and have written some Smartphone apps; however I do not expect to be teaching generic Visual Studio
    programming techniques. While I have programmed a few iPhone applications, I am FAR from considering myself an
    XCode, Objective-C or Cocoa Touch expert.


SEC - 8/25/10                                                    COMP 446 / ELEC 446 - Week 1                                                     26
RESOURCES

SEC - 8/25/10   COMP 446 / ELEC 446 - Week 1   27
Hardware
 Server
    Windows 2008 Server, COMP446.rice.edu [128.42.172.4],located in my office
    DiscountASP.Net account, www.comp446.com/ws<Name> where Name is student name
     (e.g. www.comp446.com/wsCutler)
    Access to MS SQL Server 2008 located on DiscountASP.Net
    Credentials to be set up and disseminated later.

 Apple iPhone
           iPhone or iPod Touch (OS 4.0 or greater)
           iPad (OS 3.2 or greater)
           A few older iPhones will be available for student use
           IT run Campus Macs loaded with XCode software environment and emulators
 Windows Phone 7 Device(s) may be available
 A few Android devices are available

SEC - 8/25/10                              COMP 446 / ELEC 446 - Week 1               28
Software
 Xcode environment ships with every Mac on OSX distributions
    Loaded on IT supported campus Macs running OSX Snow Leopard or greater if you do not
     have access to a Mac
    Two dedicated Mac Minis available through LogMeIn.

 Visual Studio 2010 Professional
           I have 5 copies with me if students need them
 MS SQL Server 2008 on external DiscountASP.Net account
 iPhone Documentation
           Docs available at http://developer.apple.com
           Students will be enrolled in Rice University’s iPhone Developer Program




SEC - 8/25/10                                     COMP 446 / ELEC 446 - Week 1        29
Course Format
 One formal classroom meeting a week
    Round table, project management style
    Likely optional Monday review / Q&A session with TA

 Typical class flow:
    Events of the week
    General discussion / review of previous week’s technology or assignment
    Short lecture on a technology.
    Discussion of current project, future projects and / or next step in current project
 Homework
    Weekly projects through 10/27/10 class (due 11/02/10)
    Homework due on Tuesdays
                   You will have all the resources needed to start early and get ahead.
         Final project 11/3/10 – 12/1/10
         Weekly videos (mandatory thorough 11/3/10, optional after that)
                   Videos are an integral part of the class
SEC - 8/25/10                                             COMP 446 / ELEC 446 - Week 1      30
iPhone Development Videos
 Leveraging iTunes-U, Stanford University CS193P course.
    Significant homework will be in the form of watching external 1hr videos and some of the
     coordinated exercises.
                   Expect 2 full and possibly one optional video per week as well as one application through the first
                    half of the semester
                   You will eventually watch all of the CS193P lectures, but only do problems up to and including the
                    Paparazzi 3 assignment
           May allow us to finish a bit earlier many weeks
           This was an experiment last year which proved quite effective. It will be difficult to do the
            assignments without watching the videos. I suggest getting a head start on the videos.
 Logistics:
    iTunes => App Store => iTunes U => Stanford => iPhone Application Programming
                   45 Items – suggest you download all of them now
           http://www.stanford.edu/class/cs193p - Download winter 2010 session available at
            http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
SEC - 8/25/10                                         COMP 446 / ELEC 446 - Week 1                                  31
Optional Sessions and Support
 To handle the larger class size we are adding TA support
 Exact format still being determined but likely elements are:
           Monday office hours with one of the TAs.
           Ability to email questions to me or to TAs.
           TAs instructed to respond conceptually – not just provide
            solutions. Knowing where to look or how to debug is a very
            important skill for you to learn.




SEC - 8/25/10                      COMP 446 / ELEC 446 - Week 1          32
SYLLABUS

SEC - 8/25/10   COMP 446 / ELEC 446 - Week 1   33
Many Mobile Application Types
 Dedicated, native mobile application
    iOS (iPhone, iPad, iPod Touch), Android, Windows Phone, Blackberry, etc.

 Dedicated application calling a web service
 Mobile interface to a heavy lifting server application
 Mobile Web Application
    mobile.google.com, mobile.live.com, mobile.yahoo.com
    iPhone / Safari web application

 Widgets
 Important, but not covered in 446 are mobile J2ME or applications meant for mobile
     Java browsers. We concentrate on genuine smartphones.




SEC - 8/25/10                          COMP 446 / ELEC 446 - Week 1                34
Syllabus Overview
 First Half of Semester
           Pedagogical approach to iPhone programming through a series of
            lectures and assignments that build on each other
           Mandatory iTunes-U lectures covering basic iOS functionality

 Second Half of Semester
           Dominated by one large project worked on by teams of 2.
                   Students choose projects, partners, platforms
           Lectures covering subjects of general interest to all, but specific
            interest only to those working with the technologies

SEC - 8/25/10                                COMP 446 / ELEC 446 - Week 1         35
COMP 446 (tentative) Syllabus
 8/25/10       Introduction / What makes mobile apps special
                   Assignment: Load Visual Studio – Due 8/30/10, Access a Mac, Download CS193P materials
 9/1/10        Intro to Mac OS X and Cocoa Touch, Objective-C, Dev Tools, Using Objective-C, Foundation framework
                   Videos:     Lecture 1. Introduction to Mac OS X, Cocoa Touch, Objective-C and Tools (January 5, 2010)
                                Lecture 2. Objective-C and Foundation Framework (January 7, 2010)
                   Assignment: Hello Rice [1a] and WhatATool 1 [1b] (Due 9/7/10)
 9/8/10        Discussion of first applications
                   Videos:     Lecture 3. Custom Classes, Object Lifecycle, Autorelease, Objective-C Properties (January 12, 2010)
                                Lecture 4. Building an Application; Model, View, Controller; Nib Files; Controls and Target-Action (January 14, 2010)
                                Lecture 4a Xcode, Finding Help, Debugging (January 15, 2010)
                   Assignment: WhatATool 2 [2a] and HelloPoly I [2b] (Due 9/14/10)
 9/15/10       ASP.Net with a little HTML
                   Videos:     Lecture 5. Views, Drawing, and Animation (January 19, 2010)
                                Lecture 6. Designing iPhone Applications, Model-View-Controller, View Controllers (January 21, 2010)
                   Assignment: HelloPoly II [3] (Due 9/21/10)
 9/22/10       iPhone (pseudo) Web Apps / Browser Capabilities
                   Videos:     Lecture 7. Navigation & Tab Bar Controllers (January 26, 2010)
                                Lecture 8. Scroll Views and Table Views (January 28, 2010)
                   Assignment: Paparazzi 1 (Due 9/28/10)
 9/29/10       Creating and Consuming Web Services
                   Videos:     Lecture 9. Data in Your iPhone App (February 2, 2010)-
                                Lecture 10. Performance (February 4, 2010)
                   Assignment: Paparazzi 2 (Due 10/05/10)
 10/6/10       SQL 101
                   Videos:     Lecture 11. Text Input and Presenting Content Modally (February 9, 2010)
                                Lecture 12. Web Views; Locations and Maps (February 11, 2010)
                    Assignment: Paparazzi 3 (Due 10/19/10, but watch lectures prior to 10/13/10 class)




SEC - 8/25/10                                                                       COMP 446 / ELEC 446 - Week 1                                        36
COMP 446 (tentative) Syllabus
 10/13/10      iPad Development / iOS 4
                   Videos:     Lecture 13. Address Book: Putting People in Your App (February 16, 2010)
                                Lecture 14. Touch Events & Multi-touch (February 18, 2010)
                                Lecture 12a: Designing for the iPad (February 12, 2010)
                    Assignment: Final Project Proposal (Due 10/19/10 along with Paparazzi 3)
 10/20/10      Android 1
                   Videos:     Lecture 15. iPhone Device APIs; Location, Accelerometer & Camera; Battery Life & Power Management (February 23, 2010)
                                Lecture 16. Audio APIs, Video Playback, Settings (February 25, 2010)
                   Assignment: Final Project, Stage 1 (Due 10/26/10)
 10/27/10      Android 2
                   Videos:     Lecture 17. Bonjour, NSStream, GameKit (March 2, 2010)
                                Lecture 18. Unit Testing; Fun with Objective-C; Localization (March 4, 2010)
                   Assignment: Advanced Feature App or iPad Application (Due 11/02/10)
 11/3/10       Windows Phone 7, Final Project Prep
                   Videos:     Lecture 19. OpenGL ES Basics (March 9, 2010)
                                Lecture 20. From Student to Startup: Lessons from a CS193P Alumnus (March 11, 2010)
                   Assignment: Final Project, Stage 2 (Due 11/09/2010)
 11/10/10      Final Project Prep
                   Videos:     Yelp Monocle (February 6, 2010)
                                Evernote (February 19, 2010)
                                Bump (February 26, 2010)
                   Assignment: Final Project, Stage 3 (Due 11/16/2010)
 11/17/10      Final Project Prep
                   Videos:     Publishing on the App Store (March 5, 2010)
                                LinkedIn: Important Life Lessons on CoreData & GameKit (March 12, 2010)
                   Assignment: Final Project Presentation (Due 12/01/2010)
   11/24/10    Thanksgiving – Continue Final Projects on your own
   12/1/10     Demonstrate Final Projects to class
   12/5/10     Class Offsite – Sunday (tentative)
   Finals      Submission of final code due by official finals date



SEC - 8/25/10                                                                      COMP 446 / ELEC 446 - Week 1                                         37
Final Project
 To be determined by end of 6th week
     Topic chosen class before mid semester break
       
    Proposal submitted by 10/19/10
    Full Spec 10/26/10
    Various milestones including presentation to class on 12/01/10
    Final code for project incorporating comments from presentation due on the official
     finals date of the course.
    This is VERY important: If you do not have a great project definition, the 2nd half of
     the course will suffer. With a great project, this will be an exciting course.
 Due to the size of the class, it is suggested that students work in pairs
 Great if your project could have life after the class finishes



SEC - 8/25/10                         COMP 446 / ELEC 446 - Week 1                     38
Grading
 20% Class participation
 30% Assignments other than the final project
 50% Final Project
           10% Project Specification
           10% Major Features complete
           10% Presentation to the class
           20% Overall project as demonstrated by final code



SEC - 8/25/10                      COMP 446 / ELEC 446 - Week 1   39
Expectations
 Have Fun
 I will provide some toys, hardware and software – make something of it
 Energy beyond one meeting a week
     Don’t wait until the night before class to start assignments– you will not succeed
       
    Team and sub-team meetings on your own
 Others will depend on you
    Team effort


 Please remember that this new class format is still an experiment
           Things may shift as we go along
           Feedback highly encouraged




SEC - 8/25/10                            COMP 446 / ELEC 446 - Week 1                 40
Week 2
 Load non-Mac infrastructure
    Make sure you can access external web sites: http://comp446.rice.edu and http://www.comp446.com
                   Course information and slides posted to www.comp446.com.
 Load software
    Download Visual Studio 2010
                   I have two copies on DVD if you wish
           Gain access to a Mac. Make sure Xcode is loaded on it. If personal, load Xcode (free)
           Download all lectures from iTunes U and http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
 I will enroll you in the Apple Developer Program. Make sure you respond quickly to the
  invitations you will receive from Apple.
 Start thinking about big project
 Really – start thinking about big project!
 Next week is my one and only Objective-C lecture. The rest will be on video.




SEC - 8/25/10                                              COMP 446 / ELEC 446 - Week 1                                     41
Discussion