Syllabus for MCS-270: Object-Oriented Software Development (Spring 2016)

Overview

In this course, you will learn the principles of "agile software development." In order that you can 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 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 the break will be project work.

Student Learning Outcomes

This course should help students achieve at least three of the five Student Learning Outcomes (SLOs) the department has established for the Computer Science major:

Office hours

I have regularly scheduled office hours Mondays 1:30–2:20pm and Fridays 8:00–8:50am. I also welcome visitors to my office (OHS 306) on a drop-in basis as well as by appointment. You may send me electronic mail at max@gustavus.edu.

World Wide Web

All course materials will be available through my World Wide Web page. The URL for this course is https://gustavus.edu/+max/courses/S2016/MCS-270/.

Texts

We will be using two books in this course, one covering development methodology and the other covering the specific development platform we'll be using as an example:

There is at least one additional book that you might choose to buy, as I will discuss in class the first day: The Elements of Scrum, by Chris Sims and Hillary Louise Johnson, Dymaxicon, 2011.

Honor

Students are encouraged to discuss the course, including issues raised by the assignments. However, the solutions to assignments should be individual original work unless otherwise specified. If an assignment makes you realize you don't understand the material, ask a fellow student a question designed to improve your understanding, not one designed to get the assignment done. To do otherwise is to cheat yourself out of understanding as well as to be intolerably dishonorable.

Any substantive contribution to your solution by another person or taken from a publication should be properly acknowledged in writing. Failure to do so is plagiarism and will necessitate disciplinary action.

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 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.

You are expected to be familiar with the college academic honesty honor code policy and to comply with that policy. If you have any questions about it, please ask.

Late assignments

Late assignments will be penalized by one grade point for each day late or fraction thereof. No assignments will be accepted after the last class day of the semester except under special circumstances.

If you are too sick to complete an assignment on time, you will not be penalized. Simply notify me in writing that the lateness is due to illness. Other circumstances will be evaluated on a case-by-case basis.

Grade changes

Please point out any arithmetic or clerical error I make in grading, and I will gladly fix it. You may also request reconsideration if I have been especially unjust.

Grading

Each of the 7 weeks before spring break you can earn up to 7 grade points by completing one or more expected challenges, as listed in the schedule below. During that portion of the semester, you'll also have 7 opportunities to earn up to 3 extra-credit points by completing additional challenges. After the spring break you can earn up to 6 grade points through a particular expectation I've established for the first week and then a total of 45 more grade points through your work on a project: 15 for each of 3 project iterations. Thus, in total you can earn up to 100 grade points without doing any extra-credit challenges and up to 121 if you take all the opportunities for extra credit. Your total number of points will be converted to a course grade as follows:

PointsGrade
93–121A
90–92A−
87–89B+
83–86B
80–82B−
77–79C+
73–76C
70–72C−
67–69D+
60–66D
0–59F

Accessibility

Gustavus Adolphus College is committed to ensuring the full participation of all students in its programs. If you have a documented disability (or you think you may have a disability of any nature) and, as a result, need reasonable academic accommodation to participate in class, take tests or benefit from the College’s services, then you should speak with the Disability Services staff, for a confidential discussion of your needs and appropriate plans. Course requirements cannot be waived, but reasonable accommodations may be provided based on disability documentation and course outcomes. Accommodations cannot be made retroactively; therefore, to maximize your academic success at Gustavus, please contact Disability Services as early as possible. Disability Services (gustavus.edu/advising/disability/) is located in the Academic Support Center. Disability Services Coordinator, Kelly Karstad, (kkarstad@gustavus.edu or x7138), can provide further information.

Support for English learners and multilingual students is available through the Academic Support Center’s Multilingual Learner Academic Specialist, Jody Bryant (jbryant2@gustavus.edu or x7197). The MLAS can meet individually with students for tutoring in writing, consulting about academic tasks, and helping students connect with the College’s support systems. When requested, the MLAS can consult with faculty regarding effective classroom strategies for English learners and multilingual students. The MLAS can provide students with a letter to a professor that explains and supports appropriate academic arrangements (e.g., additional time on tests, additional revisions for papers). Professors make decisions based on those recommendations at their own discretion. In addition, English learners and multilingual students can seek help from peer tutors in the Writing Center (gustavus.edu/writingcenter/).

Schedule

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.

Each week before break you will also be expected to submit your solution to one or more "challenges" related to AP. In four of the seven weeks, you can also earn extra credit by submitting solutions to one or more additional challenges. Where a week includes more than one extra-credit challenge, you can pick freely any or all of them. In total, you have seven extra-credit challenges available. The expected and extra-credit challenges for each week are indicated below. They must be submitted by 8:00 AM on Monday of the following work week (so Monday after spring break in the last case). For each challenge you will submit a GitHub link on Moodle.

All of your time after break will be spent working on a team 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. As with the earlier expectations, it will be due by 8:00 AM on April 11th.

WeekChaptersTopics
2/8–HF 1–2Overview and Gathering Requirements
2/12AP 1–2First Android App and Model-View-Controller
Expected Challenge 1 in AP 2: Add a Listener to the TextView
Expected Challenge 2 in AP 2: Add a Previous Button
Extra-Credit Challenge 3 in AP 2: From Button to ImageButton

2/15–HF 3Project Planning
2/19AP 3–5Activities and Debugging
Expected Challenge in AP 5: Preventing Cheating (All Three Parts)

2/22–HF 4–5User Stories, Tasks, and Design
2/26AP 6–8SDK Versions, Fragments, and User Interfaces
Expected Challenge in AP 8: Formatting the Date (More Advanced Version)

2/29–HF 6–6.5Version Control and Building
3/4AP 9–11RecyclerView, Fragment Arguments, and ViewPager
Expected Challenge: Making Check Boxes in Crime List Work

3/7–HF 7–8Testing, Continuous Integration, and Test-Driven Development
3/11AP 12–13Dialogs and the Toolbar
Expected Challenge 1 in AP 13: Deleting Crimes
Expected Challenge 2 in AP 13: Plural String Resources
Expected Challenge 3 in AP 13: An Empty View for the RecyclerView
Extra-Credit Challenge for AP 13: Using a Dialog to Confirm Deletion

3/14–HF 9–10Iteration
3/18AP 14–15SQLite Databases and Implicit Intents
Expected Challenge in AP 14: Deleting Crimes
Extra-Credit Challenge 1 in AP 15: ShareCompat
Extra-Credit Challenge 2 in AP 15: Another Implicit Intent

3/21–HF 11–iBugs, the Real World, and Other Topics
3/24AP 16, 23Taking Pictures, HTTP, and Background Tasks
Expected Challenge 1 in AP 16: Detail Display
Expected Challenge 2 in AP 16: Efficient Thumbnail Load
Extra-Credit Challenge 1 in AP 23: Gson
Extra-Credit Challenge 2 in AP 23: Paging
Extra-Credit Challenge 3 in AP 23: Dynamically Adjusting the Number of Columns

4/4–Start of Project Iteration 1
4/8Expected Fleshing Out of a Key Feature

4/11–
4/15
Completion of Project Iteration 1

4/18–
4/22
Start of Project Iteration 2

4/25–
4/29
Completion of Project Iteration 2

5/2–
5/6
Start of Project Iteration 3

5/9–
5/13
Completion of Project Iteration 3

5/16–
5/17
Project Presentations