420 likes | 552 Views
Wednesday 2-4, HZ 122. 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 8/25/10. Today’s Agenda. Goals People History
E N D
Wednesday 2-4, HZ 122 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 8/25/10
Today’s Agenda • Goals • People • History • Resources • Syllabus • Next Week COMP 446 / ELEC 446 - Week 1
Goals COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
People COMP 446 / ELEC 446 - Week 1
Who Am I? COMP 446 / ELEC 446 - Week 1
Birth Through High School New Haven, CT COMP 446 / ELEC 446 - Week 1
MIT Cambridge, MA BS 1973 MS 1973 Ph.D. 1976 Zork 1979 COMP 446 / ELEC 446 - Week 1
GE Research and Development Niskayuna, NY First business use of PC (TRS-80) in GE COMP 446 / ELEC 446 - Week 1
Tandy Electronics (Radio Shack) Fort Worth, TX Deskmate - First graphical Quicken - First graphical Lotus - Foundation for AOL COMP 446 / ELEC 446 - Week 1
Chips and Technologies San Jose, CA WingineWindows Graphics Engine COMP 446 / ELEC 446 - Week 1
Digital Equipment Corporation Boston, MA CTO – PC Group COMP 446 / ELEC 446 - Week 1
Compaq Houston, TX CTO – PC Group COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
Who are you? COMP 446 / ELEC 446 - Week 1
Current Roster • Julia Botev • COMP, SR, McMurtryJulia.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, Wiessgraham.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, Wiessmrwho@rice.edu • Marcos Hung • BIOE, GR Marcos.G.Hung@rice.edu COMP 446 / ELEC 446 - Week 1
Current Roster (2) • Jin Kim • COMP, GR Kyujin.Kim@rice.edu • Kevin Lin • COMP, SO, McMurtryKevin.S.Lin@rice.edu • Robyn Moscowitz • COMP, JR, McMurtryRobyn.A.Moscowitz@rice.edu • Norman Pai • ELEC, SR, HanszenNorman.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, Hanszenjeff.yeh@rice.edu • Aron Yu • ELEC, SR, HanszenAron.Yo@rice.edu COMP 446 / ELEC 446 - Week 1
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, Hanszencje1@rice.edu COMP 446 / ELEC 446 - Week 1
Course TA • Richard Latimer COMP 446 / ELEC 446 - Week 1
History COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
Results from 2009 Class • The Good News • 9 Students – nice small class • Creation of Rice iPhone Application • Great Evaluations • C-Overall: 1.00 / 1.93 • C-Organization: 1.00 / 1.91 • C-Challenge: 1.00 / 1.85 • C-Assignments: 1.38 / 1.95 • I-Organization: 1.13 / 1.69 • I-Presentations: 1.25 / 1.89 • I-Responsiveness: 1.13 / 1.69 • I-Atmosphere: 1.13 / 1.71 • I-Independence: 1.13 / 1.88 • I-Stimulation: 1.13 / 1.71 • I-Effectiveness: 1.13 / 1.83 • I-Responsibility: 1.00 / 1.53 • The Not as Good News • Course filled to limit of 10 on first day • Limit raised to 16 on second day, filled in hours • Acquired larger room – class size now 22 • Will make some adjustments because of class size. • More topics to cover in 2010 • Some things had to be de-emphasized to make room • Two important and interesting evaluation items: • C-Workload: 4.00 / 3.01 • I-Knowledge 1.63 / 1.64 • Second lecture was the worst lecture I have ever given! • Will try to do much better this semester! COMP 446 / ELEC 446 - Week 1
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. COMP 446 / ELEC 446 - Week 1
Resources COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
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. COMP 446 / ELEC 446 - Week 1
Syllabus COMP 446 / ELEC 446 - Week 1
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. COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
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) COMP 446 / ELEC 446 - Week 1
COMP 446 (tentative) Syllabus • 10/13/10iPad 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 COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
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 COMP 446 / ELEC 446 - Week 1
Week 2 • Load non-Mac infrastructure • Make sure you can access external web sites: http://comp446.rice.eduand 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. COMP 446 / ELEC 446 - Week 1