326 Syllabus

Course Objectives

  • This course primarily focuses on extending your experience with software development on a project that benefits local non-profit community partners.
  • The course is designed to give you experience as a leader of an Agile development team. You will read material about leadership and management in an Agile environment, practice being a leader of a development team, and reflect upon how your theoretical reading informed your practice as a mentor and coach on the team project …. and what lessons you learned from that experience.

Important Note:

Since this course includes an experiential learning component that takes place off-campus, F-1 Visa holders must secure Curricular Practical Training authorization through the Office of International Student Affairs before the projects start.

Additionally, depending upon the project to which you are assigned, you may also need to consent to a background check as a volunteer working at that site.

Expectations

This course co-meets with CSC 324, and students in 326 are expected to work with a team on their project. This means that there will be some overlap between assignments for each level of the class.  At times, you might be asked to review material originally encountered in 324 (or 321/322), please embrace this opportunity to solidify your understanding and possibly coach other students.  This is what it means to be a leader in software development.

Most policies for 324 apply to 326, although assignments and schedule vary in the beginning of the course. Your main focus will be on the team project  and developing your Agile software development and leadership skills. You do not need to do the 324 individual project or ethics paper. If in doubt about what you should be doing, just ask your instructor.

Specifically, students in 326 are expected to:

  1. Virtually attend classes or meet with your team for at least 6 hours per week. You should consult with your instructor (and your assigned team) to determine the best schedule. In the past, 326 students have attended ALL classes or have attended classes that focus on the team project (especially meetings and demonstrations). Other options are possible, but you need to be consistent.  Establish a routine early in the semester and stick with it. Failure to attend classes will reduce your final grade.
  2. You should plan to spend 3 to 4 hours per week out of class, reading about Agile leadership or working on the team project. Generally, after the first week of the course, you will meet with your team’s community partner or your alumni mentor for an hour and then meet and work with your team on the project for up to 2 to 3 hours.
  3. If you have not previously learned Ruby on Rails (or have forgotten it over a gap between taking 324 and 326), you might consider completing all or part of the individual project for 324. If you do not know the language and framework, it is difficult to participate in your group, contribute to the team project, and provide leadership to the rest of your team.
  4. Work with your assigned team in a leadership role. In Agile, this tends to be either the Scrum Master or Product Owner roles. Serving as a leader to the team includes helping them with technical and logistical problems, suggesting options based on your coursework and prior experience, and helping other team members develop their technical and project management skills.
  5. Work with your team to develop your assigned team project.  This may include contributing code, refining the test suite, researching solutions to problems, or improving the documentation. You do not need to contribute an equal amount of the code etc. as the members of the team who are taking 324 since you are taking 2 credits compared to their 4 credits.
  6. Work with your team to create reports and conduct demonstrations.  Demonstrations are usually conducted on Fridays during class periods. Refer to the 324 schedule to be sure that team report due dates have not changed, but these 326 schedule should be accurate.
  7. Complete a substantial reading about software development or software engineering.  A possible list of options is here. If you are interested in other articles or books, please check with your instructor.
  8. Weekly reading summary of your chosen reading and a report about your experiences as a leader.  These may be written or oral reports.  Discuss options with your instructor.

Assignments

  1. Each sprint (other than sprint 0) will end with a demonstration to the class and a report uploaded into PioneerWeb. Work with your team to prepare these assignments. Attend and contribute to the demonstration presentations. Submit your team’s sprint report in PioneerWeb. Yes, it will be a duplicate of what they upload in their class, but this will facilitate final grade calculation for you.
  2. Contribute to the final team report and upload a copy via PioneerWeb.
  3. Contribute to and participate in the final demonstrations (both technical and public).
  4. Submit a self and peer review at the end of the term, via PioneerWeb.
  5. Read one or more books or articles about Agile software development leadership and report weekly on what you have read and how you have tried to apply it to your team project experience.