Giter Site home page Giter Site logo

csci-370-mobileappdevelopment-s2021 / syllabus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from csci-370-mobileappdevelopment-s2020/syllabus

0.0 1.0 1.0 1.31 MB

syllabus for CSCI370 Mobile Application Development course at CofC

Home Page: https://csci-370-mobileappdevelopment-s2020.github.io/syllabus/

Ruby 6.29% HTML 81.04% CSS 12.68%

syllabus's Introduction

layout permalink
default
/

class logo Mobile Application Development syllabus

If you are a teacher or interested in the design of the course, see the meta document.

  • Course: CSCI-370-MobileAppDevelopment
  • Instructor: Keith Briggs
  • Need help?
    • Slack
      • This is a communications medium for students to interact with one another and myself. I encourage students to interact with one another as a resource as well as provide instructor answers.
    • Office Hours: By Appointment
    • Email for 1-on-1 help, or to set up a time to meet
  • Syllabus as PDF
  • Slack info:
    • Channel name: CSCI-370 MobileAppDev Spring 2021
    • cofcmobileappdev2021
    • Instructions.

Course Description

This hands-on, project-oriented course explores the principles and tools involved in the design and construction of applications for mobile devices. Although the course focuses on the Android platform, the basic concepts and experiences extend to other mobile devices. Topics include an overview of mobile application development, the Android application architecture, mobile application lifecycle, managing application resources, designing user interfaces, data storage options, integrating audio and video, location-based services, cross-platform development using a mobile device emulator, and porting applications to actual devices. In addition to several smaller programming assignments to provide experience and reinforce concepts, students will work in teams on a substantial programming project to design, develop, and deploy a mobile application. Computers are provided in the lab, though you are encouraged to bring a laptop for in-class exercises.

Student Learning Outcomes

  • Students will understand the activity and development lifecycle for a mobile application.

  • Students will demonstrate the ability to use a popular/modern mobile application development tool to write, debug, and publish mobile applications which includes such features as tool bars, UI Fragments and Fragment Managers, a backend database, widgets, etc.

  • Students will demonstrative the ability to write an application using the Model View Controller design pattern.

Prerequisites

  • CSCI 221 with a grade of C- or better
  • Understanding of Java programming language, data types, control flow, and basic method usage in Java
  • Working knowledge of an IDE such as Eclipse or IntelliJ (IntelliJ preferred)
  • Working knowledge of Git and Github

These won't be enforced by the instructor, but you will be pretty lost without understanding those concepts. If you need a refresher, take a look at the Beginner Materials.

Course Overview

We will dive into the nuances of Android mobile device programming to teach how to write and understand Mobile Application Development relating those applications to the Model View Controller design pattern. Modern tools such as Android Studio, Git, GitHub, and the Debugger will be heavily used. Slack will be used so that students and instructor may have a collaborative Question and Answer environment. I expect maximum participation with students answering other students' questions if they know the answer. All projects will be administered through GitHub, where students are expected to initiate the assignment and complete under Version Control (accomplished with Git and pushed to GitHub). Completing the assignment as assigned will not be enough for an A+. Students must add at least one "WOW" feature to the project and must be successfully demo'd to the Instructor. Topics covered include:

  • The Activity Lifecycle
  • Debugging Android Applications
  • Creating User Interfaces with Layouts and Widgets
  • UI Fragments and Fragment Managers
  • The Tool Bar
  • SQLite Databases
  • Explicit and Implicit Intents
  • Bluetooth
  • and More...

Homework/Projects

All assignments are listed within the Project Due Dates.

Workflow

  1. Click on the appropiate project link in the Project Due Dates. This will take you to the project in CSCI-370-MobileAppDevelopment GitHub Organization account.
  2. Create your Android project (in Android Studio) with the same name as our GitHub Organization project name with '-yourLastName' appended to the name.
  3. In Android Studio, share the project with GitHub.
  4. Read the instructions provided by the README file.
  5. Modify the files to complete your assignment.
  6. Test your solution with both an Android Virtual Device and a real phone.
  7. Create and include a screenshots of your application in action.
  8. Create a README file to communicate anything you need to me.
  9. Make sure all of your code is committed.
  10. Push/sync up to GitHub.
  11. The day the assignment is due, I would like a quick demo from a real device.
  12. Print all relative files and turn in on the day assignment is due.

All assignments are due at the start of class on the specified date.

  • You can continue to push fixes and improvements until the date (with no penalty) or for one week after (with letter grade penalty) – just add a comment in the pull request to let me know it's been updated.

  • I will leave appropriate feedback as an Issue inside of your repository.

  • Edit the README file in your repository to relay any feedback or instructions about your submission

Versions

For exercises with multiple Versions (V1, V2, etc.) listed in the README: these are intended as guidelines for how to complete the assignments in the smallest/simplest possible increments. You are expected to reach the highest Version for each assignment by the due date. See also: extra credit.

Requirements

  • All applications must build, install, and run properly on a real Android phone (of the student's choosing).
  • Assignments must be completed by the due date. Late assignments will only be accepted one week late and will be marked down a whole letter grade.

Extra Credit

Bonus points for:

  • Automated tests
  • Creativity (as long as requirements are fulfilled)
  • Anything listed under BONUS in the README of the exercise.
  • Something that WOW's me.
  • Look through and create issues

Grading

The final grade for the course is based on 6 grades as follows:

90% of your grade consists of the following:

  • Daily minor assignments and labs – collectively count as 1 grade.
  • Programming assignments – collectively count as 2 grades.
  • Course project – counts as 2 grades.

10% of your grade is attendance/participation

Grading Scale

  • A 90 - 100
  • B+ 85 - 89
  • B 80 - 84
  • C+ 75 - 79
  • C 70 - 74
  • D+ 65 - 69
  • D 60- 64
  • F 0 - 59

Course Schedule (tenative)

Topics Covered:

  • Jan. 12/14 Syllabus overview, Overview of Android Application Development
  • Jan. 19/21 Semester tools, Android Studio
  • Jan. 26/28 Architecture, Activities and Lifecycle, Intent Objects, Managing Resources
  • Feb. 2/4 Events, Saving Activity State, User Interface Basics
  • Feb. 9/11 User Interface Basics, Debugging Android Applications, Positioning with Layouts
  • Feb. 16/18 Positioning with Layouts, Semester group project introduction
  • Feb. 23/25 Lab #3
  • Mar. 2/4 NO CLASS (Study Days)
  • Mar. 9/11
  • Mar. 16/18
  • Mar. 23/25 Advanced ArrayList Adapters
  • Mar. 30/1 Data Storage (Preferences, File System), JSON
  • Apr. 6/8 Threads, Network Applications
  • Apr. 13/15
  • Apr. 20/22 Material Design
  • Apr. 27/29 Location-Based Applications
  • Apr. 6/8
  • Apr. 10 Fragments
  • Apr. 13/15 Firebase Database
  • Apr. 20 Project Demonstrations
  • Apr. 30 Final Semester Projects Due

Resources

Required Reading

Recommended Reading

Beginner Materials

This class assumes you are confident with this material, but in case you need a brush-up...

Tools

GitHub

Reference

Statements on Plagiarism

SCPS

The College of Charleston takes plagiarism very seriously and regards it as a form of fraud. The definition of plagiarism that has been adopted by the School of Continuing and Professional Studies is as follows: "Plagiarism is presenting someone else's work as though it were one's own. More specifically, plagiarism is to present as one's own words quoted without quotation marks from another writer; a paraphrased passage from another writer’s work; or facts or ideas gathered, organized, and reported by someone else, orally and/or in writing. Since plagiarism is a matter of fact, not of the student's intention, it is crucial that acknowledgement of the sources be accurate and complete. Even where there is not a conscious intention to deceive, the failure to make appropriate acknowledgement constitutes plagiarism. Penalties for plagiarism range from failure for a paper or course to dismissal from the University.

Instructor

Reuse and building upon ideas or code are major parts of modern software development. As a professional programmer you will never write anything from scratch. This class is structured such that all solutions are public. You are encouraged to learn from the work of your peers. I won't hunt down people who are simply copying-and-pasting solutions, because without challenging themselves, they are simply wasting their time and money taking this class.

Please respect the terms of use and/or license of any code you find, and if you reimplement or duplicate an algorithm or code from elsewhere, credit the original source with an inline comment.

Pairing Tips

  • Groups of two, unless there is an odd number of students
  • Agree on an editor and environment that you're both comfortable with
  • Use Github for collaboration, branch/merge model is recommended
  • Meet regularly. Use Google Hangouts when you cannot meet in person (Hint: Sharing your screen is very useful)

Honor Code and Academic Integrity

Lying, cheating, attempted cheating, and plagiarism are violations of our Honor Code that, when identified, are investigated. Each incident will be examined to determine the degree of deception involved. Incidents where the instructor determines the student’s actions are related more to misunderstanding and confusion will be handled by the instructor. The instructor designs an intervention or assigns a grade reduction to help prevent the student from repeating the error. The response is recorded on a form and signed both by the instructor and the student. It is forwarded to the Office of the Dean of Students and placed in the student’s file. Cases of suspected academic dishonesty will be reported directly by the instructor and/or others having knowledge of the incident to the Dean of Students. A student found responsible by the Honor Board for academic dishonesty will receive a XXF in the course, indicating failure of the course due to academic dishonesty. This status indicator will appear on the student’s transcript for two years after which the student may petition for the XX to be expunged. The F is permanent. Students can find the complete Honor Code and all related processes in the Student Handbook at http://deanofstudents.cofc.edu/honor-system/studenthandbook/index.php

Disability/Access Statements

The College will make reasonable accommodations for persons with documented disabilities. Students should apply for services at the Center for Disability Services/SNAP located on the first floor of the Lightsey Center, Suite 104. Students approved for accommodations are responsible for notifying me as soon as possible and for contacting me one week before accommodation is needed.

Attendance policy

Attendance is highly recommended. Daily grades (in-class assignments) cannot be made up. (See the grading policies above.)

syllabus's People

Contributors

afeld avatar kabriggs991 avatar will-sommers avatar dannyc avatar francisfuzz avatar readmecritic avatar

Watchers

James Cloos avatar

Forkers

suzaram3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.