
Lecture Description
This is the final version of a video produced from my August 21st course on Systems Programming with Android. It supersedes the version posted at www.youtube.com/watch?v=FpJ5vUmKwd0&feature=youtu.be and fixes some weird problems with another version that I uploaded earlier.
Course Index
- Overview of CS 282 and Android
- Setting up the Android Development Environment
- An Overview of Patterns
- Overview of Frameworks (Parts 1 and 2 of a 3 part series)
- Overview of Frameworks (Part 3 of 3) and Overview of Android Activities (Part 1 of 2)
- Overview of Android Activities (Part 2 of 2)
- Developing Android Apps Using Eclipse
- Android Concurrency and Synchronization (Parts 1, 2, and 3)
- Android Concurrency and Synchronization (parts 4 and 5)
- Android Synchronization and Concurrency Mechanisms (parts 6 and 7)
- Android Concurrency and Synchronization (part 8)
- Android Network Programming (Parts 1 and 2)
- Android Concurrency and Synchronization (part 9)
- Android Concurrency and Synchronization (part 10)
- Android Services and Local IPC (parts 1 and 2)
- Android Services and Local IPC (parts 3 and 4)
- Android Services and Local IPC (parts 5 and 6)
- Android Services and Local IPC (parts 7, 8, and 9)
- Android Services and Local IPC (parts 10, 11, 12, and 13)
- Android Services and Local IPC (parts 14, 15, and16)
- Android Services and Local IPC (part 17)
- Android Services and Local IPC (parts 18, 19, 20, and 21)
- Android Services and Local IPC (parts 22, 23, and 24)
- Android Persistent Storage and Content Providers (parts 1 and 2)
- Android Persistent Storage and Content Providers (parts 3, 4, and 5)
- Android Persistent Storage and Content Providers (parts 6, 7, and 8)
Course Description
CS 282 will provide students with an intensive focus on conceptual and practical aspects of designing, implementing, and debugging concurrent and networked software systems using patterns and frameworks related to Java and Android middleware. Key topics covered in this course include: developing, documenting, and testing applications using object-oriented frameworks associated with Java and Android middleware; Reuse of patterns and software architectures; Developing concurrent and networked software using Java and Android.
Design and implementation based on patterns and frameworks are central themes to enable the construction of reusable, extensible, efficient, and maintainable networked system software. In addition, abstraction based on patterns and OO techniques (such as separation of interface from implementation) will be the central concepts and principles throughout the course. These concepts and principles will enable you to construct reusable, extensible, efficient, and maintainable networked system software.
Patterns will be taught so that you will have good role models for structuring their own designs, as well as to clearly articulate the tradeoffs of alternative methods for designing systems. OO techniques will be taught so that you will learn by example how to build highly decentralized networked system software architectures that decouple inter-dependencies between components. You are expected to be familiar with Java and basic Android.