Course Overview

Course Description

Content
The senior 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.

Background
In this course, the instructor plays the role of a hiring manager deciding which interns to recommend for hire. You will play the role of an intern given great flexibility in proposing a project. You will be graded on your ability to propose and complete a project of your choosing. Your grade will be determined by the quality of the project you complete, your persuasive ability to propose a project that the hiring manager approves, your ability to set goals and achieve them, and your ability to make steady progress that reassures the hiring manager that you will complete your project successfully.

Motivation
This course offers you a chance to show off the skills you've learned in your undergraduate coursework and personal experience. To me, a key ingredient is that you find a project that you find personally meaningful and motivating. It's also important that you build on your training and experience so that you have a high degree of confidence that you can complete your proposed work. That said, you can include learning objectives in your proposal to indicate skills/technologies that you want to learn in order to complete the project. In addition to demonstrating computer science skill, your project must potentially be useful to someone other than yourself. The user might be hypothetical but you must at least make the case that someone else could use/benefit from your project. The majority of your grade will be determined by the quality of the project you complete but you will receive regular feedback on your progress.

Structure
In the first week, we discuss expectations for the class and setting on teams/projects. The second week you produce a successful project proposal. From there, you work on your project during the 3-hours class sessions. You submit status updates and meet with me individually to discuss your individual progress every two weeks of class. The final week of class you submit your project including a report, code, data and everything necessary to document it. We will use two final examination times for you to present your project to the class.

Objectives

  1. propose a project that provides enough detail and previous experience to convice the hiring manager that you can complete it successfully;
  2. identify biweekly plans and make steady progress toward your goals;
  3. demonstrate learning by submitting inquiry reports and demonstrations;
  4. when obstacles appear, find a way around/through them that does not diminish the quality of the project;
  5. demonstrate strong communication skills through written reports, presentations, and team skills; 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

Proposal
You will follow the provided template to propose a project, including a brief description, teamwork plan, previous preparation, learning objectives, risk assessment, and your initial plan.

Status Updates
Every two weeks you will individually submit a status update, including updated plan, learning objectives, inquiry report(s), and demonstrations.

Final Report and Presentations
In the final week of class you will submit a final project report, including the final executed timeline; demonstrated learning through inquiry, coursework, and demonstrations; and final working software demonstration for your project.

Grading & Policies

Course Policies

Student Responsibilities
Attendance is mandatory; absences will deduct 3% from the final grade. Students are expected to participate enthusiastically, work together to understand the material, 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 status 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 discuss this class 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. Hence, a fifteen hour academic load might reasonably require between 30 and 45 hours per week of out-of-class work. Since our class is a 3-hour class, you should expect to spend at least 9 hours per week outside of class. Because programming can be more time-consuming than studying things in other disciplines, that amount of time should be considered a minimum.

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
This class emphasizes using computer science to solve problems in music informatics. You will be solely responsible for building software that does cool things. However, 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. What are the key bits of information that made it "click" for you? When you present your work it is equally important to acknowledge the resources you used to accomplish it. One could argue that the most important part of this class is learning how to learn on your own. This is the skill that you will take with you.

Grading

Calendar

The official sequence of class activities is maintained on ASULearn.