Skip to content

Commit

Permalink
update_readme
Browse files Browse the repository at this point in the history
  • Loading branch information
ozgurozbekuk committed Jan 15, 2025
1 parent c62518f commit d97c198
Show file tree
Hide file tree
Showing 29 changed files with 1,154 additions and 31 deletions.
8 changes: 4 additions & 4 deletions collaboration/communication.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ How often we will get in touch on each channel, and what we will discuss there:
| Clement| 6-8 PM | 6-8 PM | 6-8 PM | 6-8 PM | 6-8 PM | 6-8 PM | 6-8 PM |
| Fahed | 6-8 PM | 7-9 PM | 6-8 PM | 5-7 PM | 8-9 PM | 8-9 PM | 6-8 PM |
| Faisal | $TIME$ | $TIME$ | $TIME$ | $TIME$ | $TIME$ | $TIME$ | $TIME$ |
| Majd |6-8 PM | 6-8 PM | 5-6 PM | 4-7 PM | 4-7 PM | 4-7 PM | 7-9 PM |
| Majd | 6-8 PM | 5-6 PM | 7-9 PM | 5-7 PM |7-9 PM | 6-8 PM | 6-8 PM |
| Mohamed| 6-9 PM | 6-9 PM | 6-9 PM | 6-10 PM | 2-9 PM | 6-9 PM | 6-9 PM |
| Obey | $TIME$ | $TIME$ | $TIME$ | $TIME$ | $TIME$ | $TIME$ | $TIME$ |
| Obey | 6-9 PM | 6-9 PM | 6-8 PM | 7-9 PM | 2-10 PM| 5-10 PM | 6-9 PM |
| Özgür | 5-7 PM | 5-7 PM | 5-7 PM | 5-7 PM | 5-7 PM | 5-7 PM | 5-7 PM |
| Razan | 7-9 PM | 9-10 PM | 7-9 PM | 7-9 PM | 7-9 PM | 7-9 PM | 7-9 PM |

Expand All @@ -41,9 +41,9 @@ How often we will get in touch on each channel, and what we will discuss there:
- Clement: 1.5 hours
- Fahed: 1 hour
- Faisal: $HOURS$
- Majd: $HOURS$
- Majd: 4 hours
- Mohamed: 2 hours
- Obey: $HOURS$
- Obey: 2 hours
- Özgür: 2 hours
- Razan: An hour

Expand Down
6 changes: 5 additions & 1 deletion collaboration/learning_goals.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,12 @@ environment that provides support and help to every member in need.

- ### **Obey**

- Fully understand python basics from Evan's guides.
- Write clear code that is easy to be understood even if it is complex.
- Master advanced coding skills and best practices.
- Collaborate effectively in diverse teams.
- Enhance problem-solving and critical thinking abilities.
- Gain hands-on experience with industry tools and technologies.
- Build a strong professional network with mentors and peers.

- ### **Razan Ibrahim**

Expand Down
155 changes: 144 additions & 11 deletions collaboration/retrospective.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,156 @@
<!-- this template is for inspiration, feel free to change it however you like! -->

# Retrospective
# Project Retrospective: The Matrix 🕶️

## Stop Doing
## Project Highlights 🌟

## Continue Doing
### 1. What Went Well during the project? ✅

## Start Doing
- **Collaboration Successes** 🤝

## Lessons Learned
The team worked cohesively, leveraging each other’s strengths to accomplish
project goals.Effective communication and collaboration ensured
tasks were completed efficiently.

______________________________________________________________________
- **Supportive Environment** 💪
A strong sense of mutual support within the team helped overcome
challenges and maintain momentum throughout the project.

## Strategy vs. Board
- **Tools and Workflows** 🛠️

### What parts of your plan went as expected?
- Despite initial learning curves, the team successfully mastered the use of
the project board to organize and manage tasks efficiently by the end of the
project.
- The team collaborated effectively on GitHub, utilizing pull requests (PRs)
for thorough code reviews and ensuring high code quality.

### What parts of your plan did not work out?
- **Regular Updates** 🔄

### Did you need to add things that weren't in your strategy?
Regular stand-ups and progress updates kept everyone aligned,
ensuring clarity on priorities and reducing misunderstandings.

### Or remove extra steps?
### 2. Achievements 🏆

**Over 300 commits were achieved in under two weeks**, showcasing the team’s
efficiency and dedication. Furthermore, **the team mastered GitHub workflows**,
such as pull requests and code reviews, while **enhancing collaboration and**
**teamwork skills** through the effective use of communication and task management
tools.

---

## Stop Doing 🚫

- Resolving merge conflicts independently without collaborating to
ensure all changes are integrated smoothly.
- Submitting code without thorough testing, which led to integration issues.
- Writing overly technical descriptions in issue tickets, making it difficult
for non-programmers to understand.
- Spending too much time solving problems independently
instead of seeking help when needed.

---

## Continue Doing ✅

- Maintaining mutual support and collaboration.
- Documenting progress to ensure transparency and alignment within the team.
- Regularly using GitHub to track progress and organize tasks,
leveraging branches and pull requests for better organization.
- Using majority rule through polls to resolve differences of opinion.

---

## Start Doing 🚀

- Utilize GitHub’s discussion feature more effectively in future projects.
- Systematically record key learnings in the notes document.
- Keep track of changes that impact the entire group.
- Delete obsolete branches promptly after pull request reviews.
- Establish higher standards for pull requests, testing, and communication.

---

## Challenges Encountered ⚠️

### Key Pain Points 🔑

- Communication and coordination difficulties.
- Technical issues, such as pull request problems and CI check failures.
- Challenges in maintaining consistency across the codebase.

### Specific Examples 📌

- Availability challenges: Team members were not always
available simultaneously, causing occasional delays.
- Misalignment in task requirements and expectations, leading to inefficiencies.
- Early misuse of the project board hindered task organization.
- Frustrations with resolving merge conflicts and CI failures.
- Instances of working on the wrong project or branch, resulting in delays and corrections.
- Some team members encountered communication barriers, including challenges in
conveying desired code changes effectively due to language differences.
- Connectivity issues limited access to essential online resources.

---

## Lessons Learned 🎓💡

### Insights Gained 🔍

- Developed a deeper understanding of effective code review practices.
- Enhanced proficiency in GitHub workflows and tools.
- Recognized the importance of constructive feedback and clear communication
for collaboration success.

### Specific Learnings 📚

- Improved communication skills, enabling clearer expression of ideas and insights.
- Learned to request code changes effectively and provide precise,
constructive feedback during reviews.
- Gained expertise in managing merge conflicts proactively with proper workflows.
- Emphasized the importance of regular check-ins to keep the team aligned.
- Discovered the value of teamwork, flexibility, and adaptability in overcoming challenges.

---

## Strategy and Board 📋

### What parts of your plan went as expected? ✔️

- Successfully completed the expected number of challenges.
- Effectively utilized collaboration and communication tools to share resources
and coordinate tasks efficiently.
- Used GitHub and VS Code as expected, leveraging their features like cloning
repositories, creating pull requests, labeling issues, and tracking tasks.
- Fostered a supportive team environment where members were willing to assist
and support one another.

### What parts of your plan did not work out? ❌

- Merge conflicts were not managed effectively, resulting in delays.
- Communication gaps and language barriers led to duplicated efforts and
inconsistencies during code integration.
- Inefficient use of the project board workflow during early stages hindered organization.
- Time management expectations were not fully met, with the initial voluntary
deadline being missed.
- Resolving errors and CI check failures took more time than anticipated.

---

## Actionable Items for Future Projects 📈🎯

- Develop a standardized process for pull requests and code reviews.
- Implement regular check-ins or progress-tracking meetings, ensuring
unresolved challenges are documented for follow-up.
- Foster proactive communication and hold more frequent meetings to ensure
alignment and address challenges.
- Establish detailed plans with clearly defined milestones, schedules, and
deadlines for each project phase.

---

## Collective Reflection 🤝✨

The team collaborated effectively despite facing challenges, achieving
significant progress. Moving forward, improved planning, enhanced communication
and efficient task management will ensure smoother execution and even greater success.
17 changes: 13 additions & 4 deletions notes/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@ Welcome to the **Notes** directory! 🎉
This is our little corner of the project where we share all the gems we pick up
along the way. 🧠✨

Here’s what you’ll find (and what you’re welcome to add):
Here’s what you’ll find (and what you’re welcome to add):

- 🖋️ **What We're Learning:** Got a cool trick in Git? Learned a new design
pattern? Found a clever way to squash bugs? Share it here!
pattern? Found a clever way to squash bugs? Share it here!
- 😂 **Funny Moments:** Code reviews aren’t always serious — if something made
you laugh (or cry), jot it down! Laughter is the best debugging tool.
- 📚 **Resources:** Found a great article, video, or book that helped you level
up? Share it with the team!
- ❤️ **Personal Reflections:** How’s the journey been for you? Whether it’s
growth, challenges, or proud moments, we’d love to hear about it.
growth, challenges, or proud moments, we’d love to hear about it.
- 🤝 **Collaboration Stories:** Cool ways we’ve helped each other shine or
overcame hurdles as a team.
overcame hurdles as a team.
- 🎨 **Creative Additions:** Doodles, memes, or anything that adds color to our
shared experience!

Expand All @@ -25,3 +25,12 @@ your learning, share your quirks, or just have fun. Let’s make this a treasure
trove of memories and insights! 🚀

Happy noting, team! 📝🌟

---

_**Razan Ibrahim**_
I primarily utilized the CS sessions from the MIT Emerging Talent Program,
Cohort 6 📚✨, along with
a [short playlist](https://drive.google.com/drive/folders/1LiY4mKB1Vv4FRcS3J2ROHuHgqan1CWd4)
created by our teammate Clement 🎥🙌. Additionally, I sought help and support
from the team 🤝💡 to effectively tackle this project.
16 changes: 15 additions & 1 deletion solutions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,29 @@ while corresponding test files are maintained in the `tests` folder.
| `calculate_average.py`| Calculates the average of a list of numbers | Clement |
| `spiral_traverse.py` | Traverses a 2D matrix in spiral order | Fahed |
| `euler_totient.py` | Computes Euler's totient function (ϕ(n))| Fahed |
| `is_prime.py` | determine whether a given number is prime. | Fahed|
| `gcd.py` | A function to calculate the greatest common divisor (GCD)| Fahed|
| `kronecker_product.py` | Computes the Kronecker ⊗ product of 2 matrices | Fahed|
| `fibonacci.py` | Generates Fibonacci sequences up to n terms | Fahed |
| `direction_to_degree.py` | Convert a cardinal direction to degree | Obay |
| `check_odd_or_even.py` | Checks if a number is odd or even | Clement |
| `grading_system.py`| Assigning letter grade to a numeric score. | Razan |
| `kronecker_product.py` | Computes the Kronecker ⊗ product of 2 matrices | Fahed|
| `feet_to_meters.py` | Converting feet to meters| Obay |
| `area_circle.py`| Calculates the area of the circle | Majd |
| `multiplication.py`| Calculate the multiple of two numbers | Majd|
| `square.py`| Find the number power of two | Majd |
| `volts_to_amperes.py` | Converting volts to amperes| Obay |
| `miles_to_kilometers.py` | Converting miles to kilometers| Obay |
| `greatest_number.py` | Finding greatest number in a list| Razan |
| `common_elements.py` | finding common elements in two lists | Mohamed|
| `simple_calculator.py` | performs simple operations on two integers | Mohamed|
| `reverse_string.py` | reverses contents of an input string | Mohamed|
| `check_prime_number.py` | Given a positive int if it is a prime number| Özgür |
| `password_strength.py` | Checks the strength of a password| Anas |
| `decimal_to_binary.py` | Converts decimal to its equivalent binary| Anas |
| `count_character.py`| counts occurrences of a character in a string| Mohamed|
| `is_positive.py` | Determines if a given number is positive | Faisal |
| `is_palindrome.py` | Checks string palindrome properties | Faisal |
| `longest_word.py` | Returns the longest word in that sentence| Özgür |

---
Expand Down
35 changes: 35 additions & 0 deletions solutions/area_circle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
"""
Group: ET6-foundations-group-16
Author:Majd Abualsoud
Date: January 11, 2025
This module provides a function to calculate the area of a circle given its radius.
"""

import math


def area_of_circle(radius: float) -> float:
"""
Calculate the area of a circle given its radius.
Args:
radius (float): The radius of the circle. Must be a non-negative number.
Returns:
float: The area of the circle.
Raises:
ValueError: If the radius is negative.
Examples:
>>> area_of_circle(1)
3.141592653589793
>>> area_of_circle(0)
0.0
>>> area_of_circle(2.5)
19.634954084936208
"""
if radius < 0:
raise ValueError("The radius must be a non-negative number.")

return math.pi * radius * radius
59 changes: 59 additions & 0 deletions solutions/common_elements.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
A module for finding the common elements between two input lists.
Created on 11/1/2025
@author: Mohamed Altayeb
Group: ET foundations group 16 (Matrix)
Module functions:
- common_elements: finds the common elements between two lists.
"""


def common_elements(list1: list, list2: list) -> list:
"""
Compares two input lists and returns a list that contains
all the common elements between the two input lists without repeating
the common elements if they are duplicated in the input lists:
Arguments:
list1 (list): the first list we want to compare.
list2 (list): the second list we want to compare.
Returns-> list: A list containing all common elements between two input lists,
the returned list will have the common elements of the first input list
followed by the common elements of the second input list.
Raises:
AssertionError: if inputs are not lists.
>>> common_elements([1,2,3,4,5,6] , [4,5,6,7])
[4, 5, 6]
>>> common_elements(["c", "a", "r"] , ["c", "a", "t"])
['c', 'a']
>>> common_elements([[1,2] , [2,3,4], ["mohamed"]] , [["mohamed"], [1,2,3], [2,3,4], [4,5,6]])
[[2, 3, 4], ['mohamed']]
"""
# Ensure both inputs are lists
if not isinstance(list1, list) or not isinstance(list2, list):
raise AssertionError("Both inputs must be lists")

common_list_no_duplicates = []

# Iterate through elements of the first list
for element1 in list1:
# Iterate through elements of second list comparing
# each element in the second list to the element in the first list
for element2 in list2:
if element1 == element2 and element1 not in common_list_no_duplicates:
# Add the element to the resultant list
common_list_no_duplicates.append(element1)

# Return the resultant list with common elements with no duplicated elements
return common_list_no_duplicates
Loading

0 comments on commit d97c198

Please sign in to comment.