the-odin-project--ruby-projects

The Odin Project - Ruby Path Curriculum

Stars
0
Committers
2

The Odin Project - Ruby

Overview

This repository contains a collection of Ruby projects developed as part of The Odin Project's Ruby Curriculum. The curriculum focuses on diving deep into Ruby, covering key concepts such as object-oriented programming, data structures, algorithms, and testing. These projects serve as a hands-on approach to mastering Ruby and improving overall programming skills.

Projects in this Repository

1.Caesar Cipher

  • A simple encryption algorithm that shifts characters in a string by a specified number of positions.
  • Key Concepts: String manipulation, loops, encryption basics.

2. Substrings

  • A method to find how many times each substring appears in a given word or phrase from a provided dictionary.
  • Key Concepts: Hashes, loops, string searching.

3. Stock Picker

  • A program that determines the best days to buy and sell stocks to maximize profit.
  • Key Concepts: Array manipulation, comparison logic.

4. Bubble Sort

  • A Ruby implementation of the Bubble Sort algorithm, sorting an array by repeatedly swapping adjacent elements.
  • Key Concepts: Sorting algorithms, nested loops.

5. Tic Tac Toe

  • A command-line Tic Tac Toe game where two players can play against each other.
  • Key Concepts: Object-oriented design, game logic, user input handling.

6. Mastermind

  • A command-line version of the popular game Mastermind, where one player tries to guess the color combination set by the other player.
  • Key Concepts: Arrays, loops, conditional logic.

7. Event Manager

  • A program designed to help manage events by parsing and organizing CSV data, such as attendee details.
  • Key Concepts: File I/O, CSV parsing, data processing.

Learning Objectives

  • By completing these projects, I gained a deep understanding of key Ruby programming concepts, including:

  • Object-Oriented Programming (OOP): Understanding how to structure code into classes and objects, creating reusable and maintainable programs.

  • Data Structures: Learning how to work with arrays, hashes, and custom data structures.

  • Algorithmic Thinking: Developing problem-solving skills by implementing sorting algorithms, search methods, and game logic.

  • File I/O: Working with files and external data formats (e.g., CSV) to manage and process data efficiently.

  • Testing: Using Ruby's built-in testing libraries to write unit tests and ensure the reliability of code.