Download presentation
Presentation is loading. Please wait.
Published byLambert Fox Modified over 9 years ago
1
Unit 8 Overheads: HW 2 and Android Final Project Descriptions Kirk Scott 1
2
Normalized response spectra of human cones, S, M, and L types, to monochromatic spectral stimuli, with wavelength given in nanometers. 2
3
8.1 Introduction 3
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 4
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… 5
6
8.2 HW 2 6
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. 7
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. 8
9
This assignment is worth 50 points. It is effectively all or nothing. Either you can implement the functionality or you can’t. 9
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. 10
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. 11
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: 12
13
1. A welcome screen. This should contain some sort of informational message and a button which will cause a transition to (2). 13
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)) 14
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. 15
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. 16
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 17
18
The list below contains a smaller subset of section headings. List B: Linear Layout Relative Layout Buttons Text Fields 18
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. 19
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. 20
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. 21
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. 22
23
8.3 Final Project 23
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 24
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 25
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 26
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 27
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 28
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 29
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 30
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 31
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 32
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 33
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 34
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 35
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 36
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 37
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 38
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 39
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 40
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 41
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 42
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 43
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 44
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 45
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/3 rd 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. 46
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. 47
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. 48
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. 49
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. 50
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. 51
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. 52
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. 53
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. 54
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. 55
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. 56
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. 57
58
You can either talk to me before or after doing such a search. 58
59
The End 59
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.