Assignments
- Java style guide to which all submitted code should conform.
- For those having trouble with Android Studio (particularly the virtual device emulator) on their personal computers, SFU provides resources for accessing the CSIL computers remotely
Assignment 1
- Assignment description.
- Provided files, such as sample output and partial text UI.
- Due September 23rd by 11:59pm
- Intro Java programming demos
Basics: main(), functions, if, for loop
Data class (fields, constructor, toString()...)
ArrayList and For-Each loop
Model/View Separation
JUnit 5: Setting up IntelliJ Java Project
JUnit 5: Testing- Readings: Suggested free book chapter on learning Java.
- Depth of Field Resources:
- [Optional] Suggested Android Videos
- Git in Android Studio: Creating a GitLab repo, SSH key, and initial push of code.
- Creating a button: Create simple project and add a button calling Log and Toast.
- TextView and strings.xml: Move text to strings.xml, use Java to access string and display on TextView.
- UI & model separation: Separate business logic (Java classes) from the UI (Activities); a pet rock.
- Debugging in Android Studio
-
- See assignment submission directions for how to create/test ZIP file.
- Solutions page on Canvas.
Assignment 2
- Assignment description.
- For Android tutorials, see video tutorials. Here are some highlights:
- Getting started with Android
Creating a project with a button, shows Log and Toast.
TextView and use strings.xml for text
Separate business logic (model) from UI (view) -- recommended - Needed topics
Git in Android Studio: SSH key, initial push
Singleton pattern to share object reference across multiple activities
Constraint Layout
Floating Action Button & Material Design icons
Debugging in Android Studio
ListView with text from an array
Switching activities - Topics for "optional" features
Passing data to an Activity using Extras and Intents
Complex ListView with text and images from a list of objects (source code).
SharedPrefernces and TextView.
- Getting started with Android
- Suggested reading: Chapters 1-9 of Big Nerd Ranch book.
- Due October 7th by 11:59pm
- Submit via CourSys
- See assignment submission directions for how to create/test ZIP file.
- Solutions page on Canvas.
Assignment 3
- Assignment description
- Due Wednesday, October 21th by 11:59pm.
- Requirements document.
- Submit via CourSys
- See assignment submission directions for how to create/test ZIP file.
- Strongly recommended videos:
- Dynamic Buttons and Images: populating a table of buttons at runtime and setting text and images on the buttons.
source code
Hint: If your button sizes change when adding text, set the text size in the button before you lock their sizes. - UI Layouts.
- Forcing activity orientation (to portrait or landscape mode).
- Resource by Name: accessing a resource (image) by its name, not its ID.
- Radio Buttons: build radio buttons from data in a resource file.
- Options Screen: create custom options/settings screen with SharedPreferences.
- Dialog (AlertDialog): create a custom AlertDialog and interacting with parent Activity.
- Dynamic Buttons and Images: populating a table of buttons at runtime and setting text and images on the buttons.
- Possible Images
- Commit your code to a GitLab repository then create a 'tag' for the code you want to submit. Submit this tag and GitLab URL for your repository to CourSys (as described in the assignment document. Solutions page on Canvas
Policies
Late Policy: 10% penalty per calendar day; max 2 days (usually). Contact the instructor before the deadline if there are extenuating circumstances.
Extensions and Deferrals: If you are unable to complete an assignment or you will miss an exam due to medical reasons, only the University's Certificate of Illness form will be accepted as proof. Please contact the instructor before the assignment is due or before missing the exam to discuss alternative arrangements.
Academic Honesty: The MOSS tool will be used to check the originality of all electronic submissions.
- SFU's Academic Honesty policy is crucial to earning credit in this course. Violations of the policy will be taken seriously and reported to the department and university.