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 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 set the learning objectives appropriate for your project and take the responsibility of demonstrating your new skills to the hiring manager. This takes several forms. First, you will set learning objects and identify appropriate resources. The best resources are those that build on your current skills to help you learn a new one. Second, you will summarize each resource focusing on its relevance to your project by writing an inquiry report. The report should summarize all the key information so that someone who wants to "follow in your footsteps" need not read the resource just your detailed summary. For software libraries, this might include the relevant methods and how you use them. Learning can be its own reward but if you want someone else (i.e., the hiring manager) to appreciate what you've learned, you need to prove it! Perhaps the easiest way to proove something is "by construction". Basically, you can prove that you know how to do something simply by doing it. Great! So, that's it!

  1. Set learning objectives,
  2. Identify resources,
  3. Study and practice deliberately,
  4. Write inquiry reports, and
  5. Write code to demonstrate your new skills.
What do I mean by deliberate study and practice? Check out Malcolm Gladwell's book Outliers. Although purposeful practice is not the only key to success, it is a necessary component if you want to be good at something. It isn't enough to consume media about it; you have to do it!

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 up teams/projects. The second week you produce a successful project proposal. From there, you work on your project during the 3-hour class sessions in addition to 6-9 hours outside class per week. You submit status updates and meet with me individually to discuss your progress. The final week of class you submit your project including a report, code, data and everything necessary to document it. We will use the final examination time 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 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 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 6-9 hours per week outside of class deliberately learning, practicing, and demonstrating new skills .

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.