Skip to content

Latest commit

 

History

History
114 lines (76 loc) · 6.03 KB

Syllabus.md

File metadata and controls

114 lines (76 loc) · 6.03 KB

Syllabus

Welcome to #MobileProto!

Overview

Description

Mobile Prototyping is a class where you learn to developing android applications. In this course, you will learn the fundamentals of Java, how to design the architecture for an Android application, and how to implement your designs. You will also become effective team-oriented developers.

Teaching Team + NINJAs

Your teachers are Bill Wong, David Abrahams, Nora Mohamed, and Shruti Iyer, with NINJAs Deniz Celik, Hieu Nguyen, and Patrick Huston.

Course Learning Goals

Students will improve their abilities to …

  • Develop Android code with others in mind. Their code will be well documented and readable so that other developers can understand and add onto it, and their apps will be made considering other stakeholders.
  • Work effectively in a team by having good git workflow (simultaneously integrating and iterating), and dividing work fairly.
  • Use and find good internet resources and documentation to teach themselves how to write Android software.
  • Plan out the high level architecture of an Android coding project, including class structure and hierarchy and information flow.
  • Improve upon their work based on previous feedback from their peers and themselves.

Self Study

This is class is a 4 credit Independent Study (IS) in engineering. Note that it does not fulfill your OSS requirement.

Office Hours

Office Hours will be 8-10pm Sunday and Wednesday night in WH3:

  • Sat 5-6pm Patrick
  • Sun: 8-9pm Hieu + Patrick, 9-10pm Nora + Deniz
  • Tues: 8-10pm Hieu
  • Wed: 8-9pm David + Shruti, 9-10pm Bill

If you need help and it's not during office hours, check out our Slack channel, #mobileproto. We advise using it over emailing us when you have code questions (but emailing us is great too). Other people might have the same questions, so using the Slack channel can help them out too.

Course Expectations

We expect that you come to class every day, and you will be responsible for much of your learning. If you fall behind, are struggling to keep up with the course, or have questions, please let us know! Our goal is for you to learn as much as you can.

We expect you to take an active role both as students and as designers of this course. If a certain style or method is not working for you, let us know so we can improve.

Late policy

Homework assignment that are submitted late will lose 50% of the total value of the assignment (homework is due at class's start time that day unless stated otherwise, i.e., 6:30 Mon/Thu). We will accept late work up until the class after the class the assignment was originally due (If homework was due on Monday, you have until Thursday at 6:30 to complete it for late credit). If you are having trouble with an assignment or have extenuating circumstances and will be unable to complete the assignment, please let the teaching team know (either in person or via email) and we will be happy to help you and/or grant you an extension.

The reason for this policy is twofold: We want to consistently and quickly give you feedback on your work so that you can incorporate it into future assignments. We also don’t want anyone falling behind.

Labs and the final project will not be accepted after their due dates if you do not speak with the teaching team. If you are having trouble with a lab/project, come to us sooner rather than later. We will grant extensions as long as you communicate with us.

Honor Code

You will be expected to follow the Honor Code while doing work for this class. If you copy some of your code from StackOverflow or another source, leave a comment in your code linking to the original source. Alongside this code, leave comments that make it clear you understand what you copied. This can be done with either a paragraph or inline comments, whichever you prefer.

Course Structure

We will begin the semester with a series of lessons and corresponding homeworks. We will then transition to a set of two labs, each spanning two weeks. The rest of the semester will be spent on the final project.

Grading

If you want to know your current grade in the class, ask us and we’ll let you know.

  • 20 points -- homework 0
  • 500 points -- 10 homeworks
  • 400 points -- 2 labs
  • 550 points -- final project
  • 30 points -- To Be Announced

Total points: 1500

Point values/totals subject to change

Grade Scale:

  • 92%: A
  • 90%: A-
  • 88%: B+
  • 82%: B
  • 80%: B-
  • 78%: C+
  • 72%: C
  • 70%: C-
  • 68%: D+
  • 60%: D

This will be the rubric we will be using for your homework assignments:

Coding Assignment grading system (50 points total):

Functionality: 30 points

Completion: 20 points
  • 20 - You implemented all of the required features in the assignment. The assignment is complete
  • 15 - All major features were implemented. You didn't get to one or two small features.
  • 10 - Some of the required features were implemented.
  • 5 - An attempt was made to implement some of the of the desired features.
  • 0 - Very few or none of the desired features were implemented.
Bug free: 10 points
  • 10 - The app is bug free
  • 5 - Your app has one or two bugs, occassionally causing unexpected behavior
  • 0 - Your app has multiple bugs, frequently causing unexpected behavior.

Quality: 20 points

Good coding practices: 10 pts
  • 10 - Objects are intelligently designed and used where appropriate, inheritance used when appropriate, code is concise, naming conventions followed, proper access modifiers are used, public getters/setters are used instead of public variables, etc.
  • 5 - Some of the above practices were broken, but you mostly followed good practices.
  • 0 - Good coding practices were consistently broken.
Readability: 10 pts
  • 10 - Functions and variables are named well. Code is well commented where appropriate. Confusing lines are commented. Lines are not too long.
  • 5 - Code is occasionally confusing. Could use more comments. Some variables are poorly named.
  • 0 - Code is difficult to read. Other developers would not be able to use your code.