Course Overview

Course Description

Content

The capstone project provides the student an independent and collaborative software development experience with a significant project. The course introduces aspects of project management, requirements analysis, and the software lifecycle, but will primarily be concerned with the practical integration of core theories, practices, and ethics of the discipline. Writing and speaking communication skills are reinforced.

Prerequisites

Senior standing (at least 90 credit hours), CS 3667, and CS 3460 with a grade of "C-" or better.

Background

In this course, the instructor plays the role of a hiring manager deciding which interns to recommend for hire. You and a partner will work together as "interns" and be given flexibility in proposing a project. Your team will define, design, develop, and deliver a substantial software project. Unlike most classes, the main learning objectives will be defined and completed by you in pursuit of your project. I provide feedback and guidance to help you achieve your goals, and evaluate your progress.

Motivation

This course offers you a chance to learn new skills and solve new problems while building a significant software product. It differs from a typical class in that there will not be tests or assignments designed to assess your knowledge of the material. Instead, you will learn independently and demonstrate your new knowledge by producing project artifacts such as program demos, design documents, figures, tables, and anything else you can use to convey progress toward your objectives. Each week, you will be intentional about how you spend your time, making sure the most important tasks (those most likely to prevent the completion of the project) are performed first.

Structure

The first two weeks will be devoted to proposing and planning the project. On a typical week, you will report how you spent your time, update your plan, and meet with me to demonstrate your completed tasks. I will provide feedback and guidance. There will be a midterm progress presentation, end of class project demonstration, and a project defense during exam week.

Objectives

  1. Propose a project in enough detail to convice the instructor that you can complete it successfully;
  2. Maintain a prioritized list of tasks, estimated effort remaining, and make steady progress toward your goals;
  3. Provide demonstrations of completed tasks that are embedded in your project;
  4. When obstacles appear, find a way around/through them that does not diminish the quality of the project;
  5. Communicate clearly and work effectively as a team; and
  6. Complete the project successfully so that the hiring manager can recommend you with confidence.

Instructor Information

Biography

Dr. Parry grew up in Indiana, went to college at Univ. of Virginia, and graduate school at Georgia Tech. His research interests include artificial intelligence, date mining, and visualization, especially applied to music, sports, and education. He prefers teaching and learning when it can be motivated by challenging and interesting problems.

Course Requirements

Materials

Required

Resources

Assignments

Project Topic

You will pitch project ideas, comment on other project ideas, and find a partner.

Project Proposal

You and a partner will propose a project, including what experience you're building on and what you will need to learn.

Feature Definitions

You will break down your project into a list of features and how a user of your product could verify them.

Burndown Charts

These charts document weekly effort, track and prioritize the list of tasks, and estimate future effort.

Weekly update meetings

Every week you will meet with me to discuss your progress and provide evidence of completed tasks

Midterm Presentation

You will present to the class your progress so far and your plan for the remainder of the semester.

Project Demonstration

You will demo your project to the class by the last day of class.

Final Report and Defense

You will write a final report that documents the features you implemented, the evidence of their completion, and inludes your working source code. During the final exam period, you will meet individually with the hiring manager for a technical interview about your project.

Grading & Policies

Course Policies

Regarding COVID-19

We will follow the university policies on COVID-19.
This class meets face-to-face without lecture recordings or Zoom sessions.

Student Responsibilities

Each week we will use the class time for dedicated project work. You will use your reliable internet connection and webcam to demonstrate your presence during these times. Attendance is mandatory and unexcused absences will deduct 3% from the final grade.

Students are expected to participate enthusiastically, work together to learn, and encourage each other. Students with similar technical challenges may learn together even if on different teams. Students are expected to seek out appropriate resources to aid in the completion of their project. However, all resources must be cited appropriately in weekly updates and the final report. Never present someone else's work as your own, and always give credit to your resources, including people.

Instructor Responsibilities

I will be available for questions/help during the regularly scheduled class times, office hours, and over email. If you need to meet outside the regular times, email me to set up an appointment. I really do want this class to succeed. So, please send me your comments, positive or negative, that will help improve the course.

Student Engagement

In its mission statement, Appalachian State University aims at "providing undergraduate students a rigorous liberal education that emphasizes transferable skills and preparation for professional careers" as well as "maintaining a faculty whose members serve as excellent teachers and scholarly mentors for their students." Such rigor means that the foremost activity of Appalachian students is an intense engagement with their courses. In practical terms, students should expect to spend two to three hours of studying for every hour of class time. Since this is a 3-hour class, you can expect to average 9-12 hours per week for this class.

ASU Academic Integrity Statement

As a community of learners at Appalachian State University, we must create an atmosphere of honesty, fairness, and responsibility, without which we cannot earn the trust and respect of each other. Furthermore, we recognize that academic dishonesty detracts from the value of an Appalachian degree. Therefore, we shall not tolerate lying, cheating, or stealing in any form and will oppose any instance of academic dishonesty. Students attending ASU agree to abide by the following Code:

Office of Student Conduct Web Site

Academic Integrity

In this class you will develop a substantial software project. You are not expected to do this from scratch. You may use existing libraries, open-source code, code that you've used for other classes to solve problems in this class. However, you must give credit everywhere it is due. I want you to reflect on your process for solving problems and how you find the resources you need. One could argue that the most important part of this class is learning how to learn on your own. That includes recognizing and attributing good resources.

Public Sharing of Course Materials

All course materials, including video, may be subject to intellectual property protections under applicable law and regulation and are for the sole use of students enrolled in this class. Students do not have permission to copy or record materials except for personal use in the context of this class and students do not have permission to share any class materials, including videos, in any manner on any platform without the prior express permission of the faculty member teaching this course.

Grading

Calendar

The official sequence of class activities is maintained on ASULearn.