Introduction

Welcome to CIS 598!

Subsections of Introduction

Fall 2026 Info

CIS 596 - Entrepreneurial Computer Science Project - Fall 2026

CIS 598 - Computer Science Project - Fall 2026

Previous Versions

Not Authoritative

Starting with the Fall 2026 semester, official K-State syllabi can be found in Coursedog.

This page is no longer the official syllabus, but it may still contain useful information for students.

Instructor Contact Information

  • Instructor: Dr. Dan Andresen (dan AT ksu DOT edu)
  • Office: DUE 2184
  • Phone: (785) 532-6350
  • Website: https://people.cs.ksu.edu/~dan/
  • Virtual Office Hours: By appointment. Schedule on Calendly

  • Instructor: Mr. Russell Feldhausen (russfeld AT ksu DOT edu)
  • Office: DUE 2213, but I mostly work remotely from Kansas City, MO
  • Phone: (785) 292-3121 (Call/Text)
  • Website: https://russfeld.me
  • Virtual Office Hours: By appointment via Zoom. Book time to meet with me

Preferred Methods of Communication:

  • Email: Students should email questions directly to the instructors. We will try to respond within one business day.
  • Chat: You may find instructors online via the CS department Discord server and Microsoft Teams. We will try to respond when we can, but if you don’t get a response please email us.
  • Phone/Text: Emergencies only! We will do our best to respond as quickly as we can.

Prerequisites

  • CIS 596: CIS 560, ENTRP 340 and senior standing in computer science. Students may enroll in CIS courses only if they have earned a grade of C or better for each prerequisite to those courses.
  • CIS 598: CIS 560 and senior standing in computer science. Students may enroll in CIS courses only if they have earned a grade of C or better for each prerequisite to those courses.

Course Overview

Directed studies: selection, investigation and report on some topic not covered in prior courses; may include an implementation and/or experimentation component; may be done in collaboration with other students. Completion of a final report with literature review and project evaluation.

Course Description

In this course, students will complete a project, either individually or in small groups, under the supervision of a faculty advisor. The project will integrate concepts from prior courses, but also include a growth component including material not covered in prior courses.

Students will create and deliver several presentations throughout the semester on the status of the project, and will also be responsible for developing design documents and other artifacts. At the end of the semester, students will present their work in a public presentation graded by the faculty advisor.

Major Course Topics

  • Software Engineering methodologies
  • Software Design Documents & Artifacts
  • Public Speaking & Presentation of Technical Information
  • Planning and Iterating on a Large Software Project
  • Taking a Project from Idea to Completion
  • Demonstrating Independent Learning & Continuing Growth in Computer Science

Student Learning Outcomes

After completing this course, a successful student will be able to:

  • Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions
  • Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline
  • Communicate effectively in a variety of professional contexts
  • Apply computer science theory and software development fundamentals to produce computing-based solutions

Course Structure

The course meets in person Mondays from 3:30 - 4:20 PM in DUR 1066. Students should attend all in-person course sessions to which they are assigned. In-person sessions will primarily be used for student presentations throughout the semester. There may also be one or two Wednesday in-person class periods for presentations if needed. These dates will be clearly announced in advance.

On weeks where Monday falls on a university holiday, the course will instead meet in person on Wednesday of the same week unless otherwise announced.

Course work hours will be Wednesdays and Fridays from 3:30 - 4:20 PM online via Zoom. Attendance at these work hours is optional, but highly recommended. It is a good time to work on your project, ask questions, and get advice. The instructors will be available during these times to answer questions about the class or provide project assistance.

The Work

There is no shortcut to becoming a great programmer. Only by doing the work will you develop the skills and knowledge to make you a successful computer scientist. This course is built around that principle, and gives you ample opportunity to do the work, with as much support as we can offer.

Deliverables

  • Initial Writeup & Feature List - typically early in the semester, students will submit an initial writeup detailing their project, identifying a faculty advisor, and listing the features for their project.
  • Project Overview & Requirements Presentation - typically during the first and second month of the semester, each student will give a short 8-10 minute presentation introducing their chosen project, and discuss the requirements needed to complete the project.
  • Project Design Presentation - typically during the third and fourth month of the semester, each student will give a short 8-10 minute presentation discussing the design of their project. This should include various relevant design artifacts, such as UML diagrams, GUI mockups, API specifications, and database ER diagrams.
  • Final Project
    • Advertisement - students will develop a single slide/image and abstract to be used for advertising their final project presentations.
    • Presentation - during the final weeks of the semester, students will schedule a final project presentation. That presentation will be advertised through the department and given publicly. The student’s faculty advisor will grade the final project presentation.
    • Artifacts - at the end of the semester, students must submit the full source code of their project, presentation materials, design documents, and a short writeup detailing the project, it’s completion status, and any future work to be done should another student choose to continue and build upon the project.

Grading

Since this is a project-based course with few deliverables, grading will be handled differently than most other college courses. Your final letter grade will reflect your overall performance in the course, including attendance, in-class presentations, public presentations, adherence to timelines, consistent progress throughout the semester, and the quality of the final project artifacts. Grading will be done in consultation between course instructors and a student’s faculty advisor.

A rough estimate of the relative grading importance of each deliverable is given below:

  • 30% - Completion of Initial Artifacts and Presentations; In-Class Attendance and Adherence to Deadlines
  • 70% - Final Project Presentation & Artifacts

Specifications Grading

The two in-class presentations will be graded using specifications grading. Put simply, the instructors will rate how well the presentation meets the specifications given and the expectations of the instructors. Therefore, students will be given one of the following four ratings:

  1. Exceeds Expectations
  2. Meets Expectations
  3. Needs Revision
  4. Incomplete

Students who receive a Needs Revision or Incomplete rating will be given one chance to redo the presentation during one of the online course work hours later that week.

Grade Letter Deductions

Since this is a senior-level course, points will not be given for things such as attendance and meeting deadlines, since those are expected of students at this level. However, failure to meet these expectations may result in a grade letter deduction at the end of the semester at the sole discretion of the instructors:

  • Identify a project topic and faculty advisor before the deadline.
  • Attend at least 80% of the in-class meeting times.
  • Give a presentation on the scheduled date.
  • Submit the final project advertisement by the deadline.
  • Submit the final project artifacts by the deadline.

Reasonable accommodations will be made in case of unforeseen emergencies or university-excused absences. It is always best to reach out to the instructors as soon as you are aware of a situation that may require accommodation.

Collaboration Policy

In general, students are expected to work independently on a project unless given permission from the instructors. Team projects are welcomed, but come with additional expectations to ensure that each student participates fully and the project is appropriately scoped.

Since this is a project course, it is likely that some code in your project may come from other sources, such as a starter project or documentation. Students are expected to document each instance of code taken from another source through code comments marking the relevant location. The majority of the final project should represent the student’s own work.

Artificial Intelligence Usage Policy

This course uses a stoplight approach regarding the use of generative artificial intelligence (GenAI) tools, such as ChatGPT, Claude, Copilot, and others. Each assignment or group of assignments will be clearly labelled with one of three labels, indicating what level of GenAI usage is allowed.

Details
RED: GenAI Prohibited You may not use any GenAI tools to complete this assignment. This assignment's main goal is to develop your own skills related to a particular task or topic, or to assess your own understanding of the concepts and skills required for this course. GenAI tools are therefore prohibited for these assignments, as they do not reflect or enhance your own learning journey.

Policy Violations: Any usage of GenAI for this assignment will be treated as a violation of the K-State Honor Pledge and may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

Details
YELLOW: Limited GenAI Usage Allowed You may use GenAI tools in a limited way to complete this assignment. The assignment description may provide additional information about what tools are allowed and how they can be used. The goal of this assignment is to allow you to work with GenAI to complete a task or achieve a goal, but the completed work should still be a majority your own effort.

Citations Required: Any usage of GenAI must be noted and cited directly in the work, either in source code comments or text citations in written work. Citations should include the tool used, the prompt(s) given, context provided to the tool (e.g. existing code), and a discussion of how the results were used to complete the assignment.

No Direct AI Results: For this assignment, you may not include the GenAI results directly in your submission - it must be used to inform and adapted to fit your own work. For example, you may not prompt GenAI tools to just write your code and submit that directly; instead, you should ask for help performing specific tasks and then use the results within your own work.

Understand Your Work: To ensure compliance with this policy, the instructor reserves the right to request additional discussion or explanation of any work submitted by a student. The student should understand and be able to clearly explain all submitted work and code, even materials directly or indirectly produced by GenAI. A student who is unable to explain a submission to the satisfaction of the instructor may be considered to be in violation of this policy.

Policy Violations: Any usage of GenAI that involves direct submission of the GenAI outputs without additional work done by the student, or use of GenAI without proper citation, may be treated as a violation of the K-State Honor Pledge and may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

Details
GREEN: GenAI Encouraged You may make unlimited use of GenAI tools to complete this assignment. The goal of this assignment is to ensure you are comfortable with using GenAI tools to specifically meet a need or achieve a goal.

Citations Required: Any usage of GenAI must be noted and cited directly in the work, either in source code comments or text citations in written work. Citations should include the tool used, the prompt(s) given, context provided to the tool (e.g. existing code), and a discussion of how the results were used to complete the assignment.

Direct AI Results Allowed: For this assignment, you may include the GenAI results directly in your submission. It is still your responsibility to ensure the submission meets the assignment’s goals and is correct and factual - remember that GenAI is not infallible and may produce incorrect results. You are still solely responsible for ensuring the submission meets the stated assignment goals, and assignments in this category may receive additional scrutiny for correctness and accuracy.

Understand Your Work: To ensure compliance with this policy, the instructor reserves the right to request additional discussion or explanation of any work submitted by a student. The student should understand and be able to clearly explain all submitted work and code, even materials directly or indirectly produced by GenAI. A student who is unable to explain a submission to the satisfaction of the instructor may be considered to be in violation of this policy.

Policy Violations: Any usage of GenAI without proper citation may be treated as a violation of the K-State Honor Pledge and may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

Please contact the instructor if you have any questions about this GenAI policy. It is your responsibility to understand it and proactively ask questions if you are unsure; ignorance of this policy is not an excuse for violating it.

Artificial Intelligence Disclosure

In keeping with the expectation for transparency and citation regarding the use of generative artificial intelligence (GenAI), the instructors of this course will clearly denote any usage of GenAI tools in the process of teaching this class. Specific policies for the usage of GenAI by the instructors and TAs of this course are given below:

  • RED: GenAI Prohibited Student Communication - GenAI will never be used to when communicating with students. We believe it is important for students to receive real, authentic communication from instructors and TAs.
  • RED: GenAI Prohibited Grading - GenAI will never be used to suggest or assign grades for any student-submitted work. All grading decisions will be done solely by instructors and TAs.
  • YELLOW: Limited GenAI Usage Allowed Code Review & Feedback - Instructors may use GenAI tools to assist with code reviews due to the scope and scale of these projects. However, all feedback given will be “human in the loop” with the final feedback coming directly from the instructors and TAs (see the first point above).
  • YELLOW: Limited GenAI Usage Allowed Lesson & Learning Content - GenAI may be used in a limited way to construct lessons and learning content, such as homework scenarios or simple graphics. All usage of GenAI will be clearly marked and cited. (As of August 2026, no GenAI content exists in the course).

Late Work

As discussed above, students are expected to adhere to course deadlines. Failure to meet those deadlines may result in a letter grade deduction at the end of the semester.

If you have extenuating circumstances, please discuss them with the instructor as soon as they arise so other arrangements can be made. If you find that you are getting behind in the class, you are encouraged to speak to the instructor for options to get back on track.

Incomplete Policy

Students should strive to complete this course in its entirety before the end of the semester in which they are enrolled. However, since retaking the course would be costly and repetitive for students, we would like to give students a chance to succeed with a little help rather than immediately fail students who are struggling.

If you are unable to complete the course in a timely manner, please contact the instructor to discuss an incomplete grade. Incomplete grades are given solely at the instructor’s discretion. See the official K-State Grading Policy for more information. In general, poor time management alone is not a sufficient reason for an incomplete grade.

Unless otherwise noted in writing on a signed Incomplete Agreement Form, the following stipulations apply to any incomplete grades given in this course:

  1. Students who request an incomplete will have their final grade capped at a C.
  2. Students will be given a maximum of 8 calendar weeks from the end of the enrolled semester to complete the course. It is expected that students have completed at least half of the course in order to qualify for an incomplete.
  3. Students understand that access to instructor and TA assistance may be limited after the end of an academic semester due to holidays and other obligations.

Students will make use of GitHub for source code management.

Students may use their choice of IDEs and software development platforms. Many of them are available in the Computer Science Department’s labs. If a particular software or framework is needed but cannot be acquired, consult with the instructors.

Subject to Change

The details in this syllabus are not set in stone. Due to the flexible nature of this class, adjustments may need to be made as the semester progresses, though they will be kept to a minimum. If any changes occur, the changes will be posted on the Canvas page for this course and emailed to all students.

Standard Syllabus Statements

Info

The statements below are standard syllabus statements from K-State and our program. The latest versions are available online here.

Netiquette

Info

This is our personal policy and not a required syllabus statement from K-State. It has been adapted from this statement from K-State Online, and theRecurse Center Manual. We have adapted their ideas to fit this course.

Online communication is inherently different than in-person communication. When speaking in person, many times we can take advantage of the context and body language of the person speaking to better understand what the speaker means, not just what is said. This information is not present when communicating online, so we must be much more careful about what we say and how we say it in order to get our meaning across.

Here are a few general rules to help us all communicate online in this course, especially while using tools such as Canvas or Discord:

  • Use a clear and meaningful subject line to announce your topic. Subject lines such as “Question” or “Problem” are not helpful. Subjects such as “Logic Question in Project 5, Part 1 in Java” or “Unexpected Exception when Opening Text File in Python” give plenty of information about your topic.
  • Use only one topic per message. If you have multiple topics, post multiple messages so each one can be discussed independently.
  • Be thorough, concise, and to the point. Ideally, each message should be a page or less.
  • Include exact error messages, code snippets, or screenshots, as well as any previous steps taken to fix the problem. It is much easier to solve a problem when the exact error message or screenshot is provided. If we know what you’ve tried so far, we can get to the root cause of the issue more quickly.
  • Consider carefully what you write before you post it. Once a message is posted, it becomes part of the permanent record of the course and can easily be found by others.
  • If you are lost, don’t know an answer, or don’t understand something, speak up! Email and Canvas both allow you to send a message privately to the instructors, so other students won’t see that you asked a question. Don’t be afraid to ask questions anytime, as you can choose to do so without any fear of being identified by your fellow students.
  • Class discussions are confidential. Do not share information from the course with anyone outside of the course without explicit permission.
  • Do not quote entire message chains; only include the relevant parts. When replying to a previous message, only quote the relevant lines in your response.
  • Do not use all caps. It makes it look like you are shouting. Use appropriate text markup (bold, italics, etc.) to highlight a point if needed.
  • No feigning surprise. If someone asks a question, saying things like “I can’t believe you don’t know that!” are not helpful, and only serve to make that person feel bad.
  • No “well-actually’s.” If someone makes a statement that is not entirely correct, resist the urge to offer a “well, actually…” correction, especially if it is not relevant to the discussion. If you can help solve their problem, feel free to provide correct information, but don’t post a correction just for the sake of being correct.
  • Do not correct someone’s grammar or spelling. Again, it is not helpful, and only serves to make that person feel bad. If there is a genuine mistake that may affect the meaning of the post, please contact the person privately or let the instructors know privately so it can be resolved.
  • Avoid subtle -isms and microaggressions. Avoid comments that could make others feel uncomfortable based on their personal identity. See the syllabus section on Diversity and Inclusion above for more information on this topic. If a comment makes you uncomfortable, please contact the instructor.
  • Avoid sarcasm, flaming, advertisements, lingo, trolling, doxxing, and other bad online habits. They have no place in an academic environment. Tasteful humor is fine, but sarcasm can be misunderstood.

As a participant in course discussions, you should also strive to honor the diversity of your classmates by adhering to the K-State Principles of Community.

SafeZone Ally

I am part of the SafeZone community network of trained K-State faculty/staff/students who are available to listen and support you. As a SafeZone Ally, I can help you connect with resources on campus to address problems you face that interfere with your academic success, particularly issues of sexual violence, hateful acts, or concerns faced by individuals due to sexual orientation/gender identity. My goal is to help you be successful and to maintain a safe and equitable campus.

© The materials in this online course fall under the protection of all intellectual property, copyright and trademark laws of the U.S. The digital materials included here come with the legal permissions and releases of the copyright holders. These course materials should be used for educational purposes only; the contents should not be distributed electronically or otherwise beyond the confines of this online course. The URLs listed here do not suggest endorsement of either the site owners or the contents found at the sites. Likewise, mentioned brands (products and services) do not suggest endorsement. Students own copyright to what they create.

Getting Started

Slides

The major outcome for this course is a project that demonstrates your skills in computer science, software development, and other areas relevant to your chosen degree program. This page provides an overview that will help you get started on your project.

Research Topic

Starting in Spring 2023, we now have a special track for topics that fall generally under the heading of “research” instead of a software development project. This includes projects that may have a significant experimental component where the focus is less on developing a software project and more about creating software to support a research task. If you feel that your project fits this description, you should skip to the Research Topic page.

Here is a recommended timeline for your project:

  • Week 1: Identify a project, get a project advisor.
  • Week 2: Report your project topic and advisor. Start developing.
  • Week 3: “Hello World” Complete.
  • Weeks 3-8: Overview & Requirements Presentations & First Round of Development.
  • Week 8: Minimum Viable Product (MVP) Complete.
  • Weeks 9-14: Design Presentations & Second Round of Development.
  • Week 14: Schedule Final Presentation & Create Promotional Materials
  • Week 15: Version 1.0 Feature Complete.
  • Weeks 15-16: Final Presentations.
  • Week 16: Submit Final Materials.

Choosing a Topic

The first major step is to identify a possible topic for your project. It should align with your interests in the field, and it may also fit well with previous courses you’ve taken or possibly future career paths. You may also choose to use your project to explore a new topic or framework that you’d like to get experience with.

You are also welcome to choose to try and duplicate an existing program from scratch, putting your own spin on it and writing the code from scratch. For example, you may choose to try and duplicate the underlying code and features for a popular social network - in effect your project is driven by their design, but you have to figure out how to build it and code it yourself.

Finally, if you are having trouble finding a topic, consult the Project Ideas folder on Canvas for project ideas that have been submitted or previous projects that could be continued. You can also chat with the course instructors to get some ideas of a project to consider, or if you have an advisor you’d like to work with, chat with them for some ideas.

Topic Limitations

We do not recommend choosing a project topic that you have no prior knowledge or experience with. For example - do not choose to make a complex video game if you haven’t made a game before, either as part of the class or as an independent project. Likewise, do not choose to develop a single-page web application if you don’t already know HTML, CSS, JavaScript, and the basics of web application development.

Generally students who choose a project topic that requires a large amount of learning end up producing inferior projects simply due to the amount of time spent early in the semester learning the basics. It is best to choose something you already know something about, but would like to explore further.

Features to Consider

As you consider project topics, remember that completed projects must include these two items:

  • Problem/Solution In the initial discussion of the project, you should be able to phrase your project as a solution to a selected problem. For example, you could say that the problem is “a need for accurate record keeping for a winter warming shelter” and that your solution is a “web application that is accessible on mobile devices.”
  • Algorithmic Functionality Each project must include some significant algorithmic component. This means that web applications must do more than just present and store data using the basic CRUD database functions, and video games must have more than just hard-coded levels and enemies. So, be thinking about how you can demonstrate a significant algorithmic component in your project.
Code First

When selecting your project topic, remember that the goal of this project is to develop a large amount of code as part of a software project. So, if you plan on using tools such as a drag & drop UI creator or a visual game engine such as Unity, you still need to make sure that the bulk of the project is code that you’ve written yourself. Any code generated by these tools is not considered a core part of your project since it doesn’t demonstrate your programming skill.

You can demonstrate your skill instead by building UIs directly in code, writing algorithms to automatically generate assets in a video game, or choosing to use a “code-first” UI design or game engine.

Finding an Advisor

Once you’ve identified a project, you’ll need to select a faculty advisor to work with. Throughout the semester, you’ll meet regularly to discuss your project with your faculty advisor, and follow their guidance to produce a quality product.

Typically you want to choose a faculty advisor that is familiar with your project area, since they will be most likely to be able to provide good assistance and feedback as you work on your project.

If you aren’t sure which faculty members may fit well with your project idea, contact the course instructors or consult the information on the CS Faculty webpage.

Advisor Responsibilities

Each advisor approaches senior projects differently, but in general your advisor will typically ask you to do the following:

  • Provide an overview of the project and a list of features to be developed.
  • Meet weekly to provide status updates on the project.
  • Read or review additional information, research papers, etc. related to your project.
  • Share your code and other project artifacts for review
  • Schedule a final project presentation

Generative Artificial Intelligence Policy

Details
GREEN: GenAI Encouraged You may make use of GenAI for this project. However, you are expected to produce a project that goes above and beyond what a GenAI agent can accomplish on its own. This project expects significant time and effort on your part to produce a quality project, and GenAI is just one tool you can use to make this possible. You are solely responsible for any artifacts produced for this project and are expected to review any GenAI results to ensure you understand them and that they are accurate. All GenAI usage must be disclosed and cited in your code and presentations.
  • Citations Required: Any usage of GenAI must be noted and cited directly in the work.
  • Direct AI Results Allowed: For this assignment, you may include the GenAI results directly in your submission.
  • Understand Your Work: You may be asked to explain your code in detail as part of this project. Failure to do so may be considered a violation of this policy.
  • Policy Violations: Violations may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

A deeper discussion of project expectations with regard to GenAI usage can be found here

Initial Artifacts

At the very beginning of your project, you should create a few initial artifacts to start the development process:

  • Writeup: prepare a short, 1 page writeup that describes your project topic. It should give some basic use cases and a rough idea of the architecture or platforms you plan on using in the project. Your writeup must include clear sections containing the following:
    • Problem/Solution A clear statement of a problem that you are trying to solve, and how your project will fill the role as a solution to that problem. There are many ways to approach this statement - consult the course instructors for assistance if you are unsure how to phrase your project in this way.
    • Use Cases A list of a few simple use cases that help describe how users will interact with your project.
    • Algorithmic Functionality A clear statement of the intended algorithmic functionality of your project. Your project must include some algorithmic functionality beyond the basics. For example, a web application should provide more than just the basic CRUD database operations. Likewise, a video game should include some complex algorithmic component such as procedurally-generated terrain or a learning AI beyond just simple, hard-coded content.
    • Student Qualification A clear statement explaining why you are qualified to take on this project. You must describe your background and experience with the chosen project and related technologies. If you have no prior experience, consider choosing a different project.
    • Project Advisor List your project advisor. You must have permission from your advisor confirming that they will supervise your project before submitting!
    • AI Usage State your expected level of GenAI usage. A deeper discussion of project expectations with regard to GenAI usage can be found here. We generally expect projects to fall into one of three categories:
      • No GenAI - you do not plan to use GenAI tools at all for coding your project. You plan to write all code yourself without any assistance either in the IDE or externally when it comes to creation of the code itself.
      • Assistive GenAI - you plan to use GenAI as a coding assistant, but will be responsible for most of the overall structure and code in the project. This covers usages such as GitHub copilot auto-completion in the IDE or getting small code suggestions from ChatGPT or Claude.
      • Agentic GenAI - you plan to use an agentic GenAI tool such as Claude Code as part of this project. Those tools are capable of creating large amounts of code, content, tests, and documentation independently without direct user intervention.
  • Feature Lists: prepare three sets of feature lists for your project:
    • Minimum Viable Product (MVP) or must haves: these are features that must be present in the project for it to function in the basic sense. It usually doesn’t include much in the way of user interface beyond the basic interactions, and it may be missing some additional items to make it more useable. A project that has these features could be considered a Minimum Viable Product. Typically you want to have these features completed in the first 8 weeks of development.
    • Version 1.0 or should haves: these are features that should be present in the project for it to be considered complete. This would involve additional usability features or links to other APIs as needed. A project with these features would be considered a 1.0 product, and could be used by others. Typically these features are completed in the second 8 weeks of development.
    • Version 2.0 or would like to haves: these are cool features that would be useful to have in a finalized project, but they may be outside the scope of what is achievable in a single semester. The lack of these features should not impact the useability or functionality of the project. Typically these features are simply listed on the “Future Work” portion of the final presentation, but if you complete the project ahead of schedule you may consider adding one or more of these features to the project.
  • Time Management Plan: prepare a detailed time management plan for each week of the semester. This helps ensure that you are able to devote 9 hours each week to this class, and also ensures that you save enough time for other classes and activities.

These artifacts are not “set in stone” and can be easily adjusted throughout the project. For example, you may find that a feature previously on the Version 2.0 list is not critical, and it moves to an earlier list.

Hello World

The next step in creating a successful project is getting to the “Hello World” stage. This typically involves configuring your development environment, creating a new project or downloading an existing project, and confirming that you can successfully build and run the project in its simplest form. Ideally, you should be at the “Hello World” stage of your project no later than week 3, and ideally much sooner. This is especially important if you are learning how to use a new framework, programming language, or tool, as it may require significant work to get to this stage alone.

Once you are at the “Hello World” stage, you are at the point where you can start adding features to your project from the feature lists described above. A great way to think of those feature lists is like the Product Backlog in the agile software methodology - it is a list of project requirements to be completed.

Warning

OneDrive is NOT good for code - use git!

One common issue that students run into in this class is storing their code repository folders in a folder synched with OneDrive causes issues - especially if you use OneDrive to sync your work between multiple systems. This can cause all sorts of headaches since OneDrive wasn’t designed to work well with code, and large projects can result in thousands of text files that need to be constantly synched and updated as you make changes. It is further exacerbated by putting a git repository inside of a OneDrive folder - that is a recipe for your git repository to become corrupted and potentially unrecoverable if a sync error occurs.

Instead, you should always store your code repository folders outside of anything synched to OneDrive (I like to just make a projects folder inside of my profile folder on my system, so the path would be C:\users\russfeld\projects or /home/russfeld/projects) and work from there. Inside of that folder, you should clone your GitHub Classroom repository that has already been set up for you and start working from there. If you’ve already created a project, you’ll need to manually copy the code into that folder and commit it - you can’t push an existing repository to GitHub Classroom without causing major issues.

Also, if you haven’t created a .gitignore file for your project, now is a great time to do so. You should never commit binary files, build artifacts, or external libraries to your GitHub repository - that just causes unnecessary repository bloat and makes things much harder to deal with down the road. There is a GitHub repository full of sample .gitignore files for just about every IDE and framework imaginable - see https://github.com/github/gitignore.

Tip

Project Scale and Scope

One area that many students struggle with is finding a project that has the appropriate scale and scope for a senior project. While there are no clear rules for this, and each student’s situation is different, here are some suggestions for finding an appropriately sized project.

  • The course is 3 credit hours, which roughly equates to an expectation of 9 hours of work each week. Across a 16 week semester, that comes to a total of 144 hours, or just over three and a half 40 hour work weeks if you worked on it full time. You’ll be tracking your hours worked throughout the semester, and that may help you make sure you are spending enough time on your project.
  • If you are working in a new framework or language, you should work completely through the initial tutorial in the first couple of weeks of class. Your finished project must go significantly beyond what is covered in the tutorial.
  • Typically projects will have 3-4 major features that make up the minimum viable product, and another 3-4 major features for version 1.0. Each feature should require 1-2 weeks of effort to implement.
  • Your advisor and course instructors can help you determine if your proposed project has appropriate scope, or if it needs modification. You should consult with them early on in the process, and continually update them on your progress, especially if your planned features change.

Next Steps

At this point, you should be well into development on your project. The next page discusses the weekly work to be performed as part of this project.

Weekly Work

Every two weeks throughout the semester, you are expected to do the following:

  • Meet with your project advisor, either in person or via Zoom, to provide them with a clear update on your project.
    • Ideally, you should be showing them code or working prototypes, not just a quick verbal update. They are here to provide help but need to know exactly what is going on in your project.
    • Discuss issues, questions, and next steps with your advisor during the meeting.
  • Record the time worked on the project and tasks completed in the Capstone Platform. You should record your time at least weekly, but we encourage you to record time on a daily basis.
  • Update the task board for your project in GitHub.
  • Commit your current code to the GitHub repository for your project. You may also use a secondary repository if you would like, but your code must be accessible in the GitHub repository unless other arrangements have been made (i.e. you are working on a project for a company and storing the code in their systems).
  • Fill out the biweekly sprint update before the due date.

Generative Artificial Intelligence Policy

Details
RED: GenAI Prohibited You may not use GenAI to meet with your project advisor (obviously), record your time worked on the project, update your task board, or complete the biweekly sprint update. This is work that you are expected to do to help keep track of your progress on the project.
  • Policy Violations: Violations may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

Presentation 1

During the first half of the semester, each student will be scheduled to give a Overview & Requirements Presentation related to the project.

Presentation Outline

The presentation should be roughly 8 minutes in length, and cover the following topics:

  • A brief overview of the project.
  • NEW A small set (2-3) of top level use cases for the project.
    • These use cases should clearly lead to the requirements in the next bullet point.
    • These use cases will inform the testing plan in the next presentation.
  • A discussion of the requirements for each phase of the project.
    • These requirements will inform the overall design of the project in the next presentation.
  • NEW A discussion of your intended use of GenAI for this project.
  • A proposed timeline for project completion.

The first four items roughly correspond to the two initial artifacts discussed on the previous page. The timeline should give rough estimates on when each feature or group of features should be completed.

Additional Content to Include

In addition to the basic outline listed above, here is a list of some other topics you may wish to cover in your presentation, especially if it is relevant to your project:

  • Where the project idea came from.
  • Any existing prior work or inspiration.
  • What problem this project is trying to solve.
  • Tools, Languages, Frameworks, or APIs to be used.
  • Initial Design Diagrams (UML, ER, API, etc.)
  • Initial UI mockups or Website Layout

Generative Artificial Intelligence Policy

Details
YELLOW: Limited GenAI Usage Allowed For your presentations, you may make limited use of GenAI tools to help with slide design and graphics. These tools may also be helpful to create initial design diagrams and UI mockups, but you must review them for accuracy! Your in-class presentation must be your own work in your own words.
  • Citations Required: Any usage of GenAI must be noted and cited directly in the work.
  • No Direct AI Results: For this assignment, you may not include the GenAI results directly in your submission, with the exception of slide design, graphics or layouts.
  • Understand Your Work: You may be asked to explain your work in detail as part of this project. Failure to do so may be considered a violation of this policy.
  • Policy Violations: Violations may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

Sample Presentations

You can find several previous presentations under the Files section on Canvas. Bear in mind that these may or may not be example of good presentations, they are simply ones that have been collected for sharing.

Presentation Tips

In Fall 2022, we recorded a video containing some great tips to improve your presentations. Check it out!

Presentation 2

During the second half of the semester, each student will be scheduled to give a Design Presentation related to the project.

Presentation Outline

The presentation should be roughly 8 minutes in length, and cover the following topics:

  • The chosen design for the project.
    • The chosen design should clearly reflect the overall requirements listed in the previous presentation.
  • A deep overview of design diagrams relevant to the project:
    • UML Diagrams (Class Diagrams, Sequence Diagrams, etc.)
    • Database Entity Relationship Diagrams
    • API Documentation Diagrams
    • UI Mockups & Diagrams
    • Sitemaps for Websites
  • A discussion of how the project will be tested
    • NEW These tests should clearly align with the use cases listed in the first presentation.
Presentation Diagrams

While the focus of this presentation is the design of your project, you don’t need to include an excruciating level of detail in your design diagrams. This makes them very difficult to see and understand in your presentation, and represents a large amount of unnecessary effort on your part. Some suggestions:

  • For UML class diagrams, focus on the overall structure of your application and the relationships between classes, and not on exhaustively listing all attributes and methods in each class. It should be very clear if your application is constructed following a particular design pattern, such as MVC. If your diagram includes many classes, you may wish to start by showing the overall picture and then zooming in on particular areas on later slides to give more detail.
  • For database entity relationship Diagrams, similar to UML class diagrams, focus on the overall structure and relationships between tables, and not exhaustively listing all attributes for each table. You may choose to show a few attributes for each table, or include simplified table names in your diagram to make it clear what each table contains. It should be easy to find the 1 to 1, 1 to many, and many to many relationships in your application.
  • For API documentation diagrams, it may be easier to simply list a few API endpoints and briefly describe what that endpoint does or returns. You don’t need to include a list of all possible options or ways to use each endpoint.
  • For UML sequence diagrams, we recommend only including them if you have an interesting sequence to show - don’t include one just to have one. In most cases, you don’t need to show things that are generally understood, such as the process of saving a file to a disk or making a request in a web application. Interesting sequences might include the steps taken during program startup to initialize data, a complex authentication process for a web application, or the the process that happens when a special event is triggered in a video game.

Additional Content to Include

In addition to the basic outline listed above, here is a list of some other topics you may wish to cover in your presentation, especially if it is relevant to your project:

  • The current status of the project
  • A brief initial demo of the project

Generative Artificial Intelligence Policy

Details
YELLOW: Limited GenAI Usage Allowed For your presentations, you may make limited use of GenAI tools to help with slide design and graphics. You may use GenAI tools to produce your design diagrams, but you are responsible for reviewing them for accuracy (they may be separately reviewed by your advisor or instructors for accuracy)! Your in-class presentation must be your own work in your own words.
  • Citations Required: Any usage of GenAI must be noted and cited directly in the work.
  • No Direct AI Results: For this assignment, you may not include the GenAI results directly in your submission, with the exception of slide design, graphics or layouts.
  • Understand Your Work: You may be asked to explain your work in detail as part of this project. Failure to do so may be considered a violation of this policy.
  • Policy Violations: Violations may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

Sample Presentations

You can find several previous presentations under the Files section on Canvas. Bear in mind that these may or may not be example of good presentations, they are simply ones that have been collected for sharing.

Presentation Tips

In Fall 2022, we recorded a video containing some great tips to improve your presentations. Check it out!

Final Presentation

At the end of the semester, each student will give a public Final Presentation that presents all aspects of the completed project.

Overview

The presentation should be roughly 30-45 minutes in length, and cover all aspects of the project. A recommended outline is below:

  • Introduction
  • Background & Related Work
  • Project Requirements
  • Design Documents
  • Project Implementation (Languages, Frameworks, Code Structure)
  • GenAI Usage (if applicable)
  • Testing & Evaluation
  • Packaging & Deployment (if applicable)
  • Live Demo
  • Future Work
  • Conclusion
  • Q&A

Scheduling

Final presentations are typically scheduled during the last week of the semester (sometimes referred to as “dead week”) or finals week. You should schedule your presentation in consultation with your advisor, since they are required to attend and grade your project.

There are two options for presenting your project:

  • In Person: - you’ll need to work with the Computer Science office to reserve a conference room for your presentation.
  • Virtual: - you’ll schedule a time using Zoom for your presentation.

You should schedule the session to last for an hour to include time for setup and Q&A at the end.

Advertising

Once you’ve scheduled a time and location for your presentation, you’ll need to create two advertising artifacts to promote your presentation:

  • A single paragraph abstract describing the project
  • A single image (1920 by 1080 pixels) promoting your presentation

Both artifacts should clearly include your name; the title of your project; and the date, time and location of your presentation. These artifacts are due at least one week before your presentation, and no later than two weeks before the end of finals week.

Generative Artificial Intelligence Policy

Details
YELLOW: Limited GenAI Usage Allowed For your presentations, you may make limited use of GenAI tools to help with slide design and graphics. You may use GenAI tools to produce your design diagrams, but you are responsible for reviewing them for accuracy (they may be separately reviewed by your advisor or instructors for accuracy)! Your in-class presentation must be your own work in your own words. You may use GenAI to create graphics used in your advertisement image.
  • Citations Required: Any usage of GenAI must be noted and cited directly in the work.
  • No Direct AI Results: For this assignment, you may not include the GenAI results directly in your submission, with the exception of slide design, graphics or layouts.
  • Understand Your Work: You may be asked to explain your work in detail as part of this project. Failure to do so may be considered a violation of this policy.
  • Policy Violations: Violations may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

Sample Presentations

You can find several previous presentations and completed projects under the Files section on Canvas. Bear in mind that these may or may not be example of good presentations, they are simply ones that have been collected for sharing.

Final Artifacts

At the end of the semester, you’ll need to submit all of your project artifacts and information for grading. Here is a helpful checklist of everything that should be submitted:

  1. Initial Writeup & Feature List (collected via Canvas early in the semester)
  2. First Presentation (collected via Canvas when it was presented)
  3. Second Presentation (collected via Canvas when it was presented)
  4. Advertisement Materials (collected via Canvas before final presentation)
  5. All Code & Related Resources Pushed to GitHub Repository
    1. Repository should include a README.md that briefly describes how to compile/run/use the project.
    2. Repository should also include final presentation materials (slides, etc.)
  6. Completed Time Log (collected via Canvas at the end of the semester)
  7. Completed Release Information (collected via Canvas at the end of the semester)

Your advisor will also submit feedback on your final project presentation and artifacts. The course instructors will reach out to advisors to collect this information, so students don’t have to do anything for this step.

Research Project

This course includes a special project track for projects that are considered more “research” than purely software development. Some examples:

  • Exploring how to use artificial intelligence to play a simulated game or recognize images
  • Developing a software tool to interface with lab equipment that requires a large amount of trial and error
  • Writing a tool that uses data science techniques to analyze data and answer a question or hypothesis
  • Developing a new educational software tool, where the major focus of the project is collecting user feedback and analyzing results to continuously improve the software.

To be truly considered research, your project generally must conform to these requirements:

  1. Your project should have a significant experimental component, including a clear hypothesis or research questions to be answered.
  2. Your project, when complete, should lead to a written research paper or poster presentation that could be submitted to relevant conferences or journals.
  3. You are working closely with a researcher or research group on this project.
  4. You are eligible to (and should) enroll in CIS 497 - Undergraduate Research for 0 credit hours. (You cannot earn additional credit hours for a CIS 598 project)

If you feel that your project fits these requirements, you may choose to follow the project guideline adaptations listed below instead of the usual CIS 598 guidelines. Please clearly inform the instructors of the course that you are choosing this pathway early in the semester.

Generative Artificial Intelligence Policy

Details
YELLOW: Limited GenAI Usage Allowed For research projects, especially those that are in development for publication in professional research journals or conferences, the use of GenAI may or may not be allowed depending on the project and publication venue. Consult with your project advisor about allowable use of GenAI for these projects.
  • Citations Required: Any usage of GenAI must be noted and cited directly in the work.
  • No Direct AI Results: For this assignment, you may not include the GenAI results directly in your submission, with the exception of slide design, graphics or layouts.
  • Understand Your Work: You may be asked to explain your work in detail as part of this project. Failure to do so may be considered a violation of this policy.
  • Policy Violations: Violations may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

Initial Artifacts

You are still required to submit the initial writeup and feature lists. However, your outline may be modified to the following:

  • Writeup: prepare a short, 1 page writeup that describes your project topic. It should give some basic use-cases and a rough idea of the architecture or platforms you plan on using in the project. Your writeup must include clear sections containing the following:
    • Problem/Solution A clear statement of a problem that you are trying to solve, and how your project will fill the role as a solution to that problem. There are many ways to approach this statement - consult the course instructors for assistance if you are unsure how to phrase your project in this way.
    • Algorithmic Functionality A clear statement of the intended algorithmic functionality of your project. Your project must include some algorithmic functionality beyond the basics. For example, a web application should provide more than just the basic CRUD database operations. Likewise, a video game should include some complex algorithmic component such as procedurally-generated terrain or a learning AI beyond just simple, hard-coded content.
    • Student Qualification A clear statement explaining why you are qualified to take on this project. You must describe your background and experience with the chosen project and related technologies. If you have no prior experience, consider choosing a different project.
    • Project Advisor List your project advisor. You must have permission from your advisor confirming that they will supervise your project before submitting!
  • Research Project: prepare information for your project that clearly addresses the following:
    • Background/Related Work briefly discuss any background or related work relevant to your project. Citations for this section are expected.
    • Hypothesis/Research Questions clearly state and discuss the hypothesis and research questions your project is attempting to answer.
    • Experimental Design discuss the initial experimental design for your project. You should clearly answer how your project will attempt to answer the research questions listed above.
    • Publication Pathway state your intended pathway for publication at the end of this project. You should plan on creating a research paper, journal article, and/or poster to present the findings of your research.

Presentation 1

Your first presentation should clearly describe the research project and plans. The presentation should be roughly 8 minutes in length, and cover the following topics:

  • A brief overview of the project.
  • Relevant background and related work.
  • A discussion of the research questions or hypothesis.
  • Tools, languages, frameworks, or APIs to be used.
  • A proposed publication pathway
  • A proposed timeline for project completion.

Presentation 2

Your second presentation should clearly describe the experimental design of the project and any relevant software. The presentation should be roughly 8 minutes in length, and cover the following topics:

  • The chosen experimental design for the project.
  • A plan for data collection and analysis.
  • A discussion of how the research questions or hypothesis will be answered by the analysis.
  • Relevant software design diagrams.
  • Plans for testing or validation of the results.

Final Presentation

The presentation should be roughly 30-45 minutes in length, and cover all aspects of the project. A recommended outline is below:

  • Introduction
  • Background & Related Work (including citations)
  • Hypothesis/Research Questions
  • Experimental Design
  • Software Design & Implementation (Diagrams, Languages, Frameworks, Code Structure)
  • Data Collection & Analysis
  • Results & Interpretation of Results
  • Packaging & Deployment (if applicable)
  • Live Demo (if applicable)
  • Future Work
  • Conclusion
  • Q&A

Final Artifacts

See Final Artifacts. The requirements are the same.

Publication

While actual publication of any research papers and posters is not required as part of this project, it is highly recommended that you include a plan for completing this work as part of your project. Your advisor can help with this process.

Generative AI

This course encourages the use of Generative AI (GenAI) tools such as GitHub Copilot, ChatGPT, and Claude Code when developing your project. However, the usage of these tools can greatly impact our expectations for your project. We all understand how powerful they can be, but also how they can lead to projects that are poorly understood by the developer and code that is not easily maintained. This page will attempt to clarify our approach to handling project expectations in light of GenAI.

To begin, we wish to impart a core mindset for grading projects in this course:

Core Mindset

We are grading the process, not just the product.

To aid in the discussion, we’ll loosely group projects into three categories. Those categories are not mutually exclusive, and some projects may not fit neatly in a single category. They are simply useful benchmarks to start from.

No GenAI Usage

Students may choose to build a project that does not involve any GenAI usage when it comes to developing the actual code of the project. They may still make use of GenAI to create presentation graphics, diagrams, and other artifacts for the project. The intent of a project in this category is to give the student hands-on experience with building a project’s code directly from scratch, just like it had been done for decades prior to the release of modern GenAI tools.

As such, our expectations for this type of project will reflect what we expect a single developer to be able to achieve independently. Thankfully, most faculty and advisors are very familiar with these types of projects, and have a solid idea of what a reasonable scope and scale for such as project is.

Students who choose this type of project should be prepared to discuss their code in-depth and explain their thought processes, debugging strategy, lessons learned, and overall development process that is reflective of a project that does not use GenAI tools.

Violations: Students who declare that their projects do not make use of GenAI will be held to that requirement. Any violation of this policy may be treated as a violation of the K-State Honor Pledge and may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

In other words…

Basically, don’t tell us that you are not using GenAI just to reduce the expectations, then vibe code your project over a weekend. We absolutely understand how this could be exploited, and will be watching out for it.

Assistive GenAI Usage

Students may choose to build a project with the use of assistive GenAI tools such as GitHub Copilot’s autocomplete feature, or by using standalone chats with tools such as Claude and ChatGPT. More advanced tools such as Claude Code or full agentic use of GitHub Copilot is not included in this category.

Our expectations for this type of project are somewhat higher than a project that does not use GenAI at all. We expect that students may spend less time writing actual code and debugging, and more time developing the overall structure of the application and the user-facing features. Therefore, we hope to see a project that is more feature-complete and has more features overall than a project without GenAI usage.

Students who choose this project should still be prepared to discuss their code and structure in-depth, but should also discuss how they were able to make use of GenAI to assist in answering questions, writing code, and solving problems throughout the project. This discussion should be reflective of a student who used GenAI in an assistive capacity, but did not make use of any agentic features.

Violations: Students who declare that their projects do not make use of agentic GenAI will be held to that requirement. Any violation of this policy may be treated as a violation of the K-State Honor Pledge and may result in a grade of 0 for the assignment and other sanctions approved through the K-State Honor Council.

In other words…

Similar to the first category, don’t tell us that you only use GenAI a little, then spin up multiple agents to actually work through your project features. If your project has a .claude folder or any other markdown files directing the AI outside of it just following along with your coding, it probably doesn’t belong in this category.

We still expect you to be actively writing code and piecing the project together, though GitHub Copilot may be able to finish lines of code or short methods based on your typing without additional direction.

Agentic GenAI Usage

Students may also choose to make full use of an agentic GenAI tool such as Claude Code to develop their project. This category is meant to be reflective of what students may actually experience in industry, but also comes with significantly higher expectations and requirements. Agentic GenAI tools are very powerful and can lead to an extraordinary project, but may also cause developers to lose sight of the structure and contents of their code, making it much more difficult to debug and explain.

Our expectations for this type of project are therefore very high - we expect the project to have a number of features that are complete, tested, and usable. Other items such as security, accessibility, and documentation may also be expected (many of those items are a simple command or skill that can be invoked).

Students using agentic GenAI should be prepared to describe their full setup, including key files such as CLAUDE.md, skills, plugins, and models used. This process involves many design decisions that should be considered with the same amount of care as any design decisions made in the code itself. In addition, we encourage students to have their agents create and update development plans that are stored in the repository alongside the code (most agents can be configured to store these plans). This helps make the process and context visible to the instructor and advisor.

That said, we still expect students to have a solid understanding of the structure and functionality of their projects, including the ability to step through the structure of the code and design documents.

Students who declare that they plan to use agentic GenAI may not be at risk of violating the K-State Honor Pledge, but instead assume the risk that the expectations for their project will be reflective of what we expect a student to accomplish with that level of assistance. If a project does not meet those expectations due to poor or lacking usage of GenAI, that will be reflected in the student’s overall grade on the project.

In other words…

Basically, if you declare you plan to use agentic GenAI in your project, we expect you to make full use of those tools to develop an amazing project. You should still be spending the same amount of time actively working on your project as other students, not just writing a prompt and then waiting for the AI tool to complete.

If your project does not meet our high expectations in this category, your grade may be impacted accordingly.

Graduation

This course is often one of the last courses taken by students in our department, so it is a natural place to share some information regarding graduation and ensure that everyone is on track for a successful end to their degree program.

Graduation Checklist

There are a few steps that you should complete before graduation. Refer to these pages for the latest information:

Before Final Semester

  • - Request a Grad Check. This ensures that you are on track to complete all of your required courses and that there aren’t any missing items or issues on your DARS report that need to be resolved. If you are taking this course and haven’t had a grad check yet, schedule one ASAP!

Final Semester

  • - Apply for Graduation via KSIS. This should be done very early your last semester - now is a great time!
  • - Review your DARS Report for any issues that weren’t resolved during your grad check. Everything should show as completed or in progress.
  • - Check your Diploma Name and Mailing Address in KSIS. Remember, diplomas are not mailed until 4-6 weeks after graduation, so you may have already moved!
  • - Review Holds and To Do Items in KSIS. Make sure you don’t have any unpaid balances or fees - even a simple library fine can delay processing of your diploma!
  • - Visit the Career Center - you still have full access to the K-State Career center until you graduate, so now is a great time to get a professional photo, cover letter, resume, and LinkedIn profile put together. Even if you have a job offer already, these items are always handy to have available in case things change down the road.
  • - Fill out the Career Center Future Plans Survey - this is how K-State gets all of that useful information about our graduates, including which companies hire them and what their salary is. Help us make sure this data is complete and accurate!
  • - Order Regalia - if you plan on attending the graduation ceremony, make sure you order the appropriate academic apparel. Friendly advice - order a second tassel so you have one for a keepsake in case you lose yours at the ceremony!

After you Graduate

  • - Order a Transcript via KSIS. You can receive an official transcript for free as a recent graduate, usually within a month after the graduation ceremony. Keep a copy somewhere you’ll remember - it is super handy down the road when you decide to go to graduate school or apply for certain jobs.