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)
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.


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.


Learning Objectives

Students who complete this course will:
  1. Recognize and appreciate how fundamental computer science principles apply to real-world problems.
  2. Understand the importance of the socio-technical context in which a software product operates.
  3. Improve their communication skills through interaction with an actual client.
  4. Gain proficiency in modeling, implementing and testing nontrivial software applications.
  5. 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:

  1. Ability to implement and evaluate a computer-based system, process, component, or program to meet desired needs
  2. Demonstrate an understanding of professional, ethical, legal, security, and social issues and responsibilities
  3. Ability to communicate with a range of audiences
  4. Ability to apply design and development principles in the construction of software systems of varying complexity.

Our project-based learning approach:

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:

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.


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.