510 likes | 616 Views
Wednesday 2-3:30, DH 1046. COMP 446 / ELEC 446 Mobile Device Applications. Scott Cutler Professor in the Practice of Computer Technology Department of Computer Science Department of Electrical and Computer Engineering cutler@rice.edu 8/22/12. Goals.
E N D
Wednesday 2-3:30, DH 1046 COMP 446 / ELEC 446 Mobile Device Applications Scott Cutler Professor in the Practice of Computer Technology Department of Computer Science Department of Electrical and Computer Engineering cutler@rice.edu 8/22/12
Goals • Learn what differentiates programming a Smartphone from other software development. • Provide Thorough Exposure to iOS Ecosystem • Apple iPhone / iPad / Xcode / Objective-C • Cover (but in less detail ~1 lecture each) • Google Android • Windows Phone 8 • Web services / HTML / HTML 5 / ASP.NET • SQL Server COMP 446 / ELEC 446 - Week 1
Process • Learn iOS and Objective-C through a series of small applications • Leverage an excellent set of online videos to augment a mixture of lectures and seminars. • Develop an awareness of the changing factors influencing the mobile industry. • Apply this knowledge for a final project taking most of the second half of the semester 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 • Important, but not covered in 446 are Widgets, mobile J2ME or applications meant for mobile Java browsers. We concentrate on genuine smartphones. 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 Wingine Windows Graphics 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 COMP / ELEC 694 Future Personal Computing Technology COMP / ELEC 446 Mobile Device Applications Digital Media Personal Electronics Useful Applications COMP 446 / ELEC 446 - Week 1
Who are you? COMP 446 / ELEC 446 - Week 1
Current Roster • Victor Acuna • Ryan Artecona • Gbenga Badipe • Joel Baranowski • Peter Chang • Joan Chao • Heaven Chen • Alex Chiu COMP 446 / ELEC 446 - Week 1
Current Roster (2) • Lingo Dai • Weibo He • SahilHingorani • Bill Robertson • Frank Salinas • Tyler Siegert • Austin Witt • Matthew Zhao COMP 446 / ELEC 446 - Week 1
Course TA • Richard Latimer COMP 446 / ELEC 446 - Week 1
COMP 446 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 by 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 – others wanted iPhone competitor • Great support for Google Android • Second Generation phones started 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
2011 • Smartphones more the rule than the exception in many environments • iTunes App Store grows • Close to 460K apps (over 570K have been created) • Over 100K publishers • Approx 744 apps submitted per day • Stats per http://148apps.biz/app-store-metrics/ • iPad 2 released. • Many competitors. None getting any traction COMP 446 / ELEC 446 - Week 1
2012 • iTunes App Store grows • Close to 700K apps (almost 900K have been created) • Over 175K publishers • Stats per http://148apps.biz/app-store-metrics/ • 4g iPad • Google Android dominates sales, but iPhones still seen much more than Android • Apple and Samsung by far the dominant manufacturers. • Blackberry continues to spiral, Palm gone, Nokia still struggles • Windows Phone gaining respect and momentum; however still a distant third player COMP 446 / ELEC 446 - Week 1
2009 COMP 446 – iPhone Transition • Mobile devices proliferating exponentially • General consensus was that smartphones are for upper end market only • But that is not the view of a technologist • Strong desire to teach iPhone app class • I was a Windows, .Net person • Did not know Xcode or iOS • iTunes University iOS class • Taught by Apple people and at an elite university level • Could handle the heavy lifting language portion of the class COMP 446 / ELEC 446 - Week 1
Results from 2009 Class • The Good News • First class to leverage iTunes-U • 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 • C-Workload: 4.00 / 3.01 • I-Knowledge 1.63 / 1.64 • Class became very popular COMP 446 / ELEC 446 - Week 1
Results from 2010 Class • 2010 Course filled to limit of 10 on first day • Limit raised to 16 on second day, filled in hours • Acquired larger room • Registration grew to 22 before first class. • Accepted 5 walk-ins for a total of 27 • More topics to cover in 2010 • Some things had to be de-emphasized to make room • Evaluations were good, but markedly worse than 2009. • Far too many people to effectively support • Some students signed up for course because of cancellation of another specialization course. COMP 446 / ELEC 446 - Week 1
2011 Class • 2011 Course filled to limit of 16 on first day • Limit raised to 17, but only through reclassification of one student • Bipolar reviews. Predominantly outstanding but … • A few students did not at all like the concept of highly leveraging the Stanford videos. • Important takeaway – most undergraduates have not had experience with SQL and HTML/JavaScript – things that are very important for real mobile applications. COMP 446 / ELEC 446 - Week 1
Prerequisites • Formal prerequisites for COMP/ELEC 446 dropped • There are no other courses teaching Xcode, Objective-C, ASP.Net or other web programming • Experience from last few years clearly shows need for: • An interest in cool connected mobile devices is a must. • Homework will be satisfying when completed, but will likely take a long time. • Understanding of basic object oriented programming concepts (class, instance, inheritance, etc.) • Without OOP foundation, you will get lost in Objective-C tutorial and likely have trouble catching up COMP 446 / ELEC 446 - Week 1
Object-Oriented Terms • Class • Instance • Message • Method • iVar • Inheritance • Super/Subclass • Protocol • Source: CS193p Lecture #1 - description/template for an object - manifestation of a class - sent to objects to make them act - code invoked by a Message - object-specific storage - code-sharing mechanism - inheritance relationships - non-class-specific method definition COMP 446 / ELEC 446 - Week 1
Resources COMP 446 / ELEC 446 - Week 1
Hardware / Software • Software: Xcode including iOS simulator • Note current Xcode version = 4.4.1 • Development Macs • Students encouraged to get a Mac • Campus Macs loaded with XCode 4.4.0 software and emulators • User ID: xcode, Password: xcode (will be needed to run developer tools). • Dedicated Mac Mini available for class use via LogMeIn • User ID: COMP446@scottcutler.com, Password given out in class. • Devices • A few older (personal) iPhones available for student use • 2 Windows Phone 7 Device available • A few (old) Motorola Droid (Android) devices are available COMP 446 / ELEC 446 - Week 1
Optional Hardware / Software • Server (likely not needed by students) • DiscountASP.Net account, www.comp446.com/ws<Application> where Application is your application name (e.g. www.comp446.com/wsAssignments) • Access to MS SQL Server 2008 located on DiscountASP.Net • Credentials to be set up and disseminated later if needed. COMP 446 / ELEC 446 - Week 1
Software • Course Website: www.comp446.com • assignment submission website linked through www.comp446.com • iPhone Developer Program • iPhone Documentation available at http://developer.apple.com • Students will be enrolled in Rice’s iPhone University Developer’s Program • You should have already responded to invitations • Xcode available free on Macs • iTunes-U and Stanford CS193P resources freely available 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 • 6 initial projects; most lasting one week. • Homework and mandatory videos • Videos must be watched before class • Assignments due Friday at 6:00am (think of it as Thursday at 30:00). • You will have all the resources needed to start early and get ahead. • Final project • Topic picked before October 10th 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 their 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, and do problems up to and including assignment 6 (although assignment 6 may have a required and an optional component) • Experiment when it started three years ago which proved quite effective. • It will be nearly impossible to do the assignments without watching the videos. • Logistics: • iTunes => App Store => iTunes U => Stanford => iPhone Application Programming • Subscribe and download everything from Fall 2011 course offering • http://www.stanford.edu/class/cs193p- Download fall 2011 session available at http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2011-fall COMP 446 / ELEC 446 - Week 1
OS X & Xcode version • OS X Mountain Lion has desirable but not required features • Developing iOS apps does not require much disk space or GHz • Large screen not needed but helpful • University Macs running Lion • Xcode 4.4 (or 4.4.1) is desired, not required • Definite improvement over in integration and debugging • Not materially different than version on videos. • iTunes videos use Xcode 4.2. Read release notes for differences. COMP 446 / ELEC 446 - Week 1
Optional Sessions and Support • Sunday or Monday office hours with TA. Schedule to be determined between class and Richard Latimer. • Ability to email questions to me at any time. • Can email Richard Latimer as well. • Level of support will vary over semester • High level of support at the beginning. • Support decreasing each project as over time as knowing where to look or how to debug is a very important skill for you to learn. • Richard instructed to respond conceptually – not just provide solutions. COMP 446 / ELEC 446 - Week 1
Syllabus 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. • Typically solo final projects. • Students choose projects, platforms • There will be significant guidelines and possibly suggested projects • Optional videos covering subjects of general interest to all, but specific interest only to those working the technology COMP 446 / ELEC 446 - Week 1
COMP 446 (tentative) Syllabus • Lecture 1 - 8/22/12 - Introduction • Watch before: None • Assignment: #1 - Calculator • Assignment due: Friday, 8/31 6:00 am (Thursday 30:00) • Lecture 2 - 8/29/12- Assignment 1 issues and questions from videos • Watch before: 1, 2 • Assignment: #2 – Function Calculator • Assignment due: Friday, 9/7 6:00 am (Thursday 30:00) • Lecture 3 - 9/05/12 - Assignment 2 issues and questions from videos • Watch before: 3, 4 (demo part) • Assignment: #3 – Graphing Universal Calculator • Assignment due: Tuesday, 9/18 6:00 am (Thursday 30:00) • Lecture 4 - 9/12/12 - Assignment 3 issues and questions from videos • Watch before: 4 (post demo), 5, 6 • Assignment: Continue with #3 – Graphing Universal Calculator • Assignment due: Tuesday, 9/18 6:00 am (Monday 30:00) • Lecture 5 - 9/19/12 - Assignment 3 issues and questions from videos • Watch before: Watch 7 before class, 8 after class • Assignment: #4 – Fiickr Top Places • Assignment due: Friday, 9/28 6:00 am (Thursday 30:00) COMP 446 / ELEC 446 - Week 1
COMP 446 (tentative) Syllabus • Lecture 6 - 9/26/12 - Assignment 4 issues and questions from videos • Watch before: 8, 9 very beginning of 10 • Assignment: #5 – Fiickr Map Places • Assignment due: Friday, 10/5 6:00 am (Thursday 30:00) • Lecture 7 - 10/03/12 - Assignment 5 issues and questions from videos • Watch before: 10 (after Tab Bar), 11, 12 • Assignment: 1: #6 – Fiickr Core Data - Likely to be broken into required and optional parts - Optional part required for A+2: Final Project Topic (due before next class) • Assignment due: Friday, 10/12 6:00 am (Thursday 30:00) • Lecture 8 - 10/10/12 - Assignment 6 issues and SQL • Watch before: 13, 14 • Assignment: Final Project Proposal • Assignment due: Tuesday, 10/16 6:00 am (Monday 30:00) • Lecture 9 - 10/17/12 - iOS6 • Watch before: Optional 15, 16 • Assignment: iOS 6 app • Assignment due: Friday, 10/26 6:00 am (Thursday 30:00) COMP 446 / ELEC 446 - Week 1
COMP 446 (tentative) Syllabus • Lecture 10 - 10/24/12 – HTML 5 • Watch before: Optional 17, 18 • Assignment: Major Final Project Feature • Assignment due: Friday, 11/2 6:00 am (Thursday 30:00) • Lecture 11 - 10/31/12 - TBD • Assignment: Continue working on Final Project • Assignment due: Wednesday, 11/28 2:00pm • Lecture 12 - 11/7/12- Android vs. iOS vs. Windows Phone group debate • Assignment: Continue working on Final Project • Assignment due: Wednesday, 11/28 2:00pm • Lecture 13 - 11/14/12 - Individual meetings on Final Project • Assignment: Continue working on Final Project • Assignment due: Wednesday, 11/28 2:00pm • Lecture 14 - 11/21/12 – No class, but continue on final project • Assignment: Continue working on Final Project • Assignment due: Wednesday, 11/28 2:00pm • Lecture 15 - 11/28/12 - Final Presentations • Assignment: Document Final Project • Assignment due: By time assigned for COMP 446 final (there is NO final exam) COMP 446 / ELEC 446 - Week 1
Final Project • To be determined by 8th class • Can target iOS, Android or WP device • Proposal submitted by 10/10/12 • Full Spec 10/17/12 • Various milestones including presentation to class on 11/28/12 • 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. • Great if your project could have life after the class finishes COMP 446 / ELEC 446 - Week 1
Differences from 2011 • Major pedagogical stumbling blocks from last year’s course addressed by iOS 5 changes • Memory Management • Life cycle flow • Object oriented database integration • Strong desire to provide HTML 5 and related ecosystem exposure • Not really covered in any other course • Kind of super important for any CS person 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 • Assignment #6 will likely have optional elements required for potential A+ 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 • Please remember that this is still an experimental class format and mobile technology changes quickly • Things WILL shift as we go along • Feedback highly encouraged COMP 446 / ELEC 446 - Week 1
Week 2 • Watch CS193p lectures #1 and #2 • Preferably before Saturday. Definitely before next class. • Complete CS193p Assignments #1, #1 Walkthrough • Try and complete before next class. Due shortly after next class. • Submit assignments, review lectures at www.comp446.com • Start thinking about big project • Really – start thinking about big project! • Next week’s lecture – mostly review of first videos and intro to Objective-C. COMP 446 / ELEC 446 - Week 1
Is COMP 446 for You? • Do you agree with benefits of the COMP 446 format? • Lectures, projects and most importantly leveraging the iTunes CS193P videos • Are you prepare to spend at least 10 hours a week on the initial projects? • Are you the sort who really enjoys getting a program to work? • Do you have the time in your schedule? • Some do not understand or like the format • If this is you, drop this course and learn iOS from books or iTunes-U • Most COMP 446 students strongly say yes • If this is you, you will have a great time in COMP 446 COMP 446 / ELEC 446 - Week 1