Syllabus for MCS-374: Object-Oriented Software Development (Spring 2024)

Overview

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.

Student Learning Outcomes

This course should help students achieve these Student Learning Outcomes (SLOs):

World Wide Web

All course materials will be available on Moodle (http://moodle.gac.edu/).

Instructor

Louis Yu <lyu@gustavus.edu>

We have an in-class TA this semester. Logan Schindler will be helping you during your lectures twice a week.

Please note that this semester, due to Covid-19, the schedule will be more flexible. Right now we plan to meet (in-person) everyweek on Monday, Tuesday, Thursday and Friday from 8.00AM - 8:50AM, in Olin 328. However, there might be days the lectures will be online (for example, if I 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:

Weekly Schedule

Tutoring:

We will have a night tutor to help you with questions in Android Developments. Austin Legatt will be available on Mondays and Tuesdays from 7:00pm - 9:00pm in Olin 326.


Texts

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:

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.

Attendance and Participation

Attendance, both physical and mental, is required. I reserve the right to further lower your grade if I feel you are missing or showing up late too often.

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:

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.

Attendance Bonus

At the end of the semester, you will recieve 2% (of the total score) attendance bonus if you accomplish the following: For the case in which you are sick or need a personal day off (for mental health or otherwise), the rules above still apply (that is, you can email me and it will not affect your opportunity at bonus points). Please note that your attendance bonus at the end of the semester is either 2% or nothing.

Challenge Assignments

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.

Some sets of challenge assignments will contain bonus challenges that you can complete, each bonus challenge is worth an extra 50% of a challenge assignment.

Final Project

At the later half of this course, you will be given a final project to work on. Your final project will consists of 3 iterations and a final presentation. For each iteration, you will be given a set of expectations to meet (including daily scrum meetings and a prototype showcase). Before the first iteration of your final project, I will give you an overview. The expectations will be given to you at the start of each iteration.

Daily Scrum Meetings

While working on your final project, you will hold "daily scrum meetings" at the start of each lecture. The daily scrum, also called the standup, is a short daily meeting designed to let the team plan out its work for the day and identify any obstacles that could impact that work. You will recieve obervation scores (as well as coments from me) for each of your daily scrum meetings. In total the daily scrum meetings are worth 5% of your final grade. If you are not present during your any of your daily scrum meetings, you will recieve zero for that daily scrum meeting. To prevent that, you must email me with a summary of your daily scrum and the subject title "Daily scrum, date:XXX" within 3 days of the incident. I will not email to remind you to hand in your daily scrum, it is up to you to keep track of such from the schedule.

Late assignments and project iterations

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

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

Grading

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.

Honor

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.

Academic Accommodations

Gustavus Adolphus College is committed to ensuring equitable and inclusive learning environments for all students. If you have a disability and anticipate or experience barriers to equal access, please speak with the accessibility resources staff about your needs. A disability may include mental health, attentional, learning, chronic health, sensory, physical, and/or short-term conditions. Students with a documented elevated risk of COVID-19 may also request academic accommodations. When appropriate, staff will guide students and professors in making accommodations to ensure equal access. Accommodations cannot be made retroactively; therefore, to maximize your academic success at Gustavus, please contact them as early as possible. Accessibility resources staff are located in the Academic Support Center (https://gustavus.edu/asc/accessibility/) (x7227). Accessibility Resources Coordinator, Corrie Odland (codland@gustavus.edu), can provide further information.

Multilingual Student Support

Some Gusties may have grown up speaking a language (or languages) other than English at home. If so, we refer to you as "multilingual."" Your multilingual background is an incredible resource for you, and for our campus, but it can come with some challenges. You can find support through the Center for International and Cultural Education's (https://gustavus.edu/cice/) Multilingual and Intercultural Program Coordinator (MIPC), Pamela Pearson (ppearson@gustavus.edu). Pamela can meet individually for tutoring in writing, consulting about specific assignments, and helping students connect with the College's support systems. If you want help with a specific task (for example, reading word problems on an exam quickly enough or revising grammar in essays), let your professor and Pamela know as soon as possible. In addition, the Writing Center (https://gustavus.edu/writingcenter/) offers tutoring from peers (some of whom are themselves multilingual) who can help you do your best writing.

Mental Wellbeing

The Gustavus community is committed to and cares about all students. Strained relationships, increased anxiety, alcohol or drug problems, feeling down, difficulty concentrating, and/or lack of motivation may affect a student's academic performance or reduce a student's ability to participate in daily activities. If you or someone you know expresses such mental health concerns or experiences a stressful event that can create barriers to learning, Gustavus services are available to assist you, and include online options. You can learn more about the broad range of confidential health services available on campus at https://gustavus.edu/counseling/ and https://gustavus.edu/deanofstudents/services/.

COVID Policies in the Classrooms

All classrooms will follow the most up-to-date COVID policy of the college with regard to masking, social distance, food and beverage in the classroom, and sanitizing of technology and spaces. Individual faculty members may ask for additional COVID precautions at their discretion.

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

WeekChaptersTopics
2/5-Overview
2/6AP 1Your First Android App
Expected Challenge in AP 1: Customizing the Toast (due at the start of lectures on Friday, 2/16)
2/8–AP 2Model-View-Controller
Expected Challenge in AP 2: Add a Listener to the TextView (due at the start of lectures on Friday, 2/16)
Expected Challenge in AP 2: Add a Previous Button (due at the start of lectures on Friday, 2/16)
2/9-Lab (Expected Challenges in AP1 and AP2)

2/12AP 3The Activity Life Cycle
Expected Challenge in AP 3: Preventing Repeat Answers (due at the start of lectures on Friday, 2/23)
Expected Challenge in AP 3: Graded Quiz (due at the start of lectures on Friday, 2/23)
2/13HF 1 – 2 Gathering Requirements
2/15HF 3Project Planning
2/16-Lab (Expected Challenges in AP 3)

2/19AP 5Presisting UI State
Expected Challenge in AP 5: Using Conditional Breakpoints (due at the start of lectures on Friday, 3/1)
Expected Challenge in AP 5: Exploring Layout Inspector (due at the start of lectures on Friday, 3/1)
Expected Challenge in AP 5: Exploring the Profiler (due at the start of lectures on Friday, 3/1)
2/20-Class Canceled (reading AP5: Debugging Android Apps)
2/22HF 4–5User Stories, Tasks, and Design
2/23-Lab (Expected Challenges in AP5)

2/26AP 7Your Second Activity
Expected Challenge in AP 7: Tracking Cheat Status by Question (due at the start of lectures on Monday, 3/11)
Bonus Expected Challenge in AP 7: Closing Lopeholes for Cheaters (due at the start of lectures on Monday, 3/11)
2/27notesReview: UML and Design in Java
2/29notesReview: UML and Design in Java
3/1-Lab (Expected Challenges in AP6)

3/4notesReview: UML and Design in Java
3/5notesIntroducing Land of Gac
Expected Challenges (worth 3 challenges): Land of Gac (due at the start of lectures on Monday, 3/18)
3/7-Lab (Land of Gac)
3/8-Lab (Land of Gac)

3/11AP 9Fragments
3/12HF 11–iBugs, the Real World, and Other Topics
3/14HF 9–10Iteration
3/15-Lab (Land of Gac)

3/18notesCollaboration using Github
Expected Challenge: Collaboration Using Github and Adding a New Feature (due at the start of lectures on Monday, 4/1)
3/19-Overview on the final project and Working on project ideas
3/21-Lab (Collaboration using Github)
3/22-Project proposal with professor Yu

3/25–
3/29
Spring Break

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

4/8–
4/12
Completion of Project Iteration 1

4/15–
4/19
Start of Project Iteration 2

4/22–
4/26
Completion of Project Iteration 2

4/29–
5/3
Start of Project Iteration 3

5/6–
5/10
Completion of Project Iteration 3

5/13–
5/16
Project Presentations