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 (
- Set learning objectives,
- Identify resources,
- Study and practice deliberately, and
- Write code to demonstrate your new skills.
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
- propose a project that provides enough detail and previous experience to convice the hiring manager that you can complete it successfully;
- maintain a prioritized list of tasks, estimated effort remaining, and make steady progress toward your goals;
- demonstrate learning by implementing features that work;
- when obstacles appear, find a way around/through them that does not diminish the quality of the project;
- demonstrate strong communication skills through written reports, presentations, and team skills; and
- 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
- Can-do attitude!
Resources
- Project Management
- Web Frameworks
- Online Courses
- Web Scraping 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.
Feature Definitions
These are the tasks you will complete on a weekly basis including and update along with your burndown chart.
Burndown Charts
These track the prioritized list of tasks, estimated and actual effort remaining.
Face-to-face Meetings
Every two weeks you will meet with the hiring manager individually to discuss your progress. Be prepared.
Midterm Presentation
You will present during class your progress so far and plan for the remainder of the semester.
Final Report and Presentations
In the final week of class you will submit a final project report, final executed burndown chart, final working software, and class presentation/demonstration for your project. During the final exam period, you will meet individually with the hiring manager for a technical interview about 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:
- Students will not lie, cheat, or steal to gain academic advantage.
- Students will oppose every instance of academic dishonesty.
Academic Integrity
This class emphasizes using computer science to solve real problems. 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
- Each status update will be worth the same amount.
- The final grade will determined using the following point system:
-
Category Points Homework (3) 10 Burndown Charts (11) 10 Face-to-face Meetings (5) 10 Project Deliverables 70 Total 100
- All grades will be posted to ASULearn.
- The maximum percentage required to earn each letter grade is shown below:
GradePercentage RequiredA 93 A- 90 B+ 87 B 83 B- 80 C+ 77 C 73 C- 70 D+ 67 D 63 D- 60 F below 60 Calendar
The official sequence of class activities is maintained on ASULearn.