CSCI 490E/680K Syllabus - Android Programming - Spring 2012


Contact Information:

Instructor:       Jim Henry
Office:            PM 467
Office Hours:  TuTh 1 - 3 pm; by appointment and as available
Phone:            815 753-6496
Email:              henry@cs.niu.edu

Course Web Site: www.seasite.niu.edu/cs680Android/default.html

Required Text:

Required Materials:

If you want to use your own computer for Android development, you will need to download and install

Detailed instructions on how to do this for Windows can be found here.  You can also use Macs; instructions are similar.

You do not need an actual Android device - these will be available in the Mobile Device Lab during class.  You will be able to test and debug your programs with an Android (software) emulator via Eclipse.


Course Overview

Because this is the second time the course is offered, the details that follow in this syllabus are subject to change.  Any changes will be announced in class.  In particular, the topics list immediately below is tentative and preliminary and expresses our intent but makes few promises.  "Planned" is firmer than "Possible".  It is unlikely that all the "Possible" topics will be covered.

This course will cover the basics of Android programming.  A good working knowledge of  C++ is assumed. The programming language used is Java; important differences between Java and C++ Java will be covered early in the course. xml is also used in Android projects, but can be picked up informally through examples.

Planned topics (first part of the course):

Possible topics (later in the course):


Programming Assignments

There will be 6 - 10 programming assignments.

Assignment grading will most likely be done via

Other details of the submission process for each assignment may be given in class.

There will be a 20% or more penalty on late assignments.

You may work on these assignments in groups of 2 or 3 people. You may choose your own groups. If you want to work in a group, you must inform your instructor by the end of the second week of class. After the groups are formed, no changes may be made without your instructor's permission. Occasionally there may be some in-class group-work time, but you will need to meet with your group outside of class as well. You may work together in whatever way seems best: for example, as a group at a computer or as individuals writing specified subroutines or classes. Each team member, however, is responsible for understanding (and explaining) the whole program.

Any student who is part of a group, who does not contribute to the programming development effort, but who claims credit for the assignment, may be considered to have submitted work under his or her name that was not his or her own work. This would be considered plagiarism (which is Academic Misconduct = cheating) under NIU academic regulations.  Please advise your instructor if you cannot meet your group obligations for any extended period.  Groups that have members who are not fulfilling their obligations should also inform the instructor.


Tests

There will be three tests, each worth 100 points. A large part of each test will be designed to determine if you understand the programming and concepts covered to date. This means that even though you work in groups and you might actually write only parts of the code, you are responsible for understanding and being able to explain ALL the code and ALL the concepts behind the program(s). Anyone who depends to a large extent on the help of others probably will not do well on these tests. There will not be a comprehensive Final; the third test, covering the last part of the course, will be given at the scheduled Final Exam time.


Graduate Student Reports

Each graduate student will be required to present a 20-minute report to the class during the course. This report will summarize and explain some aspect of Android programming not covered in class.  Topics will be arranged as the course progresses.


Final Grade (this section subject to change)

Undergraduates:
Your Final Grade will be based on a 40-60 weighting of program average and test average. You must pass both components to pass the course. Each member of a group will have the same program average unless your instructor determines otherwise - any such change will be communicated to the group before it is implemented. The scale used will be 90 - 80 - 70 etc.

Graduates
Your final grade will be determined as explained above, with your report serving as an additional plus-or-minus 5-point factor. That is, if you present a particularly good report, your final course average could increase by as much as 5 points. If you do a poor job, your final course average could decrease by as much as 5 points. If you do an adequate job, your score will not be affected.


Privacy Concerns

Students who have chosen to restrict the university from disclosing their student information may request that the instructor devise a way for them to submit those assignments that involve publicly accessible Web pages in some alternate manner (such as running the program on a local computer). If you have such a concern, please contact your instructor.

Disability Services

NIU abides by Section 504 of the Rehabilitation Act of 1973, which stipulates that no student shall be denied the benefits of an education “solely by reason of handicap.” Disabilities covered by law include, but are not limited to, learning disabilities and hearing, sight or mobility impairments. Please contact your instructor if you have a disability that may have some impact on your work in this class and for which you may require accommodations. If you have not already done so, you will need to register with the Center for Access-Ability Resources (CAAR)  located on the 4th floor of the University Health Services building (753-1303).


Coding Practices, Programming Style, and Documentation

Matters of coding practices, program style, and documentation will be considered in evaluating a program. In connection with this, you must supply a printed copy of each program when it is submitted grading.

Your coding practices will evolve with experience.  Do the best you can at any time.  Don't do things that you know are badly inefficient, difficult to modify, or hard to follow.
You are encouraged (but not required) to follow the style presented in class. If you prefer your own style it must be clear, consistent, and readable.
Please do not make your instructor tell you things you already know about clarity, neatness, and accuracy with regard to documentation.
Do not lie in your documentation. Wrong documentation is worse than none!
See the document (from the CSCI Java course) on Java Coding and Documentation Standards.  Read it from time to time during the semester. 

Provide reasonable documentation including AT LEAST

We are very fussy about documentation and coding. Your programs must read like poems. After you get something to work, ask yourself if this is the best/right way to do it. If there is a better way, do it that way.

Therefore:

A perfectly executing program with

  • little or poor documentation or

  • poor and inconsistent formatting or

  • bad coding practices

will receive a grade no greater than 80% of the assignment points.