In this course, you will learn the principles of "agile software development." In order for you to gain experience applying those principles to a concrete project as part of a team, you will also learn about one specific development environment or "platform." This year we will use Android development as the example platform. The portion of the course prior to spring break will introduce these topics (agile development for Android) and the portion after Spring break will be a final project.
This course should help students achieve these Student Learning Outcomes (SLOs):
Develop a precise specification of an algorithmic means of addressing a domain use case, that is, a way the software would be used expressed from the users' perspective.
Work effectively, both individually and in teams.
Communicate information effectively, both to those in the discipline and those not familiar with the discipline.
All course materials will be available on Moodle (http://moodle.gac.edu/).
Please note that this semester, the schedule will be more flexible. Right now we plan to meet (in-person) everyweek on Tuesday and Thursday and Friday from 9.45AM - 11:20AM, in Nobel Hall of Science, room 1413. However, there might be days the lectures will be online (for example, if either professors get sick); those tend to be the days we work on projects (lab days). I will make an annoucement in class for those cases and send out an email to you.
Office: OHS 306
Phone: x7473
Homepage: http://homepages.gustavus.edu/~lyu/
Office Hours:
Weekly Schedule:
Tutoring:
We will have a night tutor to help you with questions in Android Developments. TBD will be available on XXXX and XXXX from 7:00pm - 9:00pm in Olin 326.
We will be using three books in this course, two covering software development methodology and the other covering the specific development platform we'll be using as an example:
Head First Software Development, by Dan Pilone and Russ Miles, O'Reilly Media, Inc., 2008.
Android Programming: The Big Nerd Ranch Guide, 5th Edition, by Bill Phillips, Chris Stewart, Kristin Marsicano, Brian Gardner, Big Nerd Ranch Guides, 2022.
Note 1: from the three textbooks listed above, I will recommend for you to at least buy Android Programming: The Big Nerd Ranch Guide, 5th Edition; as it will be a useful reference for you. Please note that because the field of Android Development progresses rapidly, there already has been five editions of our textbook, get the latest (5th) edition
Note 2: other than Android Programming: The Big Nerd Ranch Guide, I will give you more detail regarding the necessity of the other two textbooks during the first lecture. ask me for comments if you miss the first lecture.
Should you miss a class for any reason, you are still responsible for the material covered in there. If there is a challenge assignment or a project iteration due that day, you should be sure to submit it (electronically, via Moodle ) on time (thus, do not leave your work untill the last minute).
If you have influenza-like symptoms (temperature over 100 with headaches, sore throat, or cough), please call Health Service. If they say you should stay home, you should do so, and I require that you email me.
The attendance points for this semester is calculated as follows: A passcode will be given out at the start of each class, the student will record his/her own attendance via Moodle by entering the passcode.
The passcode is only available for entering within the first 5 minutes of the class. Thus, if you are more than 5 minutes late to the lecture, you are considered missing the cooresponding lecture and will not be able to record your attendance.
Everyone will start with 7 points of attendance grade at the beginning of the semester (attendance and participation is worth 7% of the final grade). During the semester, one point will be deducted if you miss either a lecture or a lab session. You are allowed 5 "free points" during the semester. You may use those "free points" for sick days, or simply "I am feeling overwhelmed and need a mental health day" (as mental wellbeing is important). If you have influenza-like symptoms (temperature over 100 with headaches, sore throat, or cough), please call Health Service. If they say that you stay home, you should do so, and use one of your "free points".
If you foresee yourself needing more "free points" (for example, if you have an on-going health issue that you see may affect your attendence during the semester), you need to discuss that with me asap, and I have the right to accept or reject your requests based on the circumstances.
If you show up more than 5 minutes late (and miss the period in which you are to record your own attendance) to a lecture, I will make a note of it, and each case will result in one point deduction. If you forgot to record your attendance at the start of a lecture or a lab, I am not responsible to record your attendance for you (you would then need to use one of your "free points" and make sure to record your attendance next time).
Should you miss a class for any reason, you are still responsible for the material covered in there. If there is a project report or homework due that day, you should be sure to submit it (to me, in-person) on time (thus, do not leave your work until the last minute).
This course relies heavily on participations. Students are expected to actively participate in classroom discussions. You may use your laptop in class. However, the use of the computer is restricted to activities deemed appropriate by the instructor. Playing games, watching YouTube, reading e-mail, checking Facebook, and working on assignments for other courses are a few examples of inappropriate activities that can be distracting to the instructor and other students in the course. Any repeat instances from an individual of such will result in further grade deduction.Finally, one thing I have found during my past 4 years of teaching at Gustavus is that a student's grade is directly related to how deligent he/she is. That is, if a student attends classes regularly, puts efforts into homework and projects, pays attention during classes (as opposed to doing other activities), participates in discussions, and goes to my office hours whenever he/she needs help, it is guranteed that he/she will recieve a good grade. It seems like an obvious concept, but I am constantly surprised by how some students do not seem to connect efforts with results, and that some still insist on taking short cuts. For a course with so many small components spreading throughout the semester, being deligent is an especially important trait for a student to have.
For this reason, I am introducing the attendance and participation grade sheet. It is available on Moodle. On the gradesheet, I have listed all the attributes I expect a student in MCS-287 to have in order to do well in this course.
I have organized the attendance and participation grade sheet into positive attributes and negative attributes. During the semester, for every instance of a positive attribute I or the TA observe, I will make a note of it and you will recieve a "+1"; for every instance of a negative attribute I or the TA observe, you will recieve a "-1". At the end of the semester, for every "-1" you have left (after balancing), I will take off 1% of your final grade. In total this is worth 7% of your final grade.
More imporantly, I've made this list just so that I can be completely clear about what I expect in my classroom, and that you have a list to remind yourself. At the end of the semester, I will have a one-on-one meeting with you to discuss if you had met all the requirements. I hope that the discussion will help you with work and study in the future.
During each week of this course, there will typically be a challenge assigment given out (usually on Monday or Tuesday of each week). The solution for the cooresponding challenge assigment is then due at the start of next Friday's lecture. That is, you are given roughly a week for each challenge assignment. There will be 6-7 sets of challenge assignments (10-12 challenges) in total. Time management is important to finish these challenges since you are only given roughly 1-2 weeks for each.
For some set of challenge assignments, I will cover the materials needed during lectures; however, I will not finish the example. Instead, you will have the rest of the class to read the follow the textbook and finish the example yourself (you may use time outside of the class as well). You can only do the cooresponding challenge assignment once you have finished the class example; this will be also part of the require of the corresponding challenge assignment.
Late assignments/project iterations will be penalized by 10% for each day late or fraction thereof. Please note that since all submissions will be through Moodle, we will go by Moodle's time stamps. Accordingly, if your submission is marked as even 1 minute late from the due date (and time), it will be counted as 1 day late. Please plan accordingly.
No assignments/project iterations/final presentation will be accepted after the last class day of the semester except under special circumstances.
If you are not present during the meeting in which your group is scheduled to showcase a project iteration or do a daily scrum, you will need to make alternate arrangements with me within 2 days to make up your work. Otherwise, you will recieve 10% deduction for each day late. Please note that I will not email to remind you of the missing an iteration meeting. It is up to you to keep track.
Other circumstances will be evaluated on a case-by-case basis.
There will be 10-15 challenges (in 6-7 sets of challenge assignments) given during this course. In total the challenge assignments are worth 42% of your final grade. Each of the 3 iterations of your final project is worth 12% of your final grade, with your final presentation worth 10% of your final grade. The daily scrum meetings are worth 5% of your final grade. Finally, your attendance and participation score (according to the attedance and participation grade sheet) is worth 7%. The perfect score for this course is 100%. Each component of the course will be calculated from its raw score to its corresponding weight in the total grade. Your letter grade for the course will be recorded as follows:
A: 94-100 | B+: 87-89 | C+: 77-79 | D+: 67-69 | F: < 62 |
A-: 90-93 | B: 83-86 | C: 73-76 | D: 63-66 | |
B-: 80-82 | C-: 70-72 |
Please point out any arithmetic or clerical error I make in grading, and I will gladly fix it. You may also request reconsideration if you feel I have been especially unjust.
Finally, this semester we are using Moodle (http://moodle.gac.edu/) to keep track of your scores. The pro of doing so is that you know your score for a component as soon as it is graded.
Any substantive contribution to your project report by another person or taken from a website or publication should be properly acknowledged in writing (by citing the source). Failure to do so is plagiarism and will necessitate disciplinary action. At the minimal, you will recieve zero on the course component in which plagiarism is violated. For more serious cases, you will recieve zero in the course.
The same standards regarding plagiarism apply to team projects as to the work of individuals,
except that the author is now the entire team rather than an individual.
Anything taken from a source outside the team should be properly cited.
One additional issue that arises from the team authorship of project reports is that all team members must stand behind all reports bearing their names. All team members have quality assurance responsibility for the entire project. If there is irreconcilable disagreement within the team it is necessary to indicate as much in the report.
As a guideline for collaboration, it is ok for students to get together in small groups to
go over material from the lectures and text, solve problems from the text, study for exams,
and discuss the general ideas and approaches to projects. However, work to be turned in, including projects
and homework exercises, must be done independently. This means that the work you turn in must represent
only your own work. It must not be based on help from others or information obtained from sources other than those
approved by the instructors (e.g., the text, the course webpage, and materials provided in the lectures).
Effective learning is compromised when this is not the case.
Accordingly, you should never read or copy another student's code or solutions, exchange computer files (or pieces of papers with solutions written on them), or share your code/solutions with anyone else in the class until after both parties have submitted the assignment. Under no circumstances may you hand in work done by someone else under your own name.
Gustavus Adolphus College is proud to operate under an honor system (for more information, please see here). The faculty and students have jointly created an Honor Board to enforce the Honor Code and the Academic Honesty Policy. Each faculty member is responsible for stating course penalties for academic honesty violations, and for defining the level of authorized aid appropriate to the work in their courses. Each faculty member is also required to report violations of the Academic Honesty Policy to the Provost's Office. It is your responsibility, as a student, to ask questions if you are not sure about situations such as when to cite a source, how to cite a source, sharing data with lab-mates, and avoiding inadvertent cheating when working in groups. It is also your responsibility to learn about the policy and the consequences for violations so please ask questions!
The overarching principle of the Academic Honesty Policy is that students shall submit their own work, in fairness to others and to self. Your Professor wants you, a developing scholar, to be able to take pride in your own academic work and to maintain your academic integrity. Citations must accompany any use of another's words or ideas that are not common knowledge. Quoting or paraphrasing from electronic sources without proper citation is as serious a violation as copying from a book or other printed source. A student may not submit work that is substantially the same in two courses without first gaining permission of both instructors if the courses are taken concurrently, or permission of the current instructor if the work has been submitted in a previous semester. Ask your Professor if you have questions about a particular assignment or kind of work. Please make sure you fully understand the rules related to online work, as it pertains to this course. Unauthorized aid during online exams and assignments is every bit as serious and inappropriate as it would be in an in-person course. In fact, in the online environment it is sometimes easier for faculty to detect violations.
The sanction in this course for a violation of the Honor Code involving plagiarism, copying another student on an exam, or other kinds of cheating on a single assignment will usually be an "F" on the plagiarized assignment or exam. For a more significant event, I, your Professor, reserve the right to assign you a grade of "F" for the course. In addition, for any Honor Code violation, I will notify the Provost's Office. A letter will be generated by the Provost's Office and sent to you. The letter will remain on file. There will be no further consequence, beyond the course penalty and the letter, if you do not commit any further Honor Code violations. Repeat offenses could ultimately lead to dismissal from the College. You have the right to appeal any Honor Code violation through an Honor Board hearing process. In this course, your Professor aims for you to learn how to cite sources properly, do your own work on all exams, and function as a scholar with integrity. Please feel welcome to ask questions about the important matter of Academic Honesty and let me know how I can best support your learning.
Each week before break you will be responsible for working through a portion of each book as shown below. The chapters prefaced with "HF" are from Head First Software Development whereas those prefaced with "AP" are from Android Programming: The Big Nerd Ranch Guide. We will spend some class time discussing the HF readings and other topics but much of the time will be allotted so you can do some of your work on AP with me available for guidance. This usually happens on Fridays (lab time)
Each week before the start of most Friday's lecture (12:30PM), you will also be expected to submit your solution to one or more "challenges" related to AP (please see schedule below for the cooresponding due dates of each challenge). In three of the seven weeks, you can also earn extra credit by submitting solutions to bonus challenges. For each challenge you will submit your solution via Moodle.
All of your time after break will be spent working on a final project, which I will explain in class. The first week after break you will also be expected to submit a related document fleshing out one of the key features; I'll explain this in class as well.
Week | Chapters | Topics |
---|---|---|
1/14 | AP 1 | Overview, Your First Android App |
Expected Challenge in AP 1: Customizing the Toast (due at the start of lectures on Thursday, 1/23) | ||
1/16 | AP 2 | Model-View-Controller |
Expected Challenge in AP 2: Add a Listener to the TextView (due at the start of lectures on Thursday, 1/23) Expected Challenge in AP 2: Expected Challenge in AP 2: Add a Previous Button (due at the start of lectures on Thursday, 1/23) | ||
1/21 | AP 3 | The Activity Life Cycle |
Expected Challenge in AP 3: Preventing Repeat Answers (due at the start of lectures on Thursday, 1/30) | ||
Expected Challenge in AP 3: Graded Quiz (due at the start of lectures on Thursday, 1/30) | ||
1/23 | HF 1 – 3 | Gathering Requirements and Project Planning |
1/28 | AP 5 | Presisting UI State |
Expected Challenge in AP 5: Using Conditional Breakpoints (due at the start of lectures on Thursday, 2/6) | ||
Expected Challenge in AP 5: Exploring Layout Inspector (due at the start of lectures on Thursday, 2/6) | ||
Expected Challenge in AP 5: Exploring the Profiler (due at the start of lectures on Thursday, 2/6) | ||
1/30 | HF 4–5 | User Stories, Tasks, and Design |
2/4 | AP 7 | Your Second Activity |
Expected Challenge in AP 7: Tracking Cheat Status by Question (due at the start of lectures on Thursday, 2/13) | ||
Bonus Expected Challenge in AP 7: Closing Lopeholes for Cheaters (due at the start of lectures on Thursday, 2/13) | ||
2/6 | notes | Review: UML and Design in Java |
2/11 | notes | Review: UML and Design in Java |
2/13 | notes | Introducing Land of Gac |
Expected (pair) Challenges (worth 3 challenges): Land of Gac (due at the start of lectures on Tuesday, 3/11) | ||
2/18 | notes | Interface Design |
Expected Challenge: Interface Design (due at the start of lectures on Thursday, 2/27) | ||
2/20 | - | Lab (Land of Gac) |
2/25 | notes | Collaboration using Github |
Expected Challenge: Collaboration Using Github and Adding a New Feature (due at the start of lectures on Tuesday, 3/11) | ||
2/27 | - | Project proposal with professor Yu |
3/4– 3/6 | Spring Break | |
3/11– | Start of Project Iteration 1 | |
3/13 | Expected Fleshing Out of a Key Feature | |
3/18– 3/20 | Completion of Project Iteration 1 | |
3/25– 3/27 | Start of Project Iteration 2 | |
4/1– 4/3 | Completion of Project Iteration 2 | |
4/8– 4/10 | Start of Project Iteration 3 | |
4/15– 4/17 | Completion of Project Iteration 3 | |
4/22 | - | Project presentations: group 1 - 3, demo |
4/24 | - | Project presentations: group 4 - 6, demo |
4/29 | - | Project presentations: group 7 - 9, demo |