CODEPATH*ORG - Android Course Syllabus
Course description
This course is a 10-week long project-based exploration into Android mobile app development focusing on the design and implementation of RESTful API clients. Classes meet virtually twice a week for lab and working sessions. You can choose to attend one of these sessions.
In the first half of the course, students develop skills by completing coding labs and building three fully functional app assignment projects. In the second half of the course students will apply their skills, working together in small teams, to design and and build an original app from the ground up. The course culminates in an App Development Competition where teams will present their finished apps in a live demo.
Prerequisites and eligibility
Students should…
- have completed an intro to object oriented programming course or have existing familiarity
- be pursuing a course of study related to computer science or software
- complete the pre-work task
Device Requirements
- You must have access to a system with the ability to download and run Android studio.
- Operating System
- Mac® OS X® 10.10 (Yosemite) or higher, up to 10.14 (macOS Mojave)
- Microsoft® Windows® 7/8/10 (64-bit)
- Linux GNOME or KDE desktop (NU C Library (glibc) 2.19 or later)
- RAM: 4 GB RAM minimum, 8 GB RAM recommended
For Windows: open Settings > System > About, the RAM information should be on the bottom of the page.
For Mac: click on the Apple logo at the top left-hand corner, then click "About this Mac."
- Hard Drive Free Space: At least 10 GB of available disk space
Time Commitment
-
Live session attendance: Classes meet once or twice per week for 1-1.5 hour sessions over the duration of the semester.You can choose to attend one of the sessions.
-
Outside of class time: Students should plan to spend 5-6 hours outside of class working on weekly assignments and their final group project.
Attendance and Coursework Submissions
CodePath courses focus on developing student's habits and skills in order to to be successful in the tech industry. Success in industry goes beyond proficiency in technical domains; The ability to be punctual, meet project deadlines and work effectively in a collaborative team are equally important skills. The following policies around attendance and coursework submissions are meant to encourage professional behavior.
Coursework Weighting
All coursework grading and accountability is handled by CodePath. The following table outlines how each coursework section is weighted in calculating a student's final grade. See Coursework Grading for a breakdown of scores for individual coursework items.
Weight |
Section |
Description |
50% |
Assignments |
Weekly app projects |
50% |
Group Project App Milestones |
Original app project and presentation |
Bonus points
A student can earn bonus points on an app assignment by completing extra app features beyond that which is indicated as required. Bonus points will only be applied within the given coursework section they are earned and won't increase the impact of a given section beyond it's designated weight. For instance, no amount of bonus points will increase the impact of the Assignments section beyond 50% of the final grade.
Coursework Submissions
- All coursework items are submitted through CodePath Course Portal and due by their posted deadlines.
- Three (48 hour deadline extensions) are allowed for the entire semester no questions asked. This will be automatically triggered as soon as the deadline is missed– there is no need to request extensions.
- 48 hours is the maximum allowed extension for any individual coursework item, extensions cannot be combined per coursework item.
- Once the 3 deadline extensions have been used, any late coursework item (submitted after the posted deadline) will not be accepted and the student will receive a 0 for that submission.
Attendance
-
Allowable absences:
- Max of 3 sessions. Submission of that unit's coursework by the deadline is still mandatory.
-
Perfect Attendance: Attendance at ALL sessions will result in the addition of 10% points to the final grade. (i.e. a 70% would become an 80% and an 85% would become a 95%)
-
Consistent Attendance: Attendance at 70% of all sessions of the course will result in the addition of 5% points to the final grade. (i.e. a 70% would become a 75% and an 85% would become a 90%)
CodePath Requirements for Course Completion
CodePath holds all professional and college students to the same high bar of quality coursework and professionalism. In order to be considered CodePath alumni and receive recognition for successful completion of the course from CodePath, students must complete the course with a final grade of 60% or above.
Students meeting the above requirements will:
- Receive a (digital) CodePath certificate of completion.
- Be considered CodePath alumni and gain access to alumni networks.
- Gain full access to the CodePath career center and be eligible for mentorship opportunities with CodePath professional alumni.
Grade Reports
Students will have access to their CodePath grades through the learning portal.
Student Privacy
CodePath adheres to best practices and complies with all regulations regarding student information and data privacy as outlined by FERPA.
- Private student information and assessment data will only be shared with relevant team members within the CodePath organization and the professor of record for the participating college.
- Students who wish to have their data shared with any 3rd parties must grant CodePath explicit consent of such data sharing.
- Public facing leaderboards, such as Cybersecurity Capture the Flag Competitions, will use aliases and not contain student identifiable information.
Coursework Overview
Coursework for CodePath courses includes a mix of weekly labs, assignments and a final group project.
Week |
Coursework |
Content Description |
1 |
Lab: Git and Building UIs Assignment: Flixster Movies I |
• Constructing View Layouts • Networking • RecyclerView |
2 |
Lab: Book Search App Assignment: Flixster Movies II
|
• Navigation • Passing Data |
3 |
Lab: Debugging workshop Assignment: Twitter I Group Project: Add project ideas |
• Authentication • Search & Filter
|
4 |
Lab: Advanced RecyclerViews Assignment: Twitter II Group Project: Group formations |
• Passing Data • AppBar |
5 |
Lab: Parse Chat Assignment: Instagram App - Feed Group Project: Product Specs |
• Parse • Camera |
6 |
Lab: Fragments and Bottom Navigation Assignment: Instagram App - Compose Group Project: Wireframes/Schema Design |
• Fragments
|
7 |
** Optional Lab:** Google Maps Group Project: Required Stories - Sprint 1 |
• Google Maps |
8 |
Group Project: Required Stories - Sprint 2 |
|
9 |
Group Project: Required Stories - Sprint 3 |
|
10 |
Group Project: Demo Day!!! 📱 |
• Vote for Best App Categories |
Course Structure
This courses teaches Android development in a project-based format over a 10-week period. Each week builds on the skills and knowledge from the previous week:
- Weekly Project. A new basic mobile app is assigned to each student as an individual project.
- Code Review. We will briefly review each app and provide feedback on their code.
- Labs. Students will practice pair-programming while working on app projects during class sessions once a week.
- Online Support. Students can post questions and get support through our Discussions System.
- Github Based Online Learning Portal. Students will have access to a custom learning portal with videos, code samples, and comprehensive documentation library.
- In-Person Class Sessions: Students meet in person twice a week in 2 hour sessions to complete labs, work on weekly assignment project apps and design and implement their final group project. Note: Session frequency and time may vary by university
- Homework: Each week, we will be building an Android app that helps us reinforce and apply the concepts we introduce within the course. Expect the weekly apps to take anywhere from 5-6+ hours to complete each week outside of class. These projects will range from a basic movie reviews app to a full-featured Twitter Client.
- Group Project: In addition to the apps assigned each week, we will also have a collaborative course-wide project. The class will be broken up into groups of 3 students each, and every group will select a larger project to scope, design and build over the course of the class. At the end of the course, we will do a demo day showcasing all of these projects. Read more about the [[course-wide group project|Group Project]].
Assignments
Each week, students will build an Android app in order to apply the concepts they have learned. Weekly apps will take anywhere from 5-6+ hours outside of class session times to complete. Homework assignments are due at 11:59pm local time 1 day before the first session of the following week.
Flixster:
A movie browsing app similar to Rotten Tomatoes
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
A custom Twitter client that allows users to view and create tweets using the Twitter API
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Instagram:
A custom Instagram style app built from the ground up using Parse as a Backend
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
Labs
In the weekly labs, students build apps to practice and reinforce the concepts they are learning. Students will collaborate using a Pair Programming approach. Other lab activities will focus on specific skills like debugging and source control.
- Lab Apps:
- Android UI and Git: An app to view the current best selling books based on the NY Times API.
- Book Search API: An app that explores the OpenLibrary API and Android's Intents.
- RecyclerView: An app to search articles within the NY Times Articles archive.
- Parse Chat: A custom Chat App that uses Parse as a Back-end.
- Google Maps (Optional): A map demo that explores the use of Google Play Services.
- Lab Activities:
- Debugging
- Collaborative Workflow
App Design
We want to ensure that each student concludes the class with the ability to conceptualize, design and architect their own apps from scratch.
Curriculum Breakdown
CodePath course curriculum share a common structure:
- New mobile topics introduced each week building on the previous
- “Core” development topics introduced through workshops and exercises
- Individual mobile projects assigned to build over the first half of the course
- Group project with milestones to design and build over the second half of the course
Weekly Outline
The class takes place over 12 weeks with the following outline, covering {COURSE } development:
-
Week 1 - Fundamentals and UI
- This week introduces the basics of Android Studio, designing screens and UI, and transitioning between multiple screens.
-
Week 2 - Navigation Flows and Passing Data
- This week introduces the Android activity lifecycle and passing data between screens.
-
Week 3 - Network and Authentication
- This week focuses on the core concepts centered around networking and authentication.
-
Week 4 - Passing Data from Appbar and Advanced RecyclerView
- This week introduces passing data to and from Activities and the Android appbar, as well as
-
Week 5 - Parse
- This week introduces Parse, an open source back-end platform that lets you build apps easily.
-
Week 6 - Navigation and Fragments
- This week introduces Fragments and bottom navigation between the fragments.
-
Week 7 - App Brainstorming
- This week focuses on forming groups for the final group project and coming up with app ideas.
-
Week 8 - Product Wireframing
- This week introduces product ideation, user stories, and wireframing. Project groups are beginning the design of the group app that will be implemented over the next 6 weeks.
-
Week 9 - Scheme Design and Sprint Planning
- This week introduces designing data models for your app and sprint planning sessions.
-
Weeks 3-9 - Group Project
- In the final weeks, the students will focus on their group projects, including polishing views, integrating Parse or other APIs, and gestures and animations.
-
Week 10 - Demo Day
- Graduation day! The students will present demos of their group apps in the final week and vote for the top apps.
Group Project
Overview
Over the second half of the class, students will be grouped into teams of three and begin work designing, architecting and building a capstone project.
- Students will be grouped into teams of 2-3 peers
- Students will have group milestone deliverables to complete each week
- Students will design and develop their own app from scratch
- Finishes with demo day showcasing their projects to each other and industry guests.
Topic Breakdown
- Views and Activities
- Constructing View Layouts (LinearLayout, RelativeLayout, ConstraintLayout)
- Using common views (buttons, labels, images)
- Using RecyclerViews
- Event Handling, ActionBar, and Intents
- Listener interface
- Explicit vs implicit intents
- Passing data between activities
- RecyclerView
- Creating an Adapter
- What is a LayoutManager
- Custom views within RecyclerView
- Networking and Persistence
- Authentication
- Networking
- Shared Preferences
- ORM vs SQL
- Using Parse as a back-end
- Fragments and Navigation
- Bottom navigation menu
- Switching between fragments
Support Channels:
- Get support from professionals, TAs and other students by posting technical questions on our Discussions System or the Slack channel.
- support.codepath.org
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
- Browse our ever expanding FAQ based on topic or search by keyword
- For general inquiries, send us a message 📬 to support@codepath.org