Welcome to the Software Development Study Group Repository! This repository is dedicated to our collaborative learning journey as we tackle coding exercises, debug challenges, and possibly LeetCode problems together. Here, you'll find a collection of resources and solutions designed to support our learning and growth.
-
Coding Exercises:
- Solutions to our class's coding exercises and an area where we can post our code for everyone to see and help. :)
- Contributions from members with their unique approaches.
-
Debug Challenges:
- Solutions to debugging tasks and an area where we can post our code for everyone to see and help.
- Tips and tricks for efficient debugging.
-
LeetCode Challenges:
- Solutions to various LeetCode problems and other algorithm challenges and see help space.
- Strategies and explanations for different problem-solving techniques.
REMEMBER: As a separate note while working through class work or using external sources, focus on the fundamentals. Fundamentals are the backbone of everything that has ever been made in human history.
- W3Schools - Web Development tutorials and references, covering HTML, CSS, JavaScript, and various web technologies.
- TutorialsPoint - Comprehensive tutorials on various programming languages and technologies, including practical examples and references.
- FreeCodeCamp - Free coding lessons and interactive learning experiences, focusing on web development and software engineering.
- Real Python - Python tutorials and articles for all skill levels, offering in-depth explanations and practical coding examples.
- LeetCode - Practice coding challenges and prepare for technical interviews.
- GeeksForGeeks - Comprehensive tutorials on algorithms, data structures, and a variety of programming topics.
- Khan Academy's Algorithm Course - Interactive lessons on algorithms and data structures.
- Algorithms Part I from Princeton University-Free Coursera Class- - Free course covering the fundamentals of algorithms and data structures.
- Introduction to Computer Science and Programming Using Python" by MIT-Free edX Class- - Free course from MIT introducing computer science and programming using Python.
- "Introduction to Algorithms" -Free MIT Opencourseware-(6.006) - Free MIT course materials on algorithms.
- "The Algorithm Design Manual" by Steven S. Skiena - Comprehensive textbook on algorithm design, freely available online.
- HackerRank - Practice coding problems and tutorials on various algorithms and data structures.
- Python 3.12.4 Download - Download Python 3.12.4.
- Official Python 3.12.4 Documentation - Documentation for Python 3.12.4.
- The Git Repository Tool - Download Git for version control.
- Git Documentation - Comprehensive documentation for Git.
- GitHub Documentation - Documentation for GitHub.
- GitHub Desktop App - Application to manage GitHub repositories from your desktop.
- GitHub Desktop Documentation - Official documentation for GitHub Desktop.
- Discord Server @ Summer-SDEV120-IvyTech-server - Link to the Discord server for our study group.
- Python Reddit - Subreddit for Python discussions, news, and questions.
- StackOverflow - Q&A community for programming questions.
- MinGW "Minimalist GNU For Windows - Minimalist GNU for Windows, a development environment for native Microsoft Windows applications.
- OpenJDK Download - Free and open-source implementation of the Java Platform, Standard Edition.
- OracleJDK21 Download - THE COMMUNITY VERSION IS FREE: If you want to play with Java use the community version. If you want to really build something without paying, I recommend the OpenJDK.
- WSL Documentation "Windows Subsystem For Linux" - Documentation for running a Linux distribution alongside Windows.
- Rust Language - A systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.
- Rust Documentation - Official documentation and book for learning Rust.
- JavaScript - A versatile programming language commonly used in web development.
- JavaScript Documentation - Official documentation and guide for learning and using JavaScript.
- Scala Language - A hybrid functional and object-oriented programming language.
- Scala Documentation - Official documentation for learning and using Scala.
- C++ Language - A general-purpose programming language created as an extension of the C programming language.
- C++ Documentation - Official documentation and resources for learning C++.
- Docker - Platform for developing, shipping, and running applications using containerization.
- Docker Documentation - Official documentation for learning and using Docker.
- Anaconda - Distribution of Python and R for scientific computing and data science.
- Anaconda Documentation - Official documentation for learning and using Anaconda.
- Conda - Package, dependency, and environment management for any language.
- Jupyter Notebook - Open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
- Jupyter Documentation - Official documentation for learning and using Jupyter Notebooks.
This repository serves as a central hub for our study group's resources and code. Members are encouraged to:
- Upload their own solutions: Share your code for exercises and challenges to receive feedback and help others learn from your approach.
- Seek assistance: If you're stuck on a problem, upload your code, and we can work through the issues together.
- Review and collaborate: Provide constructive feedback on your peers' submissions, suggest improvements, and discuss alternative solutions.
Our study group meets weekly via Google Meet to discuss our progress, address any challenges, and share insights. This repository will serve as a supplement to our meetings.
To start using Git with the GitHub platform, you need to have Git installed on your machine. Follow the instructions below for your operating system:
-
Windows:
-
Download Git for Windows from the official site: Git for Windows.
-
Run the installer and follow the setup instructions.
-
Confirm the installation by opening Command Prompt and typing into command prompt:
git --version
-
-
macOS:
-
Open the Terminal.
-
Install Git using Homebrew (if you don't have Homebrew installed, follow the instructions at brew.sh):
brew install git -
Confirm the installation by typing in the Terminal:
git --version
-
-
Linux:
-
Open your Terminal.
-
Install Git using the package manager for your distribution, if you are using Linux I assume you know what package manager you're using. For example, on Ubuntu:
sudo apt update sudo apt install git -
Confirm the installation by typing in the Terminal:
git --version
-
Once Git is installed, clone the repository to your machine:
- Open your terminal (Command Prompt, Git Bash, or Terminal).
- Run the following command:
git clone https://github.com/Cedric-Lard/studygroup.git
Explore the repository’s folders to find:
- CodingExercises: Solutions to class exercises.
- DebuggingChallenges: Solutions and discussions on debugging.
- LeetCodeProblems: Solutions to LeetCode challenges.
- Resources: Useful links to tutorials, documentation, and tools.
-
Upload Your Solutions: If you have solutions to share, upload your files to the respective folders.
-
Discuss Issues: Use GitHub Issues to ask questions or discuss problems encountered. You can also post in the discord.
-
Review and Comment: Review others’ solutions and provide constructive feedback.
-
To stage changes for a commit in Git, you use
git add -Acommand. This will add all the files you modified to Git WARNING: ONLY CHANGE THINGS IN YOUR SPECIFIC FOLDER! If you write a file in someone else's folder PUT YOUR NAME ON IT. If your modifying someone else's file ASK FIRST! Or make your own copy somewhere else on your computer. DO NOT COMMIT AND PUSH CHANGES TO SOMEONE ELSE'S FILE TO THIS REPOSITORY.git add -A -
Next commit the changes in Git using the `git commit -m "" command Replace "" with a brief description of what files you have added.
git commit -m "Added files to debugging_exercises" -
Finally, type the command:
git push origin -
If you want an update to date version of the repository run:
git pull originAnd then watch your folders update with everything everyone pushed to github. This will add everything to this repo for everyone to see.
- Weekly Meetings: Participate in our weekly Google Meet sessions to discuss challenges and solutions.
- Use Discord: Join our Discord server for real-time discussions and updates.
Take advantage of the curated resources in the Resources folder for additional learning.
If you have any questions or need assistance with the repository, feel free to reach out to Cedric via cedriclard76@gmail.com or other members via Discord.
The repository is organized into the following main directories:
Contains additional coding exercises. I am hoping to hear your questions and post exercises that helps you guys get better.
-
Completed: Post your solutions and let's talk about it. It is important to realize that everyone thinks a bit differently and there is technically no "right" answer to coding patterns, conventions, or algorithm usage. Some things work better than others. If you develope a solution that works on your own please share it. It can help you grow to discuss what you did and how you thought of the problem and give us more perspectives.
member_name/: Subfolder for each member to keep their solutions organized.exercise_name/: Specific exercise folder containing the solution files.solution.py: The solution file.notes.md: Notes and explanations.
-
To_Review: Exercises that need review and feedback.
member_name/: Subfolder for each member.exercise_name/: Specific exercise folder containing the files needing review.attempt.py: The initial attempt at solving the exercise.notes.md: Notes and explanations.
Contains debugging challenges from our class.
-
Completed: Solutions that have been finalized.
member_name/: Subfolder for each member to keep their solutions organized.challenge_name/: Specific challenge folder containing the solution files.fixed_bug.py: The fixed bug solution file.explanation.md: Explanation of the bug and the fix.
-
Need_Help: Challenges that need assistance.
member_name/: Subfolder for each member.challenge_name/: Specific challenge folder containing the problematic files.bug_code.py: The code with the bug.error_log.txt: Error log or description of the issue.
Contains LeetCode problems.
-
Completed: Solutions that have been finalized.
member_name/: Subfolder for each member to keep their solutions organized.problem_name/: Specific problem folder containing the solution files.solution.py: The solution file.explanation.md: Explanation of the solution.
-
To_Review: Problems that need review and feedback.
member_name/: Subfolder for each member.problem_name/: Specific problem folder containing the files needing review.attempt.py: The initial attempt at solving the problem.questions.md: Questions or issues faced.
Contains markdown files with links and descriptions of useful online resources on specific topics. If there are topics missing, create a new folder make a new .md file for that folder and push it to the repo. This space is for you all to share information on areas of interest in Computer Science. What is currently here is just a template.
-
Cyber Security:: Add links to videos and reading materials on Cyber Security -
Data Science: Add links to videos and reading materials on Data Science. -
Data Structures: Add links to videos and reading materials on Data Structures. etc.
Here's an example of how the structure would look with some populated data:
study-group-repo/
├── README.md
├── Coding_Exercises/
│ ├── Completed/
│ │ └── Alice/
│ │ └── M01/
│ │ ├── solution1.py
│ │ └── notes.md
| |
│ └── To_Review/
│ └── Bob/
│ └── M01/
│ ├── attempt1.py
│ ├── notes.md
| ├── Carol_Suggestion.py
| └── Carol_notes.md
├── Debug_Challenges/
│ ├── Completed/
│ │ └── Carol/
│ │ └── M01/
│ │ ├── solution1.py
│ │ └── explanation.md
│ └── Need_Help/
│ └── Dave/
│ └── M01/
│ ├── attempt.py
│ └── error_log.txt
├── LeetCode_Challenges/
│ ├── Completed/
│ │ └── Alice/
│ │ └── TwoSum/
│ │ ├── solution.py
│ │ └── explanation.md
│ └── To_Review/
│ └── Bob/
│ └── TwoSum/
│ ├── attempt1.py
│ └── notes.md
├── Resources/
│ ├── Cyber_Security.md
| | ├── Reading
| | | └── READMELIST.md
| | └── Videos
| | └── READMELIST.md
│ ├── Data_Science.md
│ ├── Data_Structures.md
│ └── Databases.md
└── .gitignore