290 likes | 402 Views
Wednesday 2-4, 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/31/11. Today’s Agenda. Events of the week
E N D
Wednesday 2-4, 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/31/11
Today’s Agenda • Events of the week • Current Enrollment • Logistics & Syllabus • Review of current assignment • Next Week • Cocoa Touch and Objective C • Assignment 2, Videos 3 and 4 • Some thoughts on the legacy of Steve Jobs COMP 446 / ELEC 446 - Week 2
Events of the Week • Exercise in keeping current via past week’s events • Originated as part of my doctoral exams MANY years ago • Very important part of my life as corporate Chief Technology Officer • Typically start all of my classes with this geared towards class relevant topic. • High student participation desired COMP 446 / ELEC 446 - Week 2
Events of the Week • Steve Jobs resignation • Justice Dept. to block AT&T’s T-Mobile deal • H-P's One-Year Plan • HP TouchPad users may see Android on their tablets • HP answers people trying to score a $99 TouchPad • Amazon Could Sell Five Million Tablets in Three Months • Google settles drug ad claim for $500M • Google Slide, slides away • Skype launches App Store • iTunes' streaming music finally shows up COMP 446 / ELEC 446 - Week 2
Current Roster • Waseem Ahmad • Joe Abdou • Carrie Boland • George Chen • Emmanuel Fuentes • Ivan Hernandez • Myuran Kanga • Sunny Kim COMP 446 / ELEC 446 - Week 2
Current Roster (2) • Lan Li • Manan Mehta • Risong Na • Dennis Qian • Caleb Solano • Daphne Wert • Wen Xing • Fred Liu COMP 446 / ELEC 446 - Week 2
Course TA • Richard Latimer • TA sessions: Monday, Wednesday 8-9pmMudd COMP 446 / ELEC 446 - Week 2
Assignment Website • www.comp446.com/wsAssignments • Also available through www.comp446.com • Uses your Rice NetID as login; authentication through AdRice • File submissions limited to 25MB; hopefully much shorter! • If you have any issues submitting assignment #1, email me. COMP 446 / ELEC 446 - Week 2
Assignment Files • Unless otherwise instructed, submit assignment files as a zip file of Xcode project directory. • Ensure that all resources are part of the project directory so they are included in zip. • Clean project before archiving. Greatly reduces size. • Screen shots or PDF documents preferred for some assignments (when indicated). • OK to make multiple submissions when both file types needed – but not of individual Xcode project files. COMP 446 / ELEC 446 - Week 2
Hardware / Software • Development Macs • IT run Campus Macs loaded with XCode software environment and emulators • If you receive a request for developer group credentials, user name is xcode, pw given in class. • Dedicated Mac Mini available for class use via LogMeIn • www.LogMeIn.com. Account name: Comp446@scottcutler. PW given in class. • On Mac, Username = Comp446. Password given in class • 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) COMP 446 / ELEC 446 - Week 2
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 2
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 2
Who is Paul Hegarty • Better question: Why is an Objective-C string called NSString • How are these two questions related and why is it relevant to the high quality of these videos. COMP 446 / ELEC 446 - Week 2
Object-Oriented Terms • Class (description/template for an object) • Instance (manifestation of a class) • Instance Variable (object-specific storage) • Message (sent to objects to make them act) • Method (code invoked by a Message) • Inheritance (code-sharing mechanism) • Superclass/Subclass (Inheritance relationships) • Protocol (.h without .m template to implement some classes) • Source: CS193p Lecture #1 COMP 446 / ELEC 446 - Week 2
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, Development Environment 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, 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 2
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 2
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 2
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 2
Assignment #1 Questions COMP 446 / ELEC 446 - Week 2
MVC and Xcode Demo COMP 446 / ELEC 446 - Week 2
Week 3 • Watch CS193p lectures #3 and #4 • Preferably before Saturday. Definitely before next class. • Complete CS193p Assignment #2 • Try and complete before next class. Due day after next class. • Submit assignments, review lectures at www.comp446.com • Start thinking about big project • Next week’s lecture – Objective-C. COMP 446 / ELEC 446 - Week 2
The Legacy of Steve Jobs COMP 446 / ELEC 446 - Week 2
Waves of Technology • Every 10 years or so, something big changes • Core leaders of this technology often young • Luck or Skill • Many people have one great idea, some two • Few have one great idea after another • Often requires excellence in multiple areas • Risk and Failure COMP 446 / ELEC 446 - Week 2
First or Best • Being first gives you a head start, but also paints a target for those who follow behind. • Steve Jobs often took an existing area and through a set of bold moves changed the paradigm giving people what they really wanted – or would discover that they needed. COMP 446 / ELEC 446 - Week 2
Importance of Owning Solution • Allows differentiation and future shaping in cost competitive environment. • Eases introduction of new technology • Enables bold moves • Great competitive barrier to entry • But can also cost significant business if not at or near best of breed in an important area. COMP 446 / ELEC 446 - Week 2
Master of Presentations • 1983 Apple Keynote-The "1984" Ad Introduction • 1984 Superbowl Commercial • The Lost 1984 Video: young Steve Jobs introduces the Macintosh • The charisma of Steve Jobs (video roundup) COMP 446 / ELEC 446 - Week 2
Hyperbole • Apple iPad Keynote in 2 minutes! [HD] • Back To The Mac in 104 seconds • Incredible amazing awesome Apple • The Original Apple Keynote Cutdown. No cuts are repeated.Done with iMovie, which is really awesome... COMP 446 / ELEC 446 - Week 2
My Most Famous Picture Yep, it’s me COMP 446 / ELEC 446 - Week 2