Csce 305, Android Programming, Fall of 2016



Download 34.07 Kb.
Date14.06.2017
Size34.07 Kb.
#20850



CSCE 305, Android Programming, Fall of 2016




Course Information: 3.0 CR, 70859, 601, TR 4:00-5:15 p.m., Eugene Short Hall 203
Lab Information: There will be several lab rooms available for student use outside of class time. At the time of writing this syllabus a complete list of room numbers has not been made available. Stay tuned for more information.
Instructor Information:

Name: Kirk Scott

Office: Engineering and Computation Building 308D

Phone: 786-4820

UAA email, the best for school related things: kascott@alaska.edu.

Personal email in case you don’t get a response to messages sent to the UAA address (this is possible due to recent changes in UAA email): kirk_scott@yahoo.com.

Home page: http://math.uaa.alaska.edu/~afkas

Note: This course does not use BlackBoard. It is based on a course Web page which can be located through a link at the Web address given above.
Office hours: M, W 2:30-3:45 and by appointment. My schedule is posted on my office door and on my Web page. With the exception of classes and lunch I’m likely to be around the office between 10:00 and 5:00 most days. If I am in, you are welcome to see me. If you want to make sure you’ll see me outside of office hours you can make an appointment. You can call, and if I’m there and not busy with a human visitor, I’ll answer. I do not answer the phone when there is a person in my office unless I’m expecting a call. If I don’t answer the phone, send me an email message. I check email regularly and you should get a timely reply from me by email if it’s sent to the UAA address and UAA email is working. You can use my personal email as a backup plan. Leaving a phone message is a less likely way of getting a timely reply.
Disability Information: Any students with disabilities who may need special accommodations should contact Disability Support Services as early in the semester as possible: University of Alaska Anchorage, Disability Support Services, Rasmuson Hall Room #105, 3211 Providence Drive Anchorage AK 99508-4614.
907-786-4530 (voice)
907-227-9609 (text only)
907-786-4531 (fax)
Book Information: This book has been ordered as a reference on the topics to be covered in class. It should be in the bookstore as an "optional" book. It is not required. You may use another book of your choice or rely on the on-line documentation if you want to.

Optional: Learn Android Studio: Build Android Apps Quickly and Effectively

Gerber, Adam and Clifton Craig

Apress


ISBN: 978-1430266013
Web Page Information: There will be a course Web page posted at the address given above. Any changes in the syllabus, timeline, etc., will be announced in class and posted on the Web page. Any information announced in class or posted during the course of the semester will supersede any information contained in this printed syllabus, handed out on the first day of class. The lecture notes and the assignments will also be posted on the Web page.

Other Resources: The most up-to-date information on Android programming is available on the Android Web site, and you may decide to rely on this as your primary resource for the course. The course overheads and other materials will rely heavily on examples provided there. It will serve as the ultimate authority for topics covered in the course and the interested student is directed there for answers to questions and any further information. The Web site will serve as an alternative, reinforcing source of information on the introductory topics covered in the course. It will have additional topics and examples that can be used in the final project. It will be the ultimate resource for anyone who continues developing Android apps after completing this course. If you end up satisfied with what you learned in this course, the honest truth is that this probably means that you spent a lot of time at this Web site and learned more from it than you did from course lectures. The course is just a guide to provide some structure to get you started. From that point on you will probably be relying on the professional reference resources you find on the Web. This is the address of the Web site for Android developers:
http://developer.android.com/index.html

Grading: Grading in the course will be based on 2 programming assignments and a final programming project, presentations, and write-up:
2 programming assignments at 100 points apiece: 200

Final project on-time contract submission: 20

Final project preliminary presentation: 10

Final project live demo: 200

Final project write-up: 50

Final project end of class presentation: 20

-----

Total 500


Individual assignments will receive points only, not letter grades. Grades will be assigned based on the total points accumulated by the end of the semester according to the curve below. This curve may be lowered if necessary. It will not be raised.
90-100% A

80-89% B


70-79% C

60-69% D


Below 60% F
Course Philosophy—Including Explanation of Lack of Tests: There are no tests in this course. This is a critical aspect of the course and probably merits a bit of explanation. The prerequisite for the course is CSCE 222, Object-Oriented Programming I. You don’t necessarily need to have taken that specific course, as long as you’re a competent programmer who is familiar with the fundamentals of Java programming and basic object orientation. The point is that this course, CSCE 305, is not really a programming course. The goal is not to teach you particular syntax. The goal is to learn a new environment (Android Studio), which happens to include a certain amount of random technical details; and a new graphical programming paradigm which is different from Java Swing. This new graphical programming paradigm does make use of Java classes and objects. The ultimate goal is write an original, hopefully moderately complex and interesting Android app. With this goal in mind, tests would be a pointless distraction. The purpose is not to memorize a bunch of details and get tested on your ability to regurgitate them. The purpose is to get a grasp of the whole and put it to some use.

I think that this philosophical approach is the ideal, and it is best suited to the disciplined student. In other words, some students should find the structure of the course loose enough that they are not burdened by academic machinery and can concentrate on what is important to them. On the other hand, we don’t live in an ideal world, and I concede that this approach will not be the best for all students. We all have to live with competing demands on our time, unrealistic deadlines, distractions, discouragements, disappointments… It will be easy to slough off when there are only two programming assignments and a final project. Hopefully, to one degree or another, people will be self-motivated enough that they won’t fall too far behind, and at the end of the semester they will find the opportunity of creating their own app sufficiently inherently motivating that they will produce something creditable.

In any case, as the teacher, I will try to provide some guidance, and when the dust settles I will try to realistically assess student work so that grades are not a stumbling block. The organizing principle behind the course is essentially, “You get out of it what you put into it.” If you have a good idea and put a lot of energy into it, you will achieve good results. If you have a less inspired idea or put less energy into your project, your results may not be as stellar. It is worth noting that in a certain sense an ambitious project that is not fully successful may be worth more than a simple project that is fully successful. But if you have set more modest goals for yourself and accomplished them, then you have achieved success on your own terms. You can expect to get a reasonable grade even for a more modest project. The point is that even though we are in the grubby business of earning and assigning extrinsic rewards, a.k.a. grades, a more ambitious project successfully completed will be of greater intrinsic value to the student regardless of the grade given.
Programming Assignments and Project: There will be no witch hunts. One case where integrity may be a concern will be allegations that one student has obtained another student’s code without the other student’s permission. Another case will be discussed below. Students may collaborate on the assignments if they so choose, but they will have to submit them individually. The project is an independent, individual project, not a group project. Students are expected to do their own work on the project, with the following understanding: Any practicing programmer knows that there is an element of beg, borrow, or steal in almost all software development. This is what I call the “inspired copying” aspect of programming. The critical question is how much you’re allowed to beg, borrow, or steal. You have to let your conscience be your guide, while also keeping in mind that doing your own work is what causes you to learn something. You may take the approach of “copy and modify”, but remember that the copying part doesn’t involve much learning.

In keeping with the idealized course philosophy mentioned above, the operating assumption is that students in the course will want to learn the material so that they can apply it and create their own original apps. For the programming assignments, everyone will be doing essentially the same thing. Each student is expected to hand in their solution for credit, but it is quite possible that students will have worked together. The nominal non-project demands of the course, two programming assignments, should not consume large amounts of time. They serve one purpose only—allowing the student to earn points for learning the basics of the material. The idea is that this will leave adequate time to devote to creating the final project.

The same general guidelines apply to the final project. You are expected to maintain personal and academic integrity. In theory, on the final project, you could go to the Web and find existing code for some interesting and complex app and simply hand it in as your own. NO FAIR. The “No Witch Hunts” policy still applies. I will not be expecting this to happen and I won’t be looking for it. On the other hand, it may be blindingly obvious or it may be brought to my attention by one of your fellow witches students. If this happens, I will take it into consideration. I think of this not so much as a witch hunt as an example of behavior so egregious it verges on self-ignition. You may contemplate this philosophy at your leisure while tied to the academic stake, as the scent of wood smoke ascends to your nostrils. In other words, if it can be established that you have completely lifted your project from another source, it may not be accepted for grading.

Continuing in this vein: The same reality applies here as with the programming projects, only more so: You can reasonably ask, “How can I know what I might do with an app except by seeing what someone else’s does? How can I make an app that does something similar except by adapting the existing code?” Once again, let your conscience and your desire to learn be your guides. Borrow what you need to, adapt where you can, and invent when you desire or necessity dictates. The world doesn’t need duplicate apps. The winners in this game are the people who can devise something original. Don’t expect your project in this course to earn you a million dollars in the Android marketplace. But keep in mind that whether you develop for yourself or someone else, you are not likely to be making the same thing over and over. Novelty and growth are necessary.


Programming Assignments and Project Specifics: Separate documents giving the details for the programming assignments and project will be posted on the Web site. Those documents will include additional information on how points will be assigned to different parts of the assignments and project.

Incompletes: Certain conditions must be met to qualify for an incomplete, and certain conditions must be met in order to resolve an incomplete successfully. Before requesting an incomplete you need to make sure that you qualify and that you are prepared to deal with the consequences of taking one. For your reference, this is the university's incomplete policy:
“An Incomplete grade (I) is assigned only at the discretion of the instructor. It is used to indicate that a student has made satisfactory progress in the majority of the coursework in a course but, for unavoidable absences or other conditions beyond the control of the student, has not been able to complete the course. Students assigned an Incomplete grade are not entitled to complete the remaining coursework within the classroom/lab, or to any additional instruction, nor may they participate in the class/lab during a future semester without re-registering, paying tuition, and retaking the course.

An Incomplete Grade Contract form between the student and the faculty member stipulating the assignment(s) required to finish the course and the timeframe for submission is required and should be filed with the department or dean’s office when an Incomplete grade is assigned. Coursework must be completed by the date specified in the contract, not to exceed one year.

Upon completion of the required coursework, the faculty member must submit a Change of Grade form to the Office of the Registrar. If coursework is not completed by the contract deadline and the faculty member does not submit a Change of Grade form at that time, the Incomplete will become a permanent grade. The student has until the last day of class of the first full semester following the end of the contract to resolve any grading discrepancies.”

Timeline (subject to potentially radical change)
As you are probably aware, technology changes rapidly. The world of Android programming exemplifies this as well as anything else. Within the last few years the recommended development environment for Android has changed from Eclipse to Android Studio. Likewise, there is constant development of the API. As of now, the current version of Android is version 7, Nougat. This doesn’t render all previous versions totally obsolete, but it does have this result: This course has to be completely reviewed and redone. The consequence of this is that the course timeline is subject to change. What is given below is based on previous offerings of the course. It provides a guide to what will be covered in the course this semester. But by definition, it is not the final word. Because the technical content changes, the course cannot be static. Pay attention to what is said in class and keep up with what is posted on the course Web site day by day and week by week in order to be fully apprised of the course coverage and contents as the semester progresses.

Since there is not a textbook for this course, the timeline doesn’t include chapter numbers. The notation AndroidXXYyyyyy (e.g., Android1Background) refers to the PowerPoint presentation that will be covered in class and which is posted on the course Web page. The third part of the name is supposed to be descriptive of the contents, or topic covered. The presentations potentially contain material from various sources. They are largely based on the tutorials on the Android developers’ Web site, so the corresponding pages there are the ultimate reference for what is covered in the course.


August

M 29 Introduction to class, Android1Background

W 31 Android2FirstProject
September

M 5 Labor Day break. No class.

W 7 Android3Exploring, Exploring Apps and the Development Environment

M 12 Android4SecondProject

W 14 Android5Wari, Programming Assignment 1 explained

M 19 Android6Activities

W 21 Activities, cont’d.

M 26 Android7Resources

W 28 Resources, cont’d.
October

M 3 Resources, cont’d.

W 5 Programming Assignment 2 explained, Final Project Explained, PowerPoint Android8HW2AndFinalProjectDescriptions


M 10 Android9Layouts

W 12 Layouts, cont’d.



  • Programming Assignment 1 due. Note that this deadline is firm. You have been given a month to do the first assignment. If it’s not done by now, you are dismally behind. If you have it done earlier, you can hand it in earlier.

M 17 Android10InputControls

W 19 Input Controls, cont’d.

M 24 Android11EventsMenus

W 26 Events and Menus, cont’d.

M 31 Android12ActionBar
November

W 2 The Action Bar, cont’d.

M 7 Android13DialogsNotifications

W 9 On this date you have to give a brief presentation on your approved project in class to your fellow students. On or before this date you have to come see me in my office and get your final project contract approved.



  • Assignment 2 is due. Note that this deadline is firm. You have been given 3 weeks to do the second assignment. If you have it done earlier, you can hand it in earlier. In any case, from this point on in the semester your full attention should be on the final project. You also have to turn this in by visiting me in my office.

M 14 Android14Services

W 16 Android15Media

M 21 Android16Gestures

W 23 Android17Location

M 28 Android18ContentProviders, Android19GooglePlay

W 30 Android20Publishing, Android21GooglePlayForEducation


December

M 5 Student final project presentations—first batch



W 7 Student final project presentations—second batch
Finals Week, Monday, December 12th-Saturday, December 17th
Final Test Period: Monday, December 12th, 1:00-3:45

  • Student final project presentations—last batch

  • There are two aspects to completing the project: 1) The in-class presentation, which may not be based on working code—screen shots, bullet points etc., but no live demo; 2) A live demo on a device, shown to me in my office. You will also need to submit a write-up of your project. The write-up should be submitted as hardcopy, not in electronic form.

  • *******You have a grace period until the end of the day on Thursday of finals week to do the live demo and submit the write-up. If it isn't turned in by then you will get an incomplete by default, to be resolved in spring semester.



Information required in syllabi by university policy:
Instructional Goals and Student Learning Outcomes

    1. Instructional Goals. The instructor will:

  1. Present principles and concepts of Android mobile development.

  1. Diagram and explain programs which exemplify the concepts of object-oriented programming practice in a mobile environment.

  1. Illustrate accepted design, documentation, and implementation practices and methodologies for the concepts given.




    1. Student Learning Outcomes. Students will be able to:

Assessment method

  1. Answer questions about Android mobile development programming concepts and implementation techniques.

Assignments, Exams

  1. Modify provided code to include new features presented in the course.

Assignments, Exams

  1. Write original code to specifications given, which embodies the concepts and practices of the course.

Assignments, Exams

  1. Formulate specifications, design, document, and code a complete mobile application.

Assignments, Project

Download 34.07 Kb.

Share with your friends:




The database is protected by copyright ©ininet.org 2024
send message

    Main page