470 likes | 561 Views
Wednesday 2-4, DH 1046. 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/24/11. Today’s Agenda. Goals People History
E N D
Wednesday 2-4, DH 1046 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/24/11
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 / Objective-C • Covered in less detail (~1 lecture each) • Google Android • Windows Phone 7 • Web services / ASP.NET • MS-SQL Server • JavaScript iPhone Web Applications • Create a series of small applications leading to a larger final project 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 / ELEC 694, Seminar #1
MIT Cambridge, MA BS 1973 MS 1973 Ph.D. 1976 Zork 1979 COMP / ELEC 694, Seminar #1
GE Research and Development Niskayuna, NY First business use of PC (TRS-80) in GE COMP / ELEC 694, Seminar #1
Tandy Electronics (Radio Shack) Fort Worth, TX Deskmate - First graphical Quicken - First graphical Lotus - Foundation for AOL COMP / ELEC 694, Seminar #1
Chips and Technologies San Jose, CA Wingine Windows Graphics COMP / ELEC 694, Seminar #1
Digital Equipment Corporation Boston, MA CTO – PC Group COMP / ELEC 694, Seminar #1
Compaq Houston, TX CTO – PC Group COMP / ELEC 694, Seminar #1
Rice University (2001 – Present) Houston, TX COMP / ELEC 694 Future Personal Computing Technology COMP / ELEC 446 Mobile Wireless Services Project Digital Media Personal Electronics COMP / ELEC 694, Seminar #1
Who are you? COMP 446 / ELEC 446 - Week 1
Current Roster • Waseem Ahmad • Joe Abdou • Carrie Boland • George Chen • Emmanuel Fuentes • Ivan Hernandez • Myuran Kanga • Sunny Kim COMP 446 / ELEC 446 - Week 1
Current Roster (2) • Lan Li • Manan Mehta • Risong Na • Dennis Qian • Caleb Solano • Ming Tang • Daphne Wert • Wen Xing COMP 446 / ELEC 446 - Week 1
Course TA • Richard Latimer • Course TA for first half of the semester • Fellow student for final project 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 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
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 • C-Workload: 4.00 / 3.01 • I-Knowledge 1.63 / 1.64 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 • Maintaining hard line on class size • If anyone plans to drop, please let me know so I can inform a person from the waiting list. • Will devote more time to iOS and ecosystem topics at the expense of some ancillary topics. 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 year 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 (description/template for an object) • Instance (manifestation of a class) • Message (sent to objects to make them act) • Method (code invoked by a Message) • Instance Variable (onject-specific storage) • Inheritance (code-sharing mechanism) • Superclass/Subclass (Inheritance relationships) • Protocol (non-class-specific method declaration) • Source: CS193p Lecture #1 COMP / ELEC 694, Seminar #1
Resources COMP 446 / ELEC 446 - Week 1
Hardware / Software • Development Macs • IT run Campus Macs loaded with XCode software environment and emulators • Dedicated Mac Mini available for class use via LogMeIn • Devices • A few older (personal) iPhones available for student use • 2 Windows Phone 7 Device available • A few Motorola Droid (Android) devices are available • 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 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/26/11 class (due 11/03/11) • Homework and mandatory videos • Videos must be watched before class • Assignments due day after class (8 days to complete). • You will have all the resources needed to start early and get ahead. • Final project 10/19/11 – 11/30/11 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 most 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 assignment 6 • This was an experiment past two years 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 2010 course offering • http://www.stanford.edu/class/cs193p- Download fall 2010 session available at http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-fall COMP 446 / ELEC 446 - Week 1
OS X & Xcode version • OS X Lion has desirable but not required features • Developing iOS apps does not require much disk space or GHz, but likes big screen. • Borrows from iOS • Not loaded on University Macs • Xcode 4.1 is desired, not required • Definite improvement in integration and debugging • Different than version on videos. Possible confusion. 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 or to Richard. • Richard 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
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/24/11 Introduction / What makes mobile apps special Videos: Lecture 1. Introduction to Cocoa Touch, Objective-C, Tools, and MVC (September 21, 2010) Lecture 2. Building a Simple Calculator (September 23, 2010) Assignment: #1 and #1 Walkthrough - Calculator Due: Preferably watch videos this week, definitely by 8/30. Assignment due 9/1/11. • 8/31/11 Discussion of first applications Videos: Lecture 3. Objective-C and Foundation Frameworks (September 28, 2010) Lecture 4. Foundation and Memory Management (September 30, 2010) Assignment: #2 Function Calculator (Due 9/08/11) • 9/7/11 Intro to Cocoa Touch, Objective-C, Dev Tools, Using Objective-C, Foundation framework Videos: Lecture 5. Protocols and Views (October 5, 2010) Lecture 6. Application & View Controller Lifecycle, Navigation Controller (October 7, 2010) Assignment: #3 Graphing Calculator (Due 9/15/11) • 9/14/11 ASP.Net with a little HTML Videos: Lecture 7. More Controllers of Controllers, iPad, Universal Applications (October 12, 2010) Lecture 8. Gesture Recognizers (October 14, 2010) Assignment: #4 Universal Calculator (Due 9/22/11) • 9/21/11 iPhone (pseudo) Web Apps / Browser Capabilities Videos: Lecture 9. Image View, Web View, and Scroll View (October 19, 2010) Lecture 10. Table View (October 21, 2010) Assignment: #5 Pictures Places (Due 10/06/11) COMP 446 / ELEC 446 - Week 1
COMP 446 (tentative) Syllabus • 9/28/11 SQL 101 Videos: Debugging Tools (October 22, 2010)Kleiner Perkins iFund (October 15, 2010) Assignment: None. Review previous material • 10/5/11 Creating and Consuming Web Services Videos: Lecture 11. Persistence (October 26, 2010) Lecture 12. Core Data and Table Views (October 28, 2010) Assignment: #6 Core Data Places (Due 10/20/11, but watch lectures prior to 10/12/11 class) • 10/12/11 Final Project discussion and Pairing Videos: Lecture 13. Blocks and Multithreading (November 2, 2010) Lecture 14. Core Location and Map Kit (November 9, 2010) Assignment: Final Project Proposal (Due 10/18/11 along with Core Data Places due 10/20/11) • 10/19/11 iOS 5 Videos: Lecture 15. Editable Text, Modal View Controllers, and View Animation (Nov 11, 2010) Lecture 16. Core Motion, Segmented Control, and Alerts (November 16, 2010) Assignment: Final Project, Stage 1 (Due 10/27/11) • 10/26/11 Android Videos: Lecture 17. Media (November 18, 2010) Lecture 18. Accessibility on iOS: Make an App for Everyone (November 30, 2010) Assignment: Advanced Feature App (Due 11/03/11) COMP 446 / ELEC 446 - Week 1
COMP 446 (tentative) Syllabus • 11/2/11 Windows Phone 7, Final Project Prep Videos: Assignment: Final Project, Stage 2 (Due 11/10/2011) • 11/09/11 Final Project Prep / iPhone v. Android v. Windows Phone 7 group discussion Videos: Lessons from Bezos, Pincus, Young: CEO 2.0 (November 12, 2010) (Optional) LinkedIn: Shipping with CoreData (November 5, 2010) (Optional) Assignment: Final Project, Stage 3 (Due 11/17/2011) • 11/16/11 Final Project Prep Videos: Building Flipboard (November 19, 2010) (Optional) Assignment: Final Project Presentation (Due 11/30/2011) • 11/23/11 Thanksgiving – Continue Final Projects on your own • 11/30/11 Demonstrate Final Projects to class • 12/4/11 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 • Can target iOS, Android or WP7 device • Topic chosen class before mid semester break • Proposal submitted by 10/18/11 • Full Spec 10/27/11 • Various milestones including presentation to class on 12/30/11 • 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. • Projects can be done solo and in pairs. Richard Latimer can not be part of project team. • 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 • 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 • Others will depend on you • Team effort • Please remember that this is still an experimental class format and mobile technology changes quickly • Things may 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 day 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