1 Information Technologies Programs Mobile Application Development Certificate Program Accelerate Your Career extension.uci.edu/mobileapps
2 University of California, Irvine Extension s professional certificate and specialized studies programs help you increase or Improve Your Career Options with a Professional Certificate enhance your current skills or prepare for a new career. Courses are highly practical and instructors are qualified leaders in their field. Convenient online courses make it easy to learn on your own time, in your own way. A certificate bearing the UC seal signifies a well-known, uncompromising standard of excellence. Mobile Application Development Certificate Program More people access the web via mobile devices than from personal computers. As the number of devices expands dramatically, users are becoming accustomed to having both web and computing access via small, mobile devices and phones. This has resulted in a significant increase in demand for developers with experience using multiple platforms such as ios, Android, and Windows Phone. At the same time, the growth in popularity of cloud computing has increased the ability for these devices to perform functions that previously required computation power unavailable on mobile devices. Who Should Enroll This program is intended for individuals interested in the design, development, or use of mobile device applications, games, or utilities. It will benefit those who wish to distinguish themselves across a wide range of employment and technical disciplines within the rapidly expanding field of mobile application development. Program Benefits n Develop the skills required to create applications for the major mobile device players including Apple iphone, Google Android, and Windows Phone n Create strategies to overcome mobile development challenges including memory and processor limitations, intermittent network access, and limited battery power n Learn how to effectively use application architectures for a range of wireless devices via hands-on experience
3 Curriculum n Explain the factors to consider when designing software for multiple platforms n Increase confidence by implementing applications from scratch using best practice principles including object oriented design and test driven development n Understand the relationship between the mobile market and other emerging technologies including cloud computing and social networking platforms such as Facebook, Twitter, and LinkedIn n Acquire the necessary skills to ensure mobile applications efficiently utilize corporate data or data available from external web services n Gain insight into new trends and features in the mobile device marketplace Program Fees The total cost of the program varies depending on the electives chosen. Actual fees may differ from the estimate below. Fees are subject to change without prior notice. Course Fees $4,685 Candidacy Fee $125 Textbooks $120 Total Estimated Cost $4,950 Certificate Eligibility and Requirements A certificate is awarded upon completion of 15 credit units (6 required and 9 elective credit units) with a grade point average of C or better. Students have a choice of one of the three OS-based tracks (ios, Android or Windows Phone) as part of their required courses. Students may also choose additional courses from the required tracks and use them towards their electives. Students who have taken related courses in IT (Java, Microsoft, SQL, etc.); Device Software Engineering or Embedded Systems Engineering may be able to apply some of their completed units to electives in this program. To become an official candidate in the program, students pursuing the certificate must submit a Declaration of Candidacy. To receive the certificate after completing all program requirements, students must submit a Request for Certificate. All requirements must be completed within 5 years after the student enrolls in his/her first course. Students not pursuing the certificate program are welcome to take as many individual courses as they wish. Required Courses (6 units) Introduction to Mobile Application Design and Development I&C SCI X (1.5 units) Learn about mobile application development, market opportunities, and technical requirements for Apple (ios), Google (Android) and Microsoft (Windows Phone). Course focuses on installing, developing, testing, and distributing mobile applications. Develop practical experience within all three platforms and implement a sample application in a platform of choice. Challenges including limited screen sizes, memory issues, and the variety of phones will also be discussed. Compare and contrast products designed by major vendors using a hands-on approach. Advanced Mobile Application Design and Development I&C SCI X (1.5 units) Build on the knowledge presented in the introductory course. Focus on application interfaces such as GEO positioning, Web access and multimedia capabilities. Discuss how mobile front end applications utilize and access functionality hosted in a cloud computing environment. Learn how social networking software like Facebook and Twitter can be used to promote and extend mobile applications. Choose Two Courses from the Following Tracks: ios Mobile Development for Apple iphone and ipad I&C SCI X (1.5 units) Design and develop applications for the Apple iphone and ipad. Recap how to register for the development program, download, and install XCode. Review the Objective C programming language. Compile and debug sample applications that illustrate iphone features and focus on User Interface Implementation. Develop applications to practice generating an interface. Become confident with Objective C code, the graphical user interface builder, and overall XCode project integration. Incorporate phone specific features like accelerometer, touch screen, GEO positioning, sound, and web access. Target groups for this class are developers, testers, and business analysts interested in this technology. Advanced Mobile Development for Apple iphone and ipad I&C SCI X (1.5 units) Increase the knowledge presented in the introductory course and focus on features needed to support iphone business applications. The programming exercises include Application Configuration, Data Persistence in Core Data, and open source database like SQLite. Covers advanced web access via SOAP and REST Service APIs utilizing JSON for data exchange. Further topics include advanced navigation models and more complex usage of GEO positioning, Accelerometer, and Multimedia features. For more information: Jackie Badwah (949)
4 Curriculum Android Introduction to Android Application Development with Java Essentials I&C SCI X (1.5 units) Understand Google s Android mobile device platform and develop basic applications for Android devices. The course covers Java programming essentials necessary for basic Android app development. Gain introductory level experience using the related Software Development Kit (SDK) from Google that is required to take the two subsequent Android courses in this program (Application Development for Android Devices and Advanced Application Development for Android.) The course centers around building several basic applications and the core Android concepts required to complete a student directed application, which combines several Android features. The class will also cover basic debugging for android applications. Application Development for Android Devices I&C SCI X (1.5 units) Understand Google s Android mobile device platform, its position in the marketplace and the applications for actual devices. Receive hands-on experience using Google s Android Software Development Kit (SDK). Create several small applications based on core concepts and then use them to build a complex application which combines several Android features. Utilize and integrate specific features such as the user interface, process creation, life cycle events, process services, location based facilities, accelerometer, on-device sensors, network/web access, and sound/multimedia. Test-based development methods will be stressed throughout the course and students will learn to test and debug their applications using the emulator and an actual device. Course also includes an overview of the mobile device and application market, registering with the Google Market to be an Android developer, and distributing applications to the Android user population. Advanced Application Development for Android I&C SCI X (1.5 units) Gain advanced knowledge of the Android platform including: issues and techniques, structuring applications for efficiency and reliability, accessing web services and integrating with 3rd party libraries. Learn about background applications, content providers and animation. Receive hands-on experience using Google s Android Software Development Kit. Create several small applications based on core concepts and then use them to build a complex application which combines several advanced Android features. Utilize and integrate specific features such as the user interface, process creation, life cycle events, process services, location based facilities, accelerometer, on-device sensors, network/web access, and sound/multimedia. Windows Phone Application Development for Windows Phone 8 I&C SCI X (1.5 units) Windows Phone is Microsoft s next generation mobile operating system. It promises to be an amazing mobile phone operating system given its great user interface and functionality. Course provides hands-on skills and experience with developing real-life applications using the Windows Phone platform. Learn the basics, understand the product lifecycle, write applications, use built-in widgets and components, and work with the data store. Advanced Application Development for Windows Phone 8 I&C SCI X (1.5 units) Develop advanced programming skills for Windows Phone based devices. Learn how to use Launcher, Choosers and Push notifications and well as Panorama and Pivots. Optimize the performance of mobile applications and efficiently integrate them with onboard hardware and media. Define the application lifecycle and design applications using Blend and Metro. Gain the skills required to market and sell applications. Elective Courses (Minimum 9 units) Introduction to Computer Programming Using C++ I&C SCI X (3 units) The primary objective of this course is to provide the techniques and practices of cloud computing. Cloud computing refers to a set of services that provide companies and application developers with the means to scale their application's resource usage through the Internet on demand. This course will concentrate on building applications on Google App Engine and Microsoft Windows Azure. This course will also teach the students the knowledge of designing and implementing cloud-based software system. In addition, this course will explore the current challenges facing cloud computing. Developing.NET Solutions with C# I&C SCI X (3 units) Learn C# (pronounced C-sharp), Microsoft's object-oriented programming language that combines the power of C++ with many of the features of Java. Learn how Extensible Markup Language (XML) and Simple Object Access Protocol (SOAP) simplifies programming in C# and how these features can decrease the time it takes to get new products and services to market. Topics include the Common Language Runtime, the Common Type System, the.net Framework Class Library, the.net software development kit (SDK), and data access using Active Data Objects (ADO.NET). Upon completion of the course, you'll be ready to write short C# programs that exercise the major features of the language as well as continue your study of the.net environment. Java Programming I I&C SCI X460.1 (3 units) Java is an excellent choice for those new to programming, wishing to enhance their current skillset or change their career. The aim of this course is to provide students with the knowledge and competencies to be able to write and design sophisticated professional programs using Java through extensive hands-on exercises. Included are core language concepts including fundamental data types, flow control, and standard function libraries. The course emphasizes object-oriented programming and modular design to support distributed development environments. Included are the design of classes and objects inheritance and polymorphism, and file I/O. The course also includes coverage of the Java Collections API, debugging, exceptions, and the Eclipse IDE. Optional modules throughout the course enforce basic concepts for those who are new to programming. After completion of this course, students are prepared for Java Programming II (I&CSCI X460.11). Java Programming II I&C SCI X (3 units) Expand your knowledge of Java and learn about several of the advanced features available in the Java programming environment. This course focuses on the development of advanced graphical user interfaces (GUIs) using Swing, multithreading and concurrency, Generics, basics of databases and Java Database Connectivity (JDBC), Servlets, Java Server Pages (JSPs), exception handling, debugging, and performance tuning. Students have an opportunity to practice implementing these and other Java features in this hands-on course. extension.uci.edu/mobileapps
5 Java Web Services I&C SCI X (1.5 units) Java Web Services is a hands-on course that teaches you the concepts, implementation, and usage of different types of web services using Java technologies. You will learn to design, develop, and publish SOAP and REST web services with Java technologies. You will also learn how to write clients for calling these web services. The special emphasis is put on applying the architectural concepts and best practices for developing secure and scalable web services (SOA, standards, etc.). Prerequisites: Knowledge of Java programming language and XML. Basic knowledge of Java enterprise systems. Social Network Programming for Mobile Devices I&C SCI X (1.5 units) Social networking software receives the biggest Media Buzz in the Information Technology marketplace today. The Facebook platform is growing faster than any other computing platform even faster than Google. Get an introduction into social network computing and learn how to build applications that integrate with the major social networking platforms: Facebook, OpenSocial, and Twitter. Identify the characteristics of engaging social media applications and experience how to use the Facebook platform, Google Friend Connect, and the Twitter API to create them. Receive hands-on experience in developing sample applications end-to-end. Discuss how social computing software can be used in both a development and hosting environment as well as in an integrated marketing environment. Advanced Social Network Programming for Mobile Devices I&C SCI X (1.5 units) Learn advanced features of social network computing using Facebook, Twitter, OpenSocial (Google). Acquire hands-on knowledge in building integrated applications. Work on coding examples to explore and experience the Facebook, Twitter, and Open Social programming APIs. Experience how these samples connect to mobile application development on the Apple iphone (front end) as well as in the Amazon and Google cloud environments (back-end). After finishing the beginner and advanced class, gain experience and references to write applications utilizing Facebook, OpenSocial, and Twitter and connect them in real world scenarios. The target groups for this class are developers, testers, and business analysts interested in this technology. Cloud Computing Platform as a Service (PaaS) I&C SCI X (1.5 units) Acquire techniques and practices of cloud computing. Cloud computing is a set of services that provide companies and application developers with an on-demand solution that addresses usage issues by using the Internet. Build applications on Google App Engine and Microsoft Windows Azure. Design and implement cloud-based software systems and explore current challenges. Creating Websites for Mobile Devices I&C SCI X (1.5 units) Design and develop web sites specifically for mobile devices. As the number of smart phones and other mobile devices rapidly grow, web designers need to make sure their sites are usable and even optimized to be viewed on them. The topics range from design considerations to specific development steps. Agile Software Design and Programming I&C SCI X (2.5 units) Learn the principles, practices, and patterns that result in optimal software design and development. Utilize the best practices from objectoriented design and Agile techniques/frameworks to create design processes and a culture that results in highly effective, clean software to improve organizational efficiencies and create a competitive advantage. Review a variety of case studies from simple to complex in multiple programming languages, illustrating the fundamentals of Agile development and Agile design. Topics include release and iteration planning; testdriven development (TDD); refactoring; Agile design (including design smells and code rot ); single-responsibility (SRP); open closed principle (OCP); Liskov substitution principle (LSP); object and state diagrams; big software design issues; design patterns; class design; complexity management and package design; and the use of OOD and C++ in an Agile environment. Agile Development I&C SCI X (2.5 units) Agile techniques are rapidly becoming integral to the project management process, and are often implemented to motivate the cultural shifts required to stimulate innovation and improve operational efficiency. Learn the important differences between evaluation and tracking of Agile (Scrum- and Kanban-based) and traditional projects. Additional topics include the Agile approach to complex projects using global, multicultural teams; key features of the management, use and measurement of contractors on an Agile project; portfolio management; determination of ROI; build vs. buy; and selecting projects best suited for Agile. The use of Agile as a tool to motivate innovative, cultural and organizational change will also be discussed. Industry recognized software tools such as Rally will be used throughout the class to help you understand how to effectively manage projects in an Agile environment. Agile Project Management I&C SCI X (3 units) Understand and leverage the foundations of Agile techniques and culture within your organization. Frameworks such as Scrum and Kanban will be used to develop practical skills and a clear understanding of the Agile process. Discover how Agile and Lean can perform side-by-side with traditional projects and in hierarchical organizational structures. Explore how Agile is not only a working management method but a different mindset. Discuss what mental and cultural shifts are necessary for Agile adoption. The course will address how the contemporary thinking in management of projects, especially those that are based on PMI s PMBOK Guide and SEI s CMMI, are influenced by Agile and Lean. Case studies on Agile implementation and transitioning will also be discussed. Additional topics covered in the course include: management of programs and portfolios in an Agile environment; how Agile maturity can be measured; and how process management is performed in the Agile world. Corporate Training Our Corporate Training specialists can deliver this program or customize one that fits your organization s specific needs. Visit extension.uci.edu/corporate or call (949) for information.
6 Advisory Committee Ken Baldwin, President, GoingMobile Wolf Paulus, Sr. Architect Mobile Software Development, Ralf Brockhaus, CEO, SmileFish Hewlett-Packard Craig S. Dickson, Software Engineer Architect, The Jeffry Peacock, Owner, Wonkware Juggernaut Group John Petrone, SVP & CTO, Autobytel Crista Lopes, Ph.D., Professor, Department of Informatics, Donald Bren School of information and Computer Sciences, University of California, Irvine Farhad Mafie, President and CEO, Savant Company Inc. Andrew Maltin, CEO, MEDL Mobile Mustafa Seifi, Senior Director of Development, Oracle Corp. Stefano Stefan, Ph.D., Director of Online Program Development, University of California, Irvine Extension Aaron Stibel, SVP, Technology, Dun & Bradstreet Credibility Corp. Academic Management Dave Dimas, Ph.D., Director, Engineering, Sciences and Information Technologies Mobile Application Development Certificate Program Jackie Badwah n (949) n extension.uci.edu/mobileapps