CSCI 4970: Computer Science Capstone Project
Fall 2020
Meeting time: | TR 1:30-2:45 |
Classroom: | Zoom |
Instructor: | Dr. Harvey Siy |
Office: | PKI 281B |
Phone: | (402)554-2834 |
Email: | hsiy at unomaha dot edu |
Office Hours: | By appointment (call or email ahead) |
Textbook: (optional) | Blown to Bits: Your Life, Liberty, and Happiness After the Digital Explosion. Addison-Wesley, 2010. Available online. |
(optional) |
Engineering Software as a Service: An Agile Approach Using Cloud Computing (1st edition) by Fox and Patterson, 2014. Online resources. |
(optional) | Program Development in Java: Abstraction, Specification, and Object-Oriented Design by Liskov and Guttag, Addison-Wesley, 2000. |
Overview
The Capstone Project represents the crowning achievement of a Computer Science student's undergraduate experience,
showing the world what one can do with a computer science degree.
Students apply fundamental computer science principles to the solution of real-world problems and
employ sound software engineering techniques to develop the project in a systematic manner.
Prerequisites
- Software engineering (CSCI 4830)
- Senior standing in CS
- Ability to work in a team
Learning Objectives
Students who complete this course will:
- Recognize and appreciate how fundamental computer science principles apply to real-world problems.
- Understand the importance of the socio-technical context in which a software product operates.
- Improve their communication skills through interaction with an actual client.
- Gain proficiency in modeling, implementing and testing nontrivial software applications.
- Gain more experience in working as a team and using collaboration tools.
Degree Program Student Learning Objectives
These course learning objectives contribute towards the CS degree program Student Learning Objectives:
- Ability to implement and evaluate a computer-based system, process, component, or program to meet desired needs
- Demonstrate an understanding of professional, ethical, legal, security, and social issues and responsibilities
- Ability to communicate with a range of audiences
- Ability to apply design and development principles in the construction of software systems of varying complexity.
Our project-based learning approach:
- Students will form teams.
- Students will find and work with a client to develop a project proposal.
- Once the proposed project has been approved by the instructor and client, students will consult with the instructor and develop a project plan for delivering a final product acceptable to the client.
- Students will be accountable for meeting the planned milestones and reporting progress to the instructor and/or the client.
- Upon completion of the project, students will publicly present and demonstrate their work.
Our online course approach:
Meetings: We will meet via Zoom on the first week to set up the teams and discuss project expectations. For the remaining weeks, the class meeting times should be used for team face-to-face meetings via Zoom. Attendance will be checked every class period.
Homepage: The Canvas homepage will provide a starting point for each week's activities. Be sure to check it often.
Asynchronous Instruction:
- Lectures will be asynchronous. Lecture slides will be posted in advance. Topics may include:
- Team collaboration
- System context and client goals
- Review of requirements analysis and design models
- Test-driven development
- Version control
- Additional lectures in specific CS areas may also be provided
- I am working on video lectures, addressing some key points for each week's lectures and deliverables. As these get posted, I will leave a note on the updates page.
Suitable Projects
While there are lots of possibilities, projects should showcase to the client what one can do with a CS degree. Thus, projects are expected to have an innovative computational component requiring nontrivial software development and application of computer science theory and concepts. Example application types include scheduling, optimization, simulation, data analytics, cyber-physical systems, and computational science.
Projects will usually involve sophisticated algorithms manipulating complex information, and may involve learning more about CS areas such as language processing, networks, embedded systems, parallel computation, databases, artificial intelligence, machine learning, computer graphics, etc.
Many common project proposals involve the creation of a large web application with a database. While such projects are not outside the scope of possibilities, it is expected that such systems should provide intelligent capabilities and services to the client, beyond implementing basic CRUD (create/read/update/delete) operations.
Evaluation
There are no exams or graded homeworks in this course. Students will be evaluated based on the quality of the project at the end of the semester. Evaluation rubrics will be provided at the start of the semester.
Academic Integrity
For formal policies about cheating and plagiarism, consult the UNO Student Policies and Department of Computer Science Policies and Procedures.
Back to homepage.