About+the+Course

The course is held at the Department of Information Engineering, University of Padova, Italy.

=Syllabus= INTRODUCTION. The software platforms: Android, Maemo (with Qt library), iOS. Hardware available in the lab: Android tablets, Nokia N900’s, Apple iPods and iPads. PROGRAMMING LANGUAGES. Concepts shared by major object-oriented languages. The Java, C++ and Objective-C languages. Design patterns: Model-View-Controller, Delegation, Target-Action. SOFTWARE DEVELOPMENT KITS (SDKs). The Android SDK and Eclipse. The Nokia Qt SDK and Qt Creator. The Apple Developer Tools and Xcode. EMBEDDED SYSTEMS: USER INTERFACE. Design of user interfaces in embedded systems. Common user interface elements. Programmatic description. Declarative description. Advanced concepts; gestures. EMBEDDED SYSTEMS: MULTITASKING/MULTITHREADING. Tasks. Threads. States and state transitions in the life of an application. Responding to events. EMBEDDED SYSTEMS: STORING DATA. Reading and writing files. The SQLite database management system. Brief explanation of platform-specific solutions: Android’s Content Providers, Apple’s Core Data. EMBEDDED SYSTEMS: ACCESSING HARDWARE. Battery status, camera, accelerometer, gyroscope, magnetometer, location services.

=General information= Lessons are taught in Italian, but all the material for the course (slides, textbooks, etc.) is in English. The maximum number of students allowed to take the course is 60 (sixty). Priority is given to DM270 students. Grades for the course are a weighted average of scores in the group project (weight: 70%) and in the one-to-one oral exam (weight: 30%). The programming project must be performed in groups of three students. Each group must hold a project presentation during the weeks allotted for final exams. Further administrative information about the course is available from the course catalogue.

= Textbooks =
 * Class slides.
 * Selected web sources linked from this website.

**Suggested Books**
 * Ken Arnold, James Gosling, David Holmes, "The Java Programming Language", Fourth Edition. Prentice Hall, 2005. ISBN-10: 0321349806 DEI Library].
 * Herbert Schildt, "C++: The Complete Reference", Fourth Edition. McGraw-Hill, 2002. ISBN-10: 0072226803. DEI Library Kindle]
 * Robert Clair, "Learning Objective-C 2.0: A Hands-On Guide to Objective-C for Mac and iOS Developers", First Edition. Addison-Wesley, 2010. ISBN-10: 0321711386. DEI Library Kindle]
 * Ed Burnette, "Hello, Android: Introducing Google's Mobile Development Platform", Third Edition. Pragmatic Bookshelf, 2010. ISBN-10: 1934356565. DEI Library]
 * Johan Thelin, "Foundations of Qt Development", First Edition. Apress, 2007. ISBN-10: 1590598318. DEI Library Kindle NOOK]
 * David Mark, Jeff LaMarche, Jack Nutting, "Beginning iPhone 4 Development: Exploring the iOS SDK". Apress, 2011. ISBN-10: 143023024X. DEI Library Kindle]