UP | HOME

Personal Project
COP-3223H

Table of Contents

1. Overview

In this assignment, you will propose, design, and implement your own terminal game or other terminal application from scratch, using the C constructs shown in class.

2. Repository setup

Log into eustis:

ssh NID@eustis.eecs.ucf.edu

Go to your local repository: Be sure you have already completed the git exercise before attempting this project.

cd ~/cop3223spring26/assignments

Create and enter a directory for the project:

mkdir project
cd project

You only need to mkdir once to create the directory.

Make sure you are in the right directory

pwd

You should see

/home/net/NID/cop3223spring26/assignments/project

2.1. Program name

The program must be called project.c and must be in the project directory, i.e., the full path should be

~/cop3223spring26/assignments/project/project.c

Compile and run the program whenever you make changes using

cd ~/cop3223spring26/assignments/project/
gcc -o project project.c
./project

3. Proposal

Write up your proposed game (or application). It must be implemented in C (using only the constructs shown in class unless explicitly excepted). It should be only a terminal application, using the I/O shown in class (stdio.h, ANSI character codes, etc.). You have about one month to complete the project, so it should be sufficiently challenging, at least equivalent to about three or four of of the programming assignment given in class. Describe in detail the following aspects of your project. The description should be written entirely on your own. It may be inspired by existing games or applications. The implementation should be entirely on your own. The proposal should be substantively differ from other students in the class; this will be facilitated by the instructor with feedback to the proposal.

  • Type of game/application
  • Detailed description of the game/application idea
  • Example screens (use the preformatted text option in webcourses)
  • Inputs
  • Output
  • Characters or actors (including the user), if applicable
  • Movement
  • States
  • Win conditions (for games)
  • Lose conditions (for games)

The instructor will provide feedback and suggested changes. Don't be afraid to make an ambitious project, even if it may be difficult to finish during the semester; the instructor will take the scale of the project into account when evaluating the completeness of the implementation.

4. Check-in

You must come to office hours or schedule a time to demonstrate your current progress, show that you are on the way to achieving the project, etc. This is about half-way through the project assignment period. The check-in meeting is required by the date listed on the syllabus.

You must show progress and commit your code to the assignments repository before coming to the check-in meeting.

5. Implementation

Implement the proposed project, including any revisions or suggestions made by the instructor after the proposal is submitted. Implement the project entirely on your own, using no assistant from users, AI agents, etc (see the course policies).

6. Submitting your program via git

This assumes you have already setup your repository and that you are still in your hello directory in your repository.

6.1. Add and commit the file(s)

Enter

git add project.c
git commit project.c

Add and commit any other files needed to build and run your application (including term.c if used). You will need to submit your latest version before the check-in.

Write appropriate commit messages. Remember that you will need to save (Ctrl-x Ctrl-s) then quit (Ctrl-x Ctrl-c) the emacs editor that pops up. If you are having trouble, be sure that you have completed the git project first.

Do not commit the backup file project.c~ nor the project program. Use a .gitignore file to exclude those from the repository, so they won't show up when you type git status.

Then to synchronize the changes to the remote git repository on the grading server:

git push

7. Self-check

7.1. Remove the previous self-check

If you have already run the self-check, you can remove it like this

rm -rf ~/tmp/assignments_selfcheck

Double-check the path carefully to avoid deleting the wrong directory.

7.2. Make a fresh clone of your project

git clone gitolite3@eustis3.eecs.ucf.edu:cop3223/$USER/assignments ~/tmp/assignments_selfcheck

You should see something like

Cloning into '/home/net/NID/tmp/assignments_selfcheck'...

Welcome to eustis.eecs.ucf.edu.

Please use your NID and NID password to log in.

See http://t.cs.ucf.edu/help/eustis  for additional instructions.

remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 16 (delta 1), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (16/16), done.
Resolving deltas: 100% (1/1), done.

If you see

fatal: destination path '/home/net/NID/tmp/assignments_selfcheck already exists and is not an empty directory.

then remove the previous self-check.

7.3. Enter the fresh clone's directory

cd ~/tmp/assignments_selfcheck/project

7.4. Make sure project runs correctly

cd project
gcc -o project project.c
./project

8. Grading schema

Criterion Points
Proposal 2
Check-in 2
Project implementation 12
TOTAL 16

Author: Paul Gazzillo

Created: 2026-03-10 Tue 17:21

Validate