Skip to content

Commit

Permalink
Merge branch 'main' into challenge-26
Browse files Browse the repository at this point in the history
  • Loading branch information
AnaiMurillo authored Jan 12, 2025
2 parents f14c96d + 88c2b2b commit 1df3172
Show file tree
Hide file tree
Showing 30 changed files with 1,101 additions and 13 deletions.
3 changes: 3 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ about: A template PR for code review with a checklist
- [ ] The function's name describes it's behavior
- [ ] The function's name matches the file name
- [ ] The function has correct type annotations
- [ ] The function is not called in the function file

## Strategy

Expand Down Expand Up @@ -82,5 +83,7 @@ about: A template PR for code review with a checklist
- [ ] Variable names are clear and helpful
- [ ] The code follows the strategy as simply as possible
- [ ] The implementation is as simple as possible given the strategy
- [ ] There are no commented lines of code
- [ ] There are no `print` statements anywhere
- [ ] The code includes defensive assertions
- [ ] Defensive assertions include as little logic as possible
11 changes: 10 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -122,5 +122,14 @@
"source.fixAll.ruff": "explicit",
"source.organizeImports.ruff": "explicit"
}
}
},
"python.testing.unittestArgs": [
"-v",
"-s",
"./solutions",
"-p",
"*test.py"
],
"python.testing.pytestEnabled": false,
"python.testing.unittestEnabled": true
}
28 changes: 18 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,56 +23,64 @@ while maintaining a culture of accountability and care.
<tr>
<td>
<img src="https://avatars.githubusercontent.com/u/189562848?v=4"
alt="Ana Isabel Murillo" width="50">
alt="Ana Isabel Murillo" width="65">
</td>
<td>Ana Isabel Murillo</td>
<td><a href="https://github.com/AnaiMurillo">AnaiMurillo</a></td>
</tr><tr>
</tr>
<td>
<img src="https://avatars.githubusercontent.com/u/189357565?v=4"
alt="Adolfo Fumero" width="65">
</td>
<td>Adolfo Fumero</td>
<td><a href="https://github.com/ajfumero8">ajfumero8</a></td>
</tr>
<tr>
<td><img src="https://avatars.githubusercontent.com/u/174089681?v=4"
alt="Mr-Glucose" width="50"></td>
alt="Mr-Glucose" width="65"></td>
<td>Arthur Dorvil</td>
<td><a href="https://github.com/Mr-Glucose">Mr-Glucose</a></td>
</tr>
<tr>
<td><img src="https://avatars.githubusercontent.com/u/188538629?v=4"
alt="Chrismy Augustin" width="50"></td>
alt="Chrismy Augustin" width="65"></td>
<td>Chrismy Augustin</td>
<td><a href="https://github.com/likechrisss">likechrisss</a></td>
</tr>
<tr>
<td><img src="https://avatars.githubusercontent.com/u/92646899?v=4"
alt="Cliforde Exael" width="50"></td>
alt="Cliforde Exael" width="65"></td>
<td>Cliforde Exael</td>
<td><a href="https://github.com/Lastrophysicien">Lastrophysicien</a></td>
</tr>
<tr>
<td><img src="https://avatars.githubusercontent.com/u/115899276?v=4"
alt="Hector Colmenares" width="50"></td>
alt="Hector Colmenares" width="65"></td>
<td>Hector Colmenares</td>
<td><a href="https://github.com/hectordacb">hectordacb</a></td>
</tr>
<tr>
<td><img src="https://avatars.githubusercontent.com/u/189242306?v=4"
alt="Jeampierr Jiménez" width="50"></td>
alt="Jeampierr Jiménez" width="65"></td>
<td>Jeampierr Jiménez</td>
<td><a href="https://github.com/Jeampierr1102">Jeampierr1102</a></td>
</tr>
<td>
<img src="https://avatars.githubusercontent.com/u/189233851?v=4"
alt="Pierre Kenley MERVIL" width="50">
alt="Pierre Kenley MERVIL" width="65">
</td>
<td>Pierre Kenley MERVIL</td>
<td><a href="https://github.com/MPKenley">MPKenley</a></td>
</tr>
<tr>
<td><img src="https://avatars.githubusercontent.com/u/86928180?v=4"
alt="Ramon Colmenares" width="50"></td>
alt="Ramon Colmenares" width="65"></td>
<td>Ramon Colmenares</td>
<td><a href="https://github.com/RamonColmenares">RamonColmenares</a></td>
</tr>
<tr>
<td><img src="https://avatars.githubusercontent.com/u/189634607?v=4"
alt="Semira Tesfai" width="50"></td>
alt="Semira Tesfai" width="65"></td>
<td>Semira Tesfai</td>
<td><a href="https://github.com/SEMIRATESFAI">SEMIRATESFAI</a></td>
</tr>
Expand Down
156 changes: 154 additions & 2 deletions collaboration/learning_goals.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,157 @@
# Learning Goals

## Collective
## Collectives

## Individual
1. **Enhance Problem-Solving Skills**
**Objective:** Develop strategies to approach and solve
complex coding problems efficiently.
**Action:** Participate in coding challenges, improve algorithmic thinking,
and practice solving problems in various programming languages.

2. **Master Version Control Systems (Git)**
**Objective:** Gain proficiency in version control systems,
specifically Git, for managing collaborative code.
**Action:** Learn advanced Git commands, work with branches, and contribute
to open-source projects or group collaborations using GitHub.

3. **Strengthen Data Structures and Algorithms Knowledge**
**Objective:** Deepen understanding of essential data structures and
algorithms to optimize code performance.
**Action:** Study common algorithms (searching, sorting, dynamic programming)
and data
structures (trees, graphs, heaps, etc.), and apply them to solve coding problems.

4. **Develop Testing and Debugging Skills**
**Objective:** Understand and practice writing unit tests and debugging
code to ensure high-quality, bug-free applications.
**Action:** Use testing frameworks such as pytest and unittest,
and integrate continuous integration tools to automate testing.

5. **Improve Collaboration and Communication Skills**
**Objective:** Work effectively in teams by improving communication
and collaborative coding skills.
**Action:** Engage in group projects, participate in code reviews, and focus on
improving your ability to explain technical concepts clearly.

6. **Set Personal Learning Goals and Track Progress**
**Objective:** Set personal learning goals and track your progress.
**Action:** Identify specific areas for improvement, create a
learning plan, and regularly review your progress.

7. **Enhance Code Quality and Maintainability**
**Objective:** Write clean, maintainable, and efficient code.
**Action:** Follow best practices for code styling and documentation. Use linters
and formatters to ensure consistent code quality. Perform regular code refactoring.

8. **Participate More in the Slack Community and Create Networking Opportunities**
**Objective:** Build a professional network in the tech community.
**Action:** Attend meetups, help coders with questions,
join online forums, and participate in tech events.
Engage with other developers and share knowledge and experiences.

## Individual Goals

### Adolfo Fumero

---

### Ana Isabel Murillo

- Gain advanced knowledge in technological skills and AI.
- Improve proficiency in data analysis, machine learning, or other tech-related fields.
- Master design thinking principles to approach challenges creatively.
- Learn cutting-edge tools and methodologies used in technology and innovation.

---

### Arthur Dorvil

- **Strengthen Technical Expertise**
Master advanced programming concepts, software development methodologies, AI,
and machine learning to build impactful projects.
- **Foster Innovation**
Develop problem-solving skills by creating sustainable and scalable solutions
that address real-world challenges, particularly in
underserved communities.
- **Enhance Leadership Skills**
Improve team management, communication, and decision-making abilities to lead
projects effectivelyand inspire others in collaborative environments.
- **Expand Global Collaboration**
Build connections with peers and professionals globally, leveraging their
expertise to tackle challenges and drive impactful initiatives.
- **Drive Social Impact with Technology**
Learn to integrate technology into community-focused projects, particularly
addressing global issues like digital literacy and technology
access in Haiti and Black communities.

---

### Chrismy

- Gain more knowledge and hands-on experience with industry-standard tools and
technologies like VS Code, Python, GitHub.
- Learn to analyze, design, and implement innovative solutions.
- Strengthen interpersonal communication, teamwork, and leadership capabilities
to excel in collaborative environments.
- Leverage opportunities to connect with peers.

---

### Cliforde Exael

- Master advanced programming concepts and technologies.
- Develop innovative problem-solving skills for real-world challenges.
- Enhance collaboration and leadership abilities in tech environments.
- Build a strong professional network and drive social impact.

---

### Hector Colmenares

- Learn data science and machine learning.
- Practice technical communication skills in English.
- Understand how to conduct a good code review.
- Connect with people and learn from them.
- Actively participate in group activities to learn from more advanced peers.

---

### Jeampierr Jiménez

---

### Pierre Kenley MERVIL

- Learn about collaboration tools.
- Master Git and GitHub, including advanced Git commands and GitHub project boards.
- Work on Python programs and collaborate with peers globally.
- Gain sufficient skills to become a data scientist.
- Develop soft skills to manage time effectively, becoming more proactive and productive.

---

### Ramon Colmenares

- Learn about Python and data science.
- Improve soft skills like leadership and communication.
- Create new connections with classmates.

---

### Semira Tesfai

- **Enhance Code Quality and Maintainability**
**Objective:** Write clean, maintainable, and efficient code.
**Action:** Follow best practices for code styling and documentation. Use linters
and formatters to ensure consistent code quality. Perform regular code refactoring.
- **Participate More in the Slack Community and Create Networking Opportunities**
**Objective:** Build a professional network in the tech community.
**Action:** Attend meetups, help coders with questions,
join online forums, and participate in tech events.
Engage with other developers and share knowledge and experiences.
- **Increase Code Vocabulary by Self-Created Library**
**Objective**: Expand my coding vocabulary and create a reusable library of
functions and modules.
**Action:** Identify commonly used functions and modules in my coding projects,
develop reusable code snippets, document my library with clear instructions and examples,
and continuously update and refine it as I learn new concepts.
51 changes: 51 additions & 0 deletions solutions/challenge_12/README.MD
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<!--
Make your issue easy to find:
- project board: place it in the TODO column of the project board
- labels: anything that will make this easier to filter
-->

<!--
<!-- **challenge** -->
<!-- markdownlint-disable MD041 -->
Objective:
Create a program that prints the numbers from 1 to 100. But for multiples of three,
print "Fizz" instead of the number, and for multiples of five, print "Buzz". For
numbers that are multiples of both three and five, print "FizzBuzz".

Another way of putting it:

# **FizzBuzz Challenge**

This is a FizzBuzz program that prints numbers from 1 to 100 with specific rules:

- For multiples of three, print "Fizz".
- For multiples of five, print "Buzz".
- For multiples of both three and five, print "FizzBuzz".
-->

<!-- **Helpful links or resources for solving this challenge** -->
For each number from 1 to 100:
If the number is divisible by both 3 and 5:
Print "FizzBuzz"
Else if the number is divisible by 3:
Print "Fizz"
Else if the number is divisible by 5:
Print "Buzz"
Else:
Print the number

Resource Guide for Solving "FizzBuzz" Challenge
Understanding Loops and Conditionals:

Python For Loops - W3Schools <https://www.w3schools.com/python/python_for_loops.asp?form=MG0AV3>

Python If...Else Statements - W3Schools <https://www.w3schools.com/python/python_conditions.asp?form=MG0AV3>

Modulo Operator:

Python Operators - W3Schools <https://www.w3schools.com/python/python_operators.asp?form=MG0AV3>

Focus on the "Arithmetic Operators" section, especially the modulo operator (%).

These articles provide a general approach to breaking down and solving the problem.
Empty file.
54 changes: 54 additions & 0 deletions solutions/challenge_12/fizzbuzz_program.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
A module for solving the FizzBuzz challenge.
Module contents:
- fizzbuzz: Generates the FizzBuzz sequence for numbers from 1 to n.
Created on 06/01/2025
Author: Hector Colmenares
"""


def fizzbuzz(n: int) -> list[str]:
"""Generates the FizzBuzz sequence from 1 to n.
Parameters:
n (int): The upper limit of the sequence (must be a positive integer).
The range includes the limit n.
Returns:
list[str]: A list of strings where:
- "Fizz" replaces multiples of 3,
- "Buzz" replaces multiples of 5,
- "FizzBuzz" replaces multiples of both,
- Otherwise, the number itself as a string.
Raises:
ValueError: If n is not a positive integer.
Examples:
>>> fizzbuzz(3)
['1', '2', 'Fizz']
>>> fizzbuzz(5)
['1', '2', 'Fizz', '4', 'Buzz']
>>> fizzbuzz(15)[-1]
'FizzBuzz'
"""
assert isinstance(n, int), "n must be an integer"
assert n > 0, "n must be a positive integer"

result = []
for i in range(1, n + 1):
if i % 3 == 0 and i % 5 == 0:
result.append("FizzBuzz")
elif i % 3 == 0:
result.append("Fizz")
elif i % 5 == 0:
result.append("Buzz")
else:
result.append(str(i))
return result
Loading

0 comments on commit 1df3172

Please sign in to comment.