辅导案例-CSCI 4176

欢迎使用51辅导,51作业君孵化低价透明的学长辅导平台,服务保持优质,平均费用压低50%以上! 51fudao.top
P a g e | 1


CSCI 4176 and 5708
Mobile Computing
Project Specifications
Project Overview
The course project is your opportunity to develop skills and expertise in mobile application
development. It is designed to take you through all stages of mobile development, from
coming up with a new idea for an application to designing, implementing, and testing the
application. The final deliverable will be a marketable, feasible, and operational Android
application.

Your application can be in an area and target any user-group(s) of your choosing. It
should combine at least two mobile device features, such as a camera, GPS, accelerometers,
and so on, in an interesting and useful manner. The application must also use Bluetooth,
WiFi (i.e., IEEE 802.1) or cellular networking in some capacity. These hardware
requirements are in addition to the use of the touch screen and the UI of the underlying
platform. Device features vary from device to device, so an exhaustive list of options is not
possible; check with the instructor if you are not sure about what counts as a feature. The
point is not to create a “Franken-App”1 but to combine features to provide functionality that
is useful, meaningful, and seamless.

The application should also provide interesting and useful functionality. It should not be a
technology demonstration or a “toy” application. For example, you should not create your
own version of SkipTheDishes, Uber Eats, or DoorDash with a tiny pre-defined database to
“demonstrate” how it would work once you have actual customers. The application will
likely have multiple views (screens) and is expected to perform a useful task. That is, if no
one would ever want to buy your application, even if it were free, then you may need to
rethink your application and requirements.

You should be able to divide the functionality of your application into three distinct levels:
1. Minimum Functionality: The minimum amount of functionality that you expect to
implement, assuming all your carefully laid plans are disrupted.
2. Expected Functionality: The functionality you expect to implement, assuming
most things go according to plan.
3. Bonus Functionality: The functionality you would like to implement, assuming
you managed to get everything done a lot earlier than expected. This is your
opportunity to be really creative and showcase advanced mobile computing concepts.


1A FrankenApp, is like Frankenstein’s monster – a collection of parts/features that is poorly assembled and for which
many of the parts/features are inappropriate and ill-fitting.
P a g e | 2


Your application should also have a high level of usability. While you will not have a lot of
time to test and refine your application, it should look as professional and high-quality as
possible. Some important elements of usability are:
1. How enjoyable and easy your application is to use,
2. How well your application meets user expectations,
3. How attractive your application looks, and
4. How effective your application functions.

Usability and conformance with usability heuristics is not an optional element that you add
after you have created a working application; it is required and necessary component of the
entire development process. Unusable applications are equivalent to trash. Of course, there
is a trade-off to be made when deciding whether to improve usability or coding new features
as you will not have time to do everything. It is also important that you consider the
usefulness and marketability of your application. That is, how well does your application
distinguish itself from other applications in the same domain/market/category?

The “No Credit for Backend Service” Clause
Marks are awarded solely for the portions of the application (i.e., frontend) that execute on
a mobile device. If the implementation of your application includes a remote server (e.g., a
backend service), you should be aware that no marks are awarded for the server
portion of the implementation. That is, you should avoid implementing a backend
service. You are encouraged to use API services instead of trying to implement your own.
However, use of a remote database is encouraged and your data model, access protocols,
and integration of this database into your architecture model will be evaluated.

Tool Use
For the project, you will need to create a private repository for your project on the
Dalhousie CS GitLab. If you are using Git for the first time, please consult the available
documentation to set up your computer.2 Please ensure that the course staff have access to
your repository.

All projects will make use of the Git repository system and will be hosted on the FCS
GitLab – no exceptions. This project is an opportunity for students to practice or ldevelop
the necessary competencies to contribute to a software project using Git and a remote
service like GitLab. Please be aware that all repository systems have similar functionality,
so skills learned with Git will translate to the use of other tools as well. Please note that the
FCS GitLab is not GitHub – it is a private version of Git that exists for computer science
students at Dalhousie.

Production and Output
More is not necessarily better. I have seen 400 LOC outperform 10 KLOC on the same task.
A larger quantity of code will not necessarily have higher marks than submissions with less
code, as the quality, complexity, performance, and effectiveness of the code is of
considerable importance.

2 Guide to set up Git and GitHub authentication https://help.github.com/articles/set-up-git/
P a g e | 3


Failures, prototypes, and similar activities are not always evident or easy to measure. I
recognize this and will not penalize anyone who can clearly demonstrate (in their final
report) that they did research, prototyping, problem-solving, and other activities that do not
directly lead to the immediate production of code. Writing the “right” 500 LOC is more
important than writing more code of lesser quality. Please document your efforts and
failures as well as your achievements and successes.
Trying is good – using failure as an excuse for doing nothing is a lie.

Quality
Quality is a concept that means “you did something well.” In the software community there
are many definitions of quality.3 Quality cannot be measured by an all-encompassing
checklist or rubric. There is a subjective element that is associated with experience,
skill, and ability. You will not receive an ‘A’ level grade for something that is merely
average and standard. Completing all the requirements is not sufficient for an ‘A.’
That is, your mark will be based on effort and the results of that effort. Something
done well is not the same as something done satisfactorily (i.e., satisfies
requirements). Do not think that following instructions is the same as doing high
quality work.

For example, suppose I ask you to write a sentence about feeding a cat. “My cat eats
fish;” “My little black cat, Missy, loves Friskies seafood delight and will meow for an
hour until I feed her each morning.” – both sentences describe feeding a cat, but the
second is higher quality because of things that are hard to measure (grammar,
depth of expression, insight, vocabulary, ability to elicit imagination, and so on).
Code is like English in that the subjective elements of quality are hard to describe.
Quality also means including appropriate citations and references. Plagiarism and
academic dishonesty are clear indications of low quality!

Project Deliverables
There are several project deliverables associated with required milestones:
1. Project proposal (this assignment).
2. Project plan.
3. Pre-break status report.
4. Project implementation (i.e., the code and completed application).
5. Project final report (i.e., learning summary).

Project Proposal
The project proposal sets the stage for your application. The project proposal should answer
many of the questions that are asked before any development and implementation takes
place. The proposal should describe what it is you are planning to do and how much you
expect to accomplish. It is essentially a contract between you and the instructor. The

3 See https://en.wikipedia.org/wiki/Software_quality for a summary and more details.
P a g e | 4


proposal should be between 4 and 6 pages in length (longer is acceptable; please use an 11-
point serif-font, left justified, ragged right) and should contain the following content.

Title Page and Abstract: This includes the title of your project, your contact information,
and the abstract -- a brief 100-word summary of what you intend to do and that briefly
describes the application you are proposing.

Introduction and Background: You should set the stage for your proposal, describing
what your project will be, why this is an interesting idea, and what you intend to
accomplish. You may also want to include any background or other relevant information
that the reader should know before reading the remainder of the proposal. It could be
useful to describe similar applications and how you differ from them.

Users: Identify your target audience. That is, who you want to use your application.
Explain how you are appealing to this audience. Be specific; details matter!

Purpose, Benefits, and Usage: Describe what the purpose of your application is and
what benefits users will derive; i.e., why would users (as identified in the previous section)
use this application? Where and how will this application be used? What constraints (e.g.,
connectivity, location of use, memory needs) will impact the application? What is the user’s
state of mind (e.g., distracted, under stress) while using the application and how will it
affect use?

Functionality: This section describes all the functions that your application will
(hopefully) perform. As mentioned previously, the functionality should be divided into three
parts:
1. Minimum Functionality – what you must complete for a minimally functioning
application.
2. Expected Functionality – what you plan to complete for a useful application.
3. Bonus Functionality – what you consider optional; useful functionality that your
application can do without, but which really makes it better.

Note this is a very important section because impacts my expectations and your project
grad. Achieving minimum functionality is typically required for a C grade, most expected
functionality is required for a B, and some bonus functionality is expected for an A.
However, I would prefer that you “dream big” and have too much functionality that you
can’t complete than you be overly conservative and finish all the bonus functionality of a
simple and unimaginative application. I expect this section to be the longest and most
detailed part of the proposal. As far as I am concerned, you can never “over-specify” an
application. Failure to plan is planning to fail!4 There is no required format for your
functional specification as your content and detail matters more than the format.

Architecture: My first question is always, “have you reduced or eliminated the back end?”
In this section, describe the high-level organisation of your application; i.e., the hierarchy or
site-map and the functional decomposition. While it is entirely expected that this could

4 Attributed to Benjamin Franklin.
P a g e | 5


change throughout the design and implementation of the application, an initial high-level
design demonstrates that you have done some research and considered some of the issues
that you will need to contend with throughout the project.

Tools: What tools will you use for project management, progress tracking, fault tracking,
and so on? You are not required to use any tools other than Android Studio and GIT, but it
may be beneficial to do so.

Other: You may also want to include a risk assessment, some preliminary test plans, or
implementation planning, perhaps using timelines, Gantt charts, and other illustrations.
There is no required length on the document, but it needs to clearly demonstrate that you
have thought deeply about what needs to be done and have some ideas on what you will
need to do. The one thing I can stress is that the more evidence I see of critical or creative
thinking, the more likely you are to achieve a high mark. Simply using the structure and
titles presented here (e.g., functionality, architecture, tools) is not evidence of critical or
creative thought.

Learning Outcomes
This project supports Course Objectives a. to f. from the course syllabus.

In addition, upon completion of this project, students should be able to:
1. Evaluate and research application ideas for viability, desirability and feasibility.
2. Create an ad-hoc and informal software requirements specification.
3. Integrate a user-centric approach (e.g., target audience focused) with application
and feature design.
4. Express their development experience accurately and concisely in a written
document.

P a g e | 6


Evaluation Criteria
This proposal will be evaluated with the rubric given in Appendix A.

This assignment will have a mark out of 40. I expect the average score for a component to
be somewhere between a 7 and an 8 (7 is the 70% pass that a graduate student needs). I
will give half marks (e.g., 7.5, 8.5). Spelling must be Canadian/International/British (not
US). A zero will be given for any missing part. Marks may be deducted from the final score
if there is some obvious mistake or issue that isn’t covered by this rubric (e.g., the grammar
is so poor as to significantly hinder the document’s readability).

A small bonus may be given for work that demonstrates ideas or presentation that is
unique, creative, different, or interesting. No score can go above 50 (perfect) even with any
extra bonus marks. You will not be penalized in any way for trying something new, novel,
different, or risky – so long as it is described well. I value effort, imagination, and courage.

Expectations are different for graduate students. You have all completed your
undergraduate degrees and thus you will be expected to perform at a level above that of the
undergraduate students. Graduate students are in the upper percentiles of students with
an undergraduate degree and my expectations are based on this fact.

When marking, I ask myself:
o Did you put some thought into the application? Is it simply “obvious” or are there
insights that show a deeper analysis of the problem and domain?
o Does everything you say make sense? Is there sufficient detail, consistency, and
accuracy?
o Does it look like you gave this assignment much effort? There is a difference between
concise (short but strong content) and low effort (short and vague). Does it feel like it
was written at the last minute and has little to no research or critical thinking?
o Does this look like a bunch of stuff found on Google that shows little to no originality?
o Is there a lot of extra “fluff”? Longer isn’t better if the extra stuff doesn’t support and
add to goals (satisfying the outcomes).
o Do you have all the required parts? Is this a complete report?

Document Requirements
I expect your submissions to adhere to the following requirements:
i. Use of ragged right (i.e., left justified) as MS Word does not perform full justification
correctly.
ii. Use of a font with serifs because it is known to be easier to read.
iii. A satisfactory reference list with no secondary references and associated citations in
IEEE or APA format.
iv. No use of point form. Minimal (if any) use of bulleted or numbered lists.
v. Good, but not great, grammar. Put your effort into thinking, not into writing. I’d
rather see original work with weak grammar than content with exceptional
grammar that was written by someone else.
P a g e | 7



Component Unacceptable: 1-2 Minimal: 3-4 Good: 5-6 Really Good: 7-8 Exceptional: 9-10
Idea:
1. Feasible? Can
you do it?
2. Desirable? Do
users want this?
3. Viable? Would
it be successful?
4. Target audience
clearly identified?
Only a few sentences or
very confusing and
doesn’t make sense. Off-
topic. Not really feasible,
desirable, or viable. No
target audience identified.
You address one or two of
the 3 criteria, but there is
clearly a lot missing. Could
be made feasible, desirable,
and viable. A “Frankenapp.”
Describes an audience but
the audience is the wrong
one or wasn’t detailed
sufficiently
Picked an acceptable idea
that meets all 3 criteria and
partly explains why it does.
Something sensible, but not
unique, interesting, or
useful. The suggested
audience is reasonable and
is described somewhat but
not in detail.


Proposed an acceptable app.
Justified their reason for
picking it and explained
those reasons well with
respect to the three criteria.
An app that has a good
chance of being used.
Audience is adequately
described and indicates an
understanding of user
perspectives and
expectations.

Proposed an acceptable app
and explained it well.
Provided excellent
resources to help justify
choices. Very creative and
original ideas. Answered
everything well and
thoroughly without adding
extra “fluff.” Concise.
Research: Have
you done suitable
exploration of the
domain, the
competition, the
target audience,
and so on?
No or very minimal
research.
You provide some
indication that you did more
than just think something up
to create an assignment.
You have satisfactory ideas
that suggest you understand
the domain, but it is not a
deep or insightful
understanding.
You know the domain and
have examined it
sufficiently. You know what
has been done, what users
expect, and what will work.
You convince me that you
know the topic better than
average.

You present yourself as a
domain expert, with a deep
understanding of the
problem domain, other
similar apps, and other
issues. I am convinced you
know the topic at an
exceptional level.
Detail: Is this
vague or precise,
particularly the
functionality?
Little to none. Everything
is vague or confusing.
You have a few details but a
lot is vague and uncertain.
You describe things to the
level that I can understand
what you intend.
You describe things in a
way that permits
implementation, but a lot of
questions will need to be
asked.

Everything is described at a
level in which it could be
implemented without many
questions asked.
Presentation
1. Appearance
2. Organisation
3. References
4. Conciseness
5. Overall quality
Unreadable and unclear. Point-form, bullet-lists,
sentence fragments, etc. No
references. Looks childish
with inconsistent spacing,
big fonts, lots of wasted
space, etc.
No references. Not very
attractive but meets
expectations for the level of
student.
Weak references (e.g., all
websites), weak formatting
of references. Looks OK,
but not professional (poor
fonts, low quality clip art,
bad kerning/spacing) etc.
The document has perfect
grammar and spelling. It
looks professional.
References are thorough
and not just websites.
Content is well organised.
Not a lot of extra “fluff” – it
is concise. Almost no room
for improvement at all.


Mobile Computing Project Proposal
Appendix A: Marking Rubric

欢迎咨询51作业君
51作业君

Email:51zuoyejun

@gmail.com

添加客服微信: abby12468