Unit 8 Overheads: HW 2 and Android Final Project Descriptions Kirk Scott 1.

59
Unit 8 Overheads: HW 2 and Android Final Project Descriptions Kirk Scott 1

Transcript of Unit 8 Overheads: HW 2 and Android Final Project Descriptions Kirk Scott 1.

1

Unit 8 Overheads: HW 2 and Android Final Project Descriptions

Kirk Scott

2

Normalized response spectra of human cones, S, M, and L types, to monochromatic spectral

stimuli, with wavelength given in nanometers.

3

8.1 Introduction

4

Purpose

• This set of overheads is just a summary of the information in the Word documents posted online

• The purpose is to make sure everyone is informed and give them a chance to ask questions if they want to

• It’s not too soon to start thinking about HW 2 and what you want to do for the final project

5

Deadlines

• Depending on the year, the exact dates will vary, so check the syllabus

• In general, though, this is the plan• You will be getting this introduction to the project

about 1/3 of the way into the semester• At the 2/3 mark you have to turn in HW 2 and let

me know what you plan on doing for the final project

• At the 3/3 mark—time’s up…

6

8.2 HW 2

7

Part 1

• This assignment essentially covers the contents of the units on activities and resources.

• The concluding example app of the unit on resources, which cycled through 5 repetitions of echoing, should illustrate all of the kinds of functionality needed in order to do this assignment.

8

• For this assignment you will only be checked on functionality.

• It is not necessary to use any graphical bells and whistles, like colors or images.

• You are welcome to use them to enhance your app if you want to, but no points will be given for this.

9

• This assignment is worth 50 points. • It is effectively all or nothing. • Either you can implement the functionality or

you can’t.

10

• There are no screenshots or graphical design documents for the assignment.

• You will have to do your work based on the verbal description given below and your familiarity with the example app from the unit on resources.

• Note that you may want to sketch some screens as part of your own design process.

11

• The app for this assignment should essentially be a simple form of digitized flash cards.

• In succession it should show question and answer for a series of different questions.

• It will not take in any responses (answers) from the user.

• User input will consist only of clicking buttons.

12

• The description of the assignment can be broken down into screens.

• It is your decision how to implement your code as activities.

• The functionality/screens can be described as follows:

13

• 1. A welcome screen. • This should contain some sort of informational

message and a button which will cause a transition to (2).

14

• 2. Exactly how you arrange the components of this screen is up to you.

• For the purposes of explanation, the components are given and described below in a certain order:

• • An area which will present a predefined question• A button which will cause the answer to the question to be shown

while leaving the question on the screen• An area which will present the answer• A button which will cause a transition to a screen that is formatted

the same as this one, with the next question shown on it• A button which will cause the app to end (a transition to (3))

15

• 3. A good-bye screen with a message of fond farewell.

• You should reach this screen either by clicking the last button described above or by running through the complete set of questions and answers.

16

Part 2

• This description of the assignment is being given in advance of the sections it covers

• This assignment essentially covers the units on these topics:

• Layouts, Input Controls, Events, Menus, and the Action Bar.

17

• The list below contains a subset of the section headings from these units.

• List A:• • List View• Grid View• Checkboxes• Radio Buttons• Toggle Buttons• Spinners• Pickers• Menus• The Action Bar

18

• The list below contains a smaller subset of section headings.

• • List B:• • Linear Layout• Relative Layout• Buttons• Text Fields

19

• Your assignment is to implement 5 of the things given in list A.

• Each of the 5 items you choose will be worth 10 points apiece for a total of 50 points possible.

• Although the things in list B are also section headings, you can earn no points by implementing them.

20

• You may choose to implement all 5 things that you’ve chosen in a single app.

• If so, those 5 items do not have to be integrated into a coherent program that does anything useful.

• The only purpose of the homework is to demonstrate your knowledge of the items and your ability to implement them.

21

• You also have the option of implementing the items you’ve chosen in anywhere from 2 to 5 different apps.

• Again, the purpose is simply to show your knowledge.

• Each individual app doesn’t have to do anything useful except illustrate the item.

22

• Your apps will be black box tested. • It is up to you to do the homework assignment

as you see fit, whether you try to write your app from scratch or whether you do it by adapting or modifying existing code from any source.

23

8.3 Final Project

24

Contract

• The final project is based on a contract between you and the teacher

• At the 2/3 mark, you have to present a written document containing your project proposal

• This has to be approved by the teacher• Its contents are open to discussion or

negotiation• The general plan is outlined below

25

• The contract has to contain a brief, clear textual description of what you have in mind

• Think in terms of 1 page• The main part of the contract will be a list of

numbered items• These are clearly identified parts of the project• You will have to associate points with each part

26

Parts and Points

• At one extreme you could say the project consists of one part, worth 200 points

• At the other extreme you could say the project consists of 200 parts, worth 1 point apiece

• A happier medium would be 5 to 10 to 20 parts, worth 40, 20, or 10 points apiece, respectively

• Not all parts have to be equal in value, but the total has to be 200

27

What are the Items?

• For a code intensive app, you could identify different parts of the logic or functionality which you assign points to

• You could also assign points to different GUI features, namely elements of the Android API which you use

• Anything which can be clearly defined and identified in the finished app is open as an item to have points assigned to it

28

Philosophy and Outcomes

• The final project is based on the idea that students can get out of the course what they want to

• This leads to certain consequences• It will affect how you go about writing your

contract• It will affect how grades will be given

29

• There will be a tension between proposing a lot, with the prospect of not being fully successful, and proposing very little in the hope of being completely successful

• There may be a temptation to propose little• There is an additional aspect of the project

contract which should encourage people to propose more than the minimum

30

• In addition to the list of items with points attached, the contract has to contain a proposed grade for successful completion

• If the proposed grade is an A, then successful completion is worth 200 points

• If the proposed grade is a B, then successful completion is worth 200 * 90% points

• This continues down through the grade cutoffs, 90, 80, 70, 60

31

• There are several different scenarios that might occur at grading time

• The simple case is that everything goes as planned and grading is a purely mathematical exercise

• This would be nice, but it might not happen in most cases

32

• Here are some other cases:• Someone proposed an ambitious project and

fell short—but even so, the project was a major undertaking, involved a lot of work, and was successful overall

• Someone proposed a minimal project, but got inspired while working on it and added a bunch of features and ended up with something much better than originally proposed

33

• In general, for a lot of projects it is likely that some things will work as planned, some won’t, some will be dropped, some will be replaced, and some will be added

• In other words, the contract was a starting point for doing development, but what you have at the end doesn’t really agree with the contract

34

Deliverables

• At the end of the semester, you will have to do several things:

• Give an in class presentation• Prepare a written report• Demonstrate the project to the teacher• Prove that you have source code for your project

(possibly by copying the project to the teacher’s machine)

• Have a discussion with the teacher outside of class

35

Grading

• The final report and the discussion will be integral parts of the grading process

• For better or worse, there will be a lot of professorial discretion in the grading

• The best possible case is an ambitious project that’s fully successful

• All other cases may involve “upgrading” or “downgrading” depending on what happened

36

• On the other hand, keep in mind that when professors devise assignments and tests for a “normal” course, even if grading is rigidly deterministic, their discretion in creating the course definitely affects the grades that result

• In other words, nominally objective courses have a subjective component

• The discretionary component of this course is just out in the open

37

• The overall philosophy, as mentioned earlier, is to allow students to do what they want to do, and reward them for taking the initiative

• The awarding of letter grades is of secondary importance

• As part of the final report and discussion, in case things have gone awry, the student has the chance to justify, explain, and make the case for the letter grade they think they should get, regardless of how the project turned out

38

• This point can’t be emphasized enough:• The reality is that you will be reverse-engineering

your contract• Even experienced programmers can have

difficulty estimating the level of time or effort needed to implement various features or functions

• None of us, including the teacher, has any realistic experience implementing Android apps in practice

39

• I would not seriously require keeping a timecard of activities

• However, you could try to keep track of the amount of time spent working on implementing various items in your project

• It would provide useful objective information for your final report, especially if you had to make major changes from what you proposed in your contract due to time constraints

40

• Another objective measure of effort is lines of code generated, for example

• If you chose to document this, it would be another objective item that could be included in your final report

41

• It’s well understood in the software development world that time spent or lines of code alone are not particularly meaningful measures

• Time can be wasted• Useless code can be written• If used honestly, they can still add a dimension

to an estimation of effort expended in a project

42

Content

• In general, there are no restrictions on the content of your project

• Your imagination and your ability to implement are the only limitations

• You are welcome to assign points to features, like graphical user interface things, which have been covered in class

43

• You are also encouraged to use features of Android that weren’t covered in class

• If you go out to the developers’ Web site for Android there are all sorts of possibilities

• Lots of the topics sound interesting• You may just pick one and decide to build an

app around a particular feature that you’d like to master

44

Examples

• Some students may have enrolled with a clear idea of the kind of app they would like to learn how to develop

• The final project is an opportunity to do that• Other students may not have a good idea of

what to do• They may be kind of at a loss because in other

courses they’ve always been told what to do

45

• On the following overheads example project ideas are listed

• They may not be very inspiring, but they follow from the programming assignments, so they should at least be understandable

• The individual ideas listed may or may not make complete projects

• If you want to use them, you can• You can mix and match the features you’d like to

include

46

Examples Inspired by Wari

• 1. Redo Wari with linked cups and a listener structure more reminiscent of the final project code for CSCE 202. This alone is not very ambitious.

• 2. Redo Wari so that it has clickable cups and dots representing the seeds. This is reminiscent of the version of Wari at the 2/3rd mark in CSCE 202. This is actually a reasonably interesting problem. Done right, the various components would resize themselves to fit nicely on any sized screen.

• 3. Implement some other board game altogether.

47

Examples Inspired by Flashcards

• 1. Write an improved version of flashcards where the user can step through the various parts of a multi-part answer, one click at a time. Think in terms of the steps in a math problem solution, or the multiple lines of an SQL query.

• 2. Write an improved version of flashcards which includes a scratchpad area where the user can scribble their answers (either with the keyboard, or better yet, using a stylus or fingertip) before checking them with the app.

48

• 3. Building on (2), write a version of flashcards where the user’s answers are saved and can be replayed in some fashion.

• 4. Building on (3), write a study guide creation app. The idea here is that the original app contains no answers—just questions. As the user enters answers, they are recorded in tandem with the questions. At the end, the app works like flashcards. In other words, this app causes users to create their own study guides.

49

• 5. Building on (4), write a completely generic study guide creation app. In other words, the user is prompted to enter both questions and answers, in succession. At the end, the collected set works like flashcards.

• 6. The foregoing train of thought could lead to an app that had nothing to do with flashcards and was simply a data-entry tool for some problem domain. Up to this point, you might have been managing questions and answers as resources. Or you might already have reached the conclusion that having a db backend would be helpful. For a full-scale data entry tool, a db backend would start becoming a necessity.

50

• 7. Write a two-player version of flashcards. The idea here is that one student could quiz another. The app plays in teacher mode on one device. This shows both the question and answer, plus it has a button to advance to the next question. The app plays in student mode on another device. Here it shows only the question. The idea is that the student would have to orally answer the teacher before being advanced to the next question.

• 8. Think in terms of vocabulary flashcards for foreign language learning. In addition to the text of the words in the two languages, consider adding the following: pictures, pronunciation sound, pronunciation recording and playback, videos.

51

• 9. Building on (7), make the language bi-directional. In other words, make it just as useful for the speaker of either language as a native speaker to practice vocabulary in the other.

• 10. Instead of a question and answer format, develop a flashcard app based on multiple choice questions. Notice that foreign language vocabulary would be relatively easy to implement. Along with the one right choice, 3 others could be randomly selected from the master list of all vocabulary included. This could be randomized so that the choices and the position of the correct answer would be different every time.

52

• 11. Building on (9), create an app that will actually test the student, recording counts of the number correct. In theory you could grow this into an app that changed the path through the questions and answers based on the knowledge that the student has already proven based on previous answers.

53

Meta-Projects

• I do not expect most students to be interested in doing this.

• However, someone might be interested, and it would lead to a more complex project, even though, as you will see, the second level will be Java programming, not Android programming.

• Suppose you did one of the suggested flashcard versions of the project, or some variation on it.

54

• Now write a Java program that has a user friendly graphical interface where someone who doesn’t know anything about Android apps could enter the questions and answers.

• At the click of a button, the Java application would produce all of the files needed for the corresponding app.

• The Java application would have to have a predefined “idea” (template) for the app in question.

55

• This may seem to duplicate some of the ideas given above.

• In other words, if you can have the app itself prompt for questions and answers, why build a Java application?

• One reason is that you have access to a full sized keyboard and monitor when doing the work.

• Another reason is that if you are developing multiple flashcards apps, say for multiple chapters in a book, you have a convenient grand central station for organizing your work.

56

• It would be the starting point for creating an environment where you could develop multiple versions of the same app that would work on different devices.

• In short, it’s a step towards production work rather than piecework.

• This idea could apply to multiple choice as well as simple question and answer apps.

• In the long run, the Java application could have multiple templates, and the user could select which one to use when creating an app.

57

Undergraduate Research

• Both the full development of flashcard apps and a flashcard based meta-project could be the basis for an undergraduate research project.

• Other completely original apps could also be the basis for and undergraduate research project.

• If anyone is interested in undergraduate research funding, you can do a search on the UAA Web site for information on funding.

58

• You can either talk to me before or after doing such a search.

59

The End