Projects #
A project is a temporary endeavor undertaken to create a unique product, service, or result. Key characteristics:
- Clear objectives
- Defined scope
- Collaboration
- Time-bound
Most of the work in IT is done in the context of projects. Examples of successful projects:
- Open-source contributions (e.g., Linux, Python).
- Game development (e.g., Minecraft started as a side project).
GIT #
- Version control system for tracking changes in source code.
- Collaboration tool for developers working on the same project.
Core Concepts of Git:
- Repository (Repo): A folder Git tracks.
- Commit: A snapshot of changes.
- Branch: A parallel version of your project.
- Merge: Combining branches.
Git is a distributed system therefore there is a server hosting the repository. From there you clone it to your computer and work in it. Changes are pushed to the remote repo.
To start a git repo first create an account on github, where your remote repo will be hosted. Add an ssh key so you can authenticate seamlessly for working with git. Then create a repo and clone it:
git clone git@github.com:uzak/csX114.git
git status
git add <file>
git commit -m "Initial commit"
git branch <branch-name>
git checkout <branch-name>
git checkout main
git merge <branch-name>
git push -u origin main
Q&A #
Team Project #
- Think of a project you’d like to accomplish. You’ll have 2 weeks time. You can use classes and office hour for consulting. If you don’t have an idea, you’ll be creating the hangman game.
- There are 3 members in the team.
- Create a name for your team.
- You must be able to explain your code. Inability to explain how your code works during project presentation will result in 0 points on the project.
- There will be a final 5 minute presentation, where you’ll present your team and explain what went well, what not so well, what have you learned and showcase the final solution. Presentations will be held on April 2nd.
Hangman #
1. Functional Requirements #
- The game selects a random word from a predefined list.
- The player has a limited number of incorrect guesses - lives (typically 6–8).
- The word is displayed as underscores
_ _ _ _
(one for each letter). - The player guesses one letter at a time.
- If the guessed letter is in the word, all occurrences are revealed.
- If the guessed letter is incorrect, a body part is added to the hangman drawing or the number of lives is decreased.
- The game ends when:
- The player guesses the entire word correctly (Win).
- The player runs out of guesses - lives (Loss).
- The final result (Win/Loss) is displayed along with the correct word.
2. Non-Functional Requirements #
- The game should be played in a terminal or command-line interface.
- The game should be interactive and responsive.
- The program should handle invalid inputs (e.g., numbers, symbols, repeated letters).
- The code should be modular and well-structured.
3. Optional Enhancements #
- ASCII art representation of the hangman stages.
- A word list loaded from an external file.
- Difficulty levels (Easy, Medium, Hard).
- GUI-based version using Tkinter or Pygame.