diff --git a/resources/sample_md_reflections/cs203_lab02/reflection1.md b/resources/sample_md_reflections/cs203_lab02/reflection1.md new file mode 100644 index 00000000..0a89bbd1 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection1.md @@ -0,0 +1,73 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No + +## Scrum Meetings + +### Scrum Meeting One (3/18) + +- What did you since last meeting? + * Created a group, and decided on a scrum lead +- What will you do before the next meeting? + * Work on getting GatorMiner to work +- Are there any obstacles in your way? + * An error about installing dependencies + +### Scrum Meeting Two (3/19) + +- What did you since last meeting? + * Tried to get GatorMiner working on my own, reinstalled pyenv and virtualenv. +- What will you do before the next meeting? + * Definitely have GatorMiner working +- Are there any obstacles in your way? + * The current dependency issues i'm having while running the ```pyenv install --dev``` command + +### Scrum Meeting Three (3/23) + +- What did you since last meeting? + * Successfully got GatorMiner to work and tested out the different current features of the program +- What will you do before the next meeting? + * Work on the task idea(Docker image), and consult with team frequently about it. +- Are there any obstacles in your way? + * Not currently + +## At a high level, what were the most important professional tasks that you completed? + +- First task + * Communicated with my team members to try and fix the issues we were having with Gatorminer dependencies on windows machines. +- Second task + * Had a google meet with TL to resolve my machines issues. +- Third task + * Created a slack channel as well as snapchat group to frequently and effectively communicate with group. + +## At a high level, what were the most important technical tasks that you completed? + +- First task + * Successfully got GatorMiner working on my machine, by reinstalling pipenv/virtualenv, downloading C ++ tools, and changing the streamlit version in the pipfile to a working version. +- Second task + * Created an issue on the project board regarding the streamlit error I recieved, and assigned myself to start looking for a solution. As well as created a team label, and assigned our team to an issue regarding the creation of a Docker image. +- Third task + * Started reading into other Docker files from different classes and using online sources to start developing a Dockerfile and image for GatorMiner. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I would like to practice reading error codes better, so I can be self sufficient in solving my machines common and basic errors. As well as learn more about docker images to able to create one with my group. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +I think that effective communication between team members is very important, and I feel my team has been doing a very good job with this. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection10.md b/resources/sample_md_reflections/cs203_lab02/reflection10.md new file mode 100644 index 00000000..27ed8c54 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection10.md @@ -0,0 +1,110 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No, everyone had issues but helped each other out and followed the code of conduct. + +## Scrum Meetings + +### Scrum Meeting One (3/22/21) + +- What did you since last meeting? + +Work on trying to get GatorMiner working. + +- What will you do before the next meeting? + +Troubleshoot more. + +- Are there any obstacles in your way? + +Yes, gensim and pyenv. + +### Scrum Meeting Two (3/23/21) + +- What did you since last meeting? + +Struggle with the python virtual environment. + +- What will you do before the next meeting? + +Try to figure out how the pyenv works. + +- Are there any obstacles in your way? + +Pyenv and gensim not wanting to cooperate. + +### Scrum Meeting Three (3/25/21) + +- What did you since last meeting? + +Finalized the installation for GatorMiner, had a successful run. + +- What will you do before the next meeting? + +We determined our how to approach our jobs and how we were planning accomplishing our tasks. + +- Are there any obstacles in your way? + +There was a simple implementation that we tried, but it did not work initially. It took a few iterations to get a model that would be ideal to move forward. + +## At a high level, what were the most important professional tasks that you completed? + +- First task + +Learn how to overcome dependencies discrepancies. + +- Second task + +Communicate within the team to determine tasks. + +- Third task + +Work with Github and minimize double coding. + +## At a high level, what were the most important technical tasks that you completed? + +- First task + +Pull GatorMiner to begin the project + +- Second task + +Install required dependencies. + +- Third task + +Build GatorMiner environment and run + +## After completing this week of the project, what is a task that you want to practice more? Why? + +Please provide a response to this question. +I would like to practice working with the Github flow model more often with a team. Working with a team is different then working independently, where you need to communicate and focus on pulling before making changes and have to talk to each other. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +Please provide a response to this question. +Just like with the task that I would like to work on most, working in a group requires a large amount of collaboration. This can be difficult and I am somewhat concerned about this, but as we work more in a group this should become more natural. + +3/30/21 Update +Progress: +Finished file upload and fixed linting errors + +Issues: +Gensim and linux checks in Github, and single file upload + +Future: +Next meeting we will be assigning new roles for everyone and moving selecting the next issue to work on. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection11.md b/resources/sample_md_reflections/cs203_lab02/reflection11.md new file mode 100644 index 00000000..3dbe05ee --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection11.md @@ -0,0 +1,82 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +no + +## Scrum Meetings + +### Scrum Meeting One (3/17) + +- What did you do since last meeting? + +I tried downloading and running GatorMiner and failed, as I realized that I could not run it within Docker. As a result, I had to go back to troubleshooting an issue I have been having with running python locally since last semester. + +- What will you do before the next meeting? + +Work on troubleshooting my issues with Python and retrying the run for GatorMiner. + +- Are there any obstacles in your way? + +The only obstacle currently is that I don't have Python properly installed on my machine. + +### Scrum Meeting Two (3/19) + +- What did you since last meeting? + +I further troubleshooted my issue with Python and found that my best next step would be to uninstall and delete all of the remnants of the previous Python installation. Knowing that, my next best step would be to install the newest version of Python + +- What will you do before the next meeting? + +Install the newest version of Python and pipenv + +- Are there any obstacles in your way? + +Not that I can tell. + +### Scrum Meeting Three (3/21) + +- What did you since last meeting? + +I installed the newest version of Python but found that I needed to revert it to Python 3.8 to properly run GatorMiner. I installed Python 3.8 and was able to run GatorMiner, with the exception of a ModuleNotFoundError for gensim.summarization. + +- What will you do before the next meeting? + +Try and fix my issues with GatorMiner + +- Are there any obstacles in your way? + +The ModuleNotFoundError :( + +## At a high level, what were the most important professional tasks that you completed? + +- Using ZenHub +- Attending all meetings +- Communicating with and actively participating with my group members + +## At a high level, what were the most important technical tasks that you completed? + +- Running Python programs with pyenv and pipenv +- Running streamlit +- Setting up GatorMiner + +## After completing this week of the project, what is a task that you want to practice more? Why? + +One task I would like to practice more is to plan out my time better so that I can complete assignments in a more timely fashion, with less additional stress on me. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +I have no concerns about team-based software engineering at this time. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection12.md b/resources/sample_md_reflections/cs203_lab02/reflection12.md new file mode 100644 index 00000000..da135a06 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection12.md @@ -0,0 +1,58 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [☑] Built and used the current version of GatorMiner. +- [☑] Used ZenHub board. +- [☑] Contributed to new user stories and tasks. +- [☑] Participated in all three scrum meetings. +- [☑] Wrote sentences about your software engineering skills in the assessment document. +- [☑] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No + +## Scrum Meetings + +### Scrum Meeting One (03/16) +- Created the team and talked about how we can complete the objective for Sprint 0 +- Try to figure out to install and test GatorMiner +- The installation of GatorMiner and figuring out the best way to to test the program + +### Scrum Meeting Two (03/18) + +- Tried to figure of the installation of GatorMiner, was able to install the program +- Figure out how write an issue into ZenHub and put labels on the said issue +- Few group members still have difficulty installing GatorMiner for the project + +### Scrum Meeting Three (03/21) + +- Continued to work on testing GatorMiner, still need to work on that and install functionality so that can work +- Work more on trying to figure out the ability to test GatorMiner, finalize the issue we created for ZenHub +- Still the installation of GatorMiner is not working properly for some individuals + + +## At a high level, what were the most important professional tasks that you completed? + +- Understanding and adopting best practices, +- Interacting with the team members +- Understanding and avoiding red flags + +## At a high level, what were the most important technical tasks that you completed? + +- Configuring a development environment for Python +- Using the GitHub issue tracker +- Creating and assigning labels to issues in the GitHub issue tracker + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I will like to practice utilizing the GatorMiner program because I am very intrigued with how it operates. I was able to build the program but I am still having difficulties trying to test the program because I still have to run some functionality on my computer for the testing to work. I am very interested in the idea of GatorMiner so I would like to practice using this program more in the future. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +My biggest concern about team-based software engineering is trying to figure out the best time we can meet together and work because of everyone's schedules. My team have had some difficulty with that but we have been able to work past that thankfully and it has not put a wrinkle in any of our future plans. However, right now, that remains my biggest concern compared to everything else. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection13.md b/resources/sample_md_reflections/cs203_lab02/reflection13.md new file mode 100644 index 00000000..a5100e5b --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection13.md @@ -0,0 +1,61 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [ ] Built and used the current version of GatorMiner. +- [ ] Used ZenHub board. +- [ ] Contributed to new user stories and tasks. +- [ ] Participated in all three scrum meetings. +- [ ] Wrote sentences about your software engineering skills in the assessment document. +- [ ] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No + +## Scrum Meetings + +### Scrum Meeting One (3/17) + +- What did you since last meeting? + This was the first meeting. +- What will you do before the next meeting? + Set up computer. +- Are there any obstacles in your way? + Python and its dependencies are having trouble running along with other programs used for the lab. + +### Scrum Meeting Two (NA) + +- What did you since last meeting? +- What will you do before the next meeting? +- Are there any obstacles in your way? + +### Scrum Meeting Three (NA) + +- What did you since last meeting? +- What will you do before the next meeting? +- Are there any obstacles in your way? + +## At a high level, what were the most important professional tasks that you completed? + +- First task +- Second task +- Third task + +## At a high level, what were the most important technical tasks that you completed? + +- First task +- Second task +- Third task + +## After completing this week of the project, what is a task that you want to practice more? Why? + +Please provide a response to this question. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +Please provide a response to this question. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection14.md b/resources/sample_md_reflections/cs203_lab02/reflection14.md new file mode 100644 index 00000000..ca093b27 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection14.md @@ -0,0 +1,58 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No. + +## Scrum Meetings + +### Scrum Meeting One (2/9/21) + +- Since last meeting, we made the code of conduct that outlined how we would work together and how infractions would be handled and made the assessment document that outlined how our labs and assignments would be assessed. We also completed lectures and readings to teach us the basics of Github flow and the agile software development model. +- Before the next meeting, we aim to install and practice using GatorMiner on our computers. +- An obstacle is that none of us have installed GatorMiner or done a lot of work with it's dependencies before, and we all have different operating systems, so installing GatorMiner presents various challenges. + +### Scrum Meeting Two (2/11/21) + +- Since last meeting, we all took steps towards installing and using GatorMiner, and using the Zenhub board. Some of us were still stuck on issues related to ``gensim`` or on issues specific to our operating system with installing GatorMiner, although I was successfully able to install and use it on my Linux with the help of TA Enpu. A lot of us also couldn't yet get edit access to the Zenhub board. +- Before the next meeting, we will keep working to properly install and use Gatorminer and use the Zenhub board. Since I have properly installed GatorMiner, I will test and examine it's various features and look for issues with it that people could work on. I will also keep trying to get edit access to the Zenhub board. +- I seem to be having an issue with the Zenhub board giving me edit access as opposed to being a read-only user despite proper access to the repositories. + +### Scrum Meeting Three (2/14/21) + +- My team continued to work on installing, getting oriented to, and looking for issues on GatorMiner. I tested the various features of GatorMiner and also ran the suggested ``pytest`` and found the markdown linting error that was referenced in an existing issue. +- Before the next meeting, I will continue to get familiar with GatorMiner and work towards identifying an issue to work on and tasks for that issue. I will also help my teammates that haven't been able to install and properly use GatorMiner with their installation as I am able. +- There are some obstacles currently in our way. First, I am the only one on my team that has been able to properly install GatorMiner and also the only one with a Linux operating system, which may have been why I was able to properly install it. Second, our team still isn't entirely clear on how we break down the issues into tasks using the Zenhub board, which Favour slack messaged the professor about, and only three of us are able to access Zenhub board. + +## At a high level, what were the most important professional tasks that you completed? + +- Learned about how Zenhub could be used as an online shared interface to track issues, user stories, and tasks. +- Practiced discussing progress and issues with others during scrum meetings. +- Practiced organizing teams and comparing skills to find roles within a team for a longer-term software engineering project. + +## At a high level, what were the most important technical tasks that you completed? + +- Successfully installed and built the GatorMiner software that we will be working on during this software engineering cycle. +- Learned more about the ```pipenv``` virtual environment and why it is important to install the dependencies for it regularly. +- Tested the GatorMiner software using ``pytest`` and identified various issues that could be worked on. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +A task that I want to pracitce more is using and updating GatorMiner. GatorMiner is a tool that I would like to learn more about because I am interested in it's functionalities of text mining and data visualization. I am hoping that learning more about the tool and helping to update it will get me more familiar with how to implement these functionalities. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +My biggest concern about team-based software engineering is all of the technical issues that can arise with many different systems attempting to work on the same software. I have been the only person on my team able to install GatorMiner so far and a lot of people also haven't been able to edit the Zenhub board. I am concerned about the possibility of these major technical issues persisting and making communication and collaboration even harder, especially being the remote format that we are in. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection15.md b/resources/sample_md_reflections/cs203_lab02/reflection15.md new file mode 100644 index 00000000..8b722f91 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection15.md @@ -0,0 +1,98 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes, I followed the code of conduct during the completion of this project. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No, there was no one that did not follow the code of conduct. There was some issues on when to meet, but that was resolved very quickly through communication so there were no violations in my eyes. + +## Scrum Meetings + +### Scrum Meeting One (3/17/21) + +- What did you since last meeting? + +This was out meeting during the lab. As this was our first meeting, we were trying to sort out what we have to do for this sprint as well as properly install the software into our devices. + +- What will you do before the next meeting? + +Our goal is to have successfully installed GatorMiner to our devices and understand how to use it. + +- Are there any obstacles in your way? + +The only obstacles we faced at this point in time is trying to understand exactly what we were supposed to do, but this became clearer as I talked to the professor and consulted the project outline document. + +### Scrum Meeting Two (Date) + +- What did you since last meeting? + +I installed the GatorMiner program into my device and made sure that it was working properly. I input some sample data and tried to go through the features to get a better understanding of the program. + +- What will you do before the next meeting? + +Come up with new tasks and issues to add to the ZenHub board. + +- Are there any obstacles in your way? + +I personally did not face difficulties with the installation as I have a MacOS, but I know that my group members are having trouble with it as they both have Windows OS. + +### Scrum Meeting Three (Date) + +- What did you since last meeting? + +Come up with potential issues that can be added to the ZenHub board. + +- What will you do before the next meeting? + +We will try to pick an issue to work on in future sprints going forward. + +- Are there any obstacles in your way? + +ZenHub was giving us trouble when we were trying to add issues to the board. For me, although it allowed me to create the issue, it did not let me add labels to it, while my other team mate could not even create an issue. + +## At a high level, what were the most important professional tasks that you completed? + +- First task + +Reading and understanding the task at hand + +- Second task + +Proper communication with my team mates + +- Third task + +Consulting the instructor as well as the technical leaders when facing problems + +## At a high level, what were the most important technical tasks that you completed? + +- First task + +Properly installing GatorMiner and its dependencies onto my device + +- Second task + +Configuring and using GatorMiner on my device + +- Third task + +Understanding and using ZenHub and its various features + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I want to practice using ZenHub more. I feel like ZenHub has a lot of features it has to offer and that I should be accustomed to it if I want to be successful or even have smooth progress during this project. I also want to be accustomed with GatorMiner since it is the main focus of our project, and it would make it easier to work on if I understand the program properly. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +My biggest concern about team-based software engineering is the fact that it is a team based activity. There are a lot of moving parts in it, as there are multiple groups working on the project as well as multiple team members in those groups. So organizing all these individual parts to make a successful project would be difficult in my opinion. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection16.md b/resources/sample_md_reflections/cs203_lab02/reflection16.md new file mode 100644 index 00000000..cb4e24c2 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection16.md @@ -0,0 +1,67 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [X] Built and used the current version of GatorMiner. +- [X] Used ZenHub board. +- [X] Contributed to new user stories and tasks. +- [X] Participated in all three scrum meetings. +- [X] Wrote sentences about your software engineering skills in the assessment document. +- [X] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No. + +## Scrum Meetings + +### Scrum Meeting One (03/18/2021) + +- What did you since last meeting? + - We all began working on building and using the current version of GatorMiner. +- What will you do before the next meeting? + - We will attempt to all build and use the current version of GatorMiner. +- Are there any obstacles in your way? + - Yes, we're unable to get our GatorMiner programs to function correctly. + +### Scrum Meeting Two (03/23/2021) + +- What did you since last meeting? + - We continued working on building and using the current version of GatorMiner. Abby was able to successfully get it to work. +- What will you do before the next meeting? + - We will continue working diligently to get the current version of GatorMiner to work. +- Are there any obstacles in your way? + - Yes, we're still having issues for some of members running GatorMiner. + +### Scrum Meeting Three (03/24/2021) + +- What did you since last meeting? + - We got two of our members to get GatorMiner built and running and created User Stories. +- What will you do before the next meeting? + - We will continue to work to get GatorMiner working for all of our members and work on contributing to the ZenHub board. +- Are there any obstacles in your way? + - Yes, there are some systematic issues in getting the GatorMiner program to work for the majority of our members. + +## At a high level, what were the most important professional tasks that you completed? + +- Working with the technical leaders to attempt to get GatorMiner to work correctly. +- Ensuring that my team is keeping up to date with one another on what tasks need done. +- Communicating with my team to complete needed tasks at hand. + +## At a high level, what were the most important technical tasks that you completed? + +- Reinstalling dependencies to attempt to get GatorMiner to function correctly. +- Continuing to troubleshoot why dependencies will not function on my machine. +- Contributing with my team to the GatorMiner ZenHub board. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I want to practice my skills in troubleshooting how to fix my dependencies in order to run programs like GatorMiner. I want to do this because I have been struggling with this quite a bit and I feel that understanding how to fix this on my own would be incredibly beneficial. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +My biggest concern about team-based software engineering is communications between one another in a remote environment, because personal technical issues create even further space between one another and makes for harder communication. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection17.md b/resources/sample_md_reflections/cs203_lab02/reflection17.md new file mode 100644 index 00000000..8a56ab95 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection17.md @@ -0,0 +1,62 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [ ] Built and used the current version of GatorMiner. +- [ ] Used ZenHub board. +- [ ] Contributed to new user stories and tasks. +- [ ] Participated in all three scrum meetings. +- [ ] Wrote sentences about your software engineering skills in the assessment document. +- [ ] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Please answer yes or no to this question. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +Please answer yes or no to this question. If you answer yes to this question, +then please explain who you observed and how they violated the code of conduct. + +## Scrum Meetings + +### Scrum Meeting One (Date) + +- Try to get the program to run properly. +- Try to fix the problem preventing the program from running or at least identify the outlying issue. +- Fully installing and running the program without any kind of error message. + +### Scrum Meeting Two (Date) + +- I managed to get the streamlit to work properly and added documentation to the CONTRIBUTING.md file. +- I plan on reading some more of the streamlit upload file documentation and try to see if I can figure out how to input test files from my system. +- Right now, I am currently unable to test input cases using the streamlit. + +### Scrum Meeting Three (Date) + +- Find out what was at least partially to blame for making me unable to test file inputs +- Be able to input paths to files I wish to test +- My system is having an issue with some of the python script dealing with encoding specific utf-8 characters. + +## At a high level, what were the most important professional tasks that you completed? + +- Joined a team and helped organized the weeks tasks. +- Participated in the slack lab channel to help solve bugs and errors. +- Helped identify the cause of some common issues with the GatorMiner program. + +## At a high level, what were the most important technical tasks that you completed? + +- Identified and fixed an issue relating to upgrading Windows Visual C++ to version 14.00+ +- Contributed to the CONTRIBUTING.md document with instructions for running GatorMiner on windows. +- Fixed an issue preventing python from reading utf-8 properly. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I feel that my ability to read documentation for the tools I am using could use some more practice. Many of the issues I encounter may have been more +easily solved if the first place I looked was the required dependencies for the tools I am using or some of the documentation on known problems. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +The only concern I have so far is that if there is too many of us working on a simple implementation of the feature than many of us may end up unable to +make any meaningful contributions. This has not been a problem yet, however, so I will have to wait and see how this way of team-based software engineering +works out. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection18.md b/resources/sample_md_reflections/cs203_lab02/reflection18.md new file mode 100644 index 00000000..cd9b6467 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection18.md @@ -0,0 +1,82 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [X] Built and used the current version of GatorMiner. +- [X] Used ZenHub board. +- [ ] Contributed to new user stories and tasks. +- [X] Participated in all three scrum meetings. +- [X] Wrote sentences about your software engineering skills in the assessment document. +- [X] Completed all writing tasks in the reflection document. + +## Did you follow the code of conduct during the completion of this project? + +Yes. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No. + +## Scrum Meetings + +### Scrum Meeting One (Date) + +- What did you since last meeting? + +This was the day that we were assigned the project and were put into our groups. During this meeting we downloaded the repository and worked out way to open the website through GatorMiner. Two teammates were able to do this without any errors while two other teammates had many problems. Additionally, we assigned Adam to be our Scrum leader. + +- What will you do before the next meeting? + +We will make sure all our python problems are solved and all of us can access the website. + +- Are there any obstacles in your way? + +There are no obstacles in our teams way besides lack of knowledge to solve python problems. We will have to stay engaged with a TL to fix this problem. + +### Scrum Meeting Two (3/21/21) + +- What did you since last meeting? + +Our teammates that were not able to access the website have gained access through solving technical problems. Furthermore, we have brainstormed what we want to tackle within our project. We have thought of using linting and frequency type coding in order to do this project. + +- What will you do before the next meeting? + +We will ensure we have a good understanding of the direction we want to move in regarding the project. + +- Are there any obstacles in your way? + +There are no known obstacles in the way. + +### Scrum Meeting Three (3/23/21) + +- What did you since last meeting? + +Since the last meeting, we have gotten a good grasp on the direction and tasks we have to accomplish for our project. + +- What will you do before the next meeting? + +By our next meeting we will write a short list of tasks we must accomplish to do our project. The tasks will not cover the whole project but the first quarter of the project. + +- Are there any obstacles in your way? + +There are no known obstacles in the way. + +## At a high level, what were the most important professional tasks that you completed? + +- First task: Staying communicated with teammates and helping through their tasks. +- Second task: Arranging meetings that matched all our very busy schedules due to practice and clubs. +- Third task: Continuous learning of using python, such as testing and covering. + +## At a high level, what were the most important technical tasks that you completed? + +- First task: The most important technical tasks included using and posting issues to zenhub +- Second task: We started doing requirements engineering and started to develop a plan for our project. +- Third task: Started a mock up of software design. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +Please provide a response to this question. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +Please provide a response to this question. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection19.md b/resources/sample_md_reflections/cs203_lab02/reflection19.md new file mode 100644 index 00000000..378f7ee2 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection19.md @@ -0,0 +1,58 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [ ] Built and used the current version of GatorMiner. +- [ ] Used ZenHub board. +- [ ] Contributed to new user stories and tasks. +- [ ] Participated in all three scrum meetings. +- [ ] Wrote sentences about your software engineering skills in the assessment document. +- [ ] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No + +## Scrum Meetings + +### Scrum Meeting One (3/17) + +- Nothing yet +- Get GatorMiner running +- Are there any obstacles in your way? + +### Scrum Meeting Two (3/24) + +- What did you since last meeting? +- What will you do before the next meeting? +- Are there any obstacles in your way? + +### Scrum Meeting Three (3/24) + +- Finally got the files working +- Wait for further instruction +- I am unable to write in the zenhub boards + +## At a high level, what were the most important professional tasks that you completed? + +- Maintained communication with group members +- Absorbed information from TLs +- Performed my own research to stay abreast of team + +## At a high level, what were the most important technical tasks that you completed? + +- Ran GatorMiner with local files +- Addressed differences between operating systems +- Got a virtual environment running + +## After completing this week of the project, what is a task that you want to practice more? Why? + +Editing the GatorMiner program to better understand how it works. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +It's easy to get lost in how big the project is enough to focus on your section. \ No newline at end of file diff --git a/resources/sample_md_reflections/cs203_lab02/reflection2.md b/resources/sample_md_reflections/cs203_lab02/reflection2.md new file mode 100644 index 00000000..0824b38a --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection2.md @@ -0,0 +1,82 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [ ] Built and used the current version of GatorMiner. +- [ ] Used ZenHub board. +- [ ] Contributed to new user stories and tasks. +- [ ] Participated in all three scrum meetings. +- [ ] Wrote sentences about your software engineering skills in the assessment document. +- [ ] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Please answer yes or no to this question. + +Yes. All code of coduct class rules were followed throughout the duration of this assignment. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +Please answer yes or no to this question. If you answer yes to this question, +then please explain who you observed and how they violated the code of conduct. + +No. To my knowledge everybody followed the code of conduct. + +## Scrum Meetings + +### Scrum Meeting One (03/18) + +- What did you since last meeting? + This was the first meeting so we just started talking about our tasks and how we would work together as a group. +- What will you do before the next meeting? + Finish getting GatorMiner to run locally on my machine using the given terminal commands. +- Are there any obstacles in your way? + No. Seems like it will work fine and even if there is an error or two they should be easy fixes. + +### Scrum Meeting Two (03/19) + +- What did you since last meeting? + Finished getting the GatorMiner program to run locally on my machine. +- What will you do before the next meeting? + Start reading the contributing.md file to know what is expected of my contributions. +- Are there any obstacles in your way? + Nope. All I have to do is read and start getting ready for our first task next week. + +### Scrum Meeting Three (03/23) + +- What did you since last meeting? + Read most of the documentation and code so I can be most prepared for our first task. +- What will you do before the next meeting? + Begin our first task in the lab sesson on 03/24. +- Are there any obstacles in your way? + Not sure yet. There could be difficulties with the first task but we haven't gotten it yet so I don't know. + +## At a high level, what were the most important professional tasks that you completed? + +- First task + Communication. We communicated as group over scrum meetings and slack all week long. +- Second task + Teamwork. We divided up task as a team and helped each other out with getting GatorMiner to run. +- Third task + Problem Solving. When other group members were having trouble with GatorMiner I was able to problem solve with them and help out. + +## At a high level, what were the most important technical tasks that you completed? + +- First task + Terminal Commands. Had to use various terminal commands to install and run GatorMiner. +- Second task + Environment setup. Had to install dependencies and python modules to be able to run GatorMiner. +- Third task + Github. To contribute to GatorMiner we will have to be familiar with git flow. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +Please provide a response to this question. + +We didn't really do anything that difficult this week so I don't really think I have a good answer to this question. Everything went pretty seemlessly. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +Please provide a response to this question. + +I'm not concerned about working in a team at all. It's a really important part of software engineering and it's a really good thing that we are learning it in a controlled classroom setting. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection20.md b/resources/sample_md_reflections/cs203_lab02/reflection20.md new file mode 100644 index 00000000..750dd50a --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection20.md @@ -0,0 +1,64 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [X] Built and used the current version of GatorMiner. +- [X] Used ZenHub board. +- [X] Contributed to new user stories and tasks. +- [X] Participated in all three scrum meetings. +- [X] Wrote sentences about your software engineering skills in the assessment document. +- [X] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes I did follow the Code of Conduct for the whole time during the completion of this project. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +During the completion of this assignment, I haven't seen anyone violate the Code of Conduct. + +## Scrum Meetings + +### Scrum Meeting One (Thursday,18th March ) + +- What did you since last meeting: Since this is our first meeting, the last time we gathered together was not a scrum meeting. But we did met and talk to each other prior to forming the group in order to fully understand the strength and weaknesses of each individual. + +- What will you do before the next meeting: We need to figure out how to get the GatorMinor on the end of Adam and Batmukth have. Adam was encounters an error with C++ configuration while Batmukth couldn't run `pipenv` or locate `pipenv` on his computer. + +- Are there any obstacles in your way: Since half of the team couldn't run the program so the whole team were not at the same page. And since this is the first time we see the code and experience this kind of issue, we have to rely a lot on TL to solve this complication. + +### Scrum Meeting Two (Sunday, 21st March) + +- What did you since last meeting: We were trying to get GatorMiner run on Adam and Batmukth computer and we finally get it run thanks to Noor. In this meeting, we were discuss what other potential features should be added to GatorMiner and practice creating user stories according to the features. + +- What will you do before the next meeting: Try to break down the user stories into a collection of tasks and pick one issue/user story to add into ZenHub Board. This issue should be clear and feasible so the team will be able to tackle. + +- Are there any obstacles in your way: We came up with some complicated idea that sounds good but very complicated. Thus, it's really hard to break it down into tasks since we don't really know how to accomplish that idea, for example: analyze amount of linting errors in the class, analyze spelling and grammar error in the reflections. + +### Scrum Meeting Three (Tuesday, 23rd March) + +- What did you since last meeting: We finally decided that we will put the error that Adam was having when running GatorMiner, which is the problem with Microsoft C++ as the issue that we will put into ZenHub. + +- What will you do before the next meeting: We still have to try to break down our selected user stories into a collection of tasks. + +- Are there any obstacles in your way: We still have the same problem as last meeting, our knowledge is not enough to split an user idea into tasks. We need to do more research and go to meet TLs to be able to get through this obstacles. + +## At a high level, what were the most important professional tasks that you completed? + +- First task: I have a great communication with clients since I used to intern at a Human Resource department of a large company. I was taught to interact with client in a specific manner and understand the general steps to resolve a problem with a client. There's a day I have to communicate to more than 30 clients through phone, email and in-person. +- Second task: I have a lot of team experience in and out of our Computer Science department. +- Third task: I am able to learn things individually and with the team by using open source documentation and software. + +## At a high level, what were the most important technical tasks that you completed? + +- First task: Be able to run Python programs with `pyenv` and `pipenv` successfully +- Second task: Be able to run and use `pylint` and `flake8` in Python and understand the error report from running these linting test. Then, be able to check and fix these linting error until all error are cleared. +- Third task: Be able to write basic testing case of Python programs with `pytest`, also able to use `coverage test` to see the degree of testing completion in the program. Then improve and write more test case accordingly. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I want to practicing building user stories and split user stories into reasonable collection of tasks. By having this practice, the team work and communication amongst teammates will be improve, this is very important in software engineering. I also want to practice estimating the amount of time each task might need since this is also another important feature in software engineering. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +Clearly it's the amount of knowledge of us towards this project. We have to read through the code thoroughly and figure out what should we do and what can I do to add more features into the program. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection21.md b/resources/sample_md_reflections/cs203_lab02/reflection21.md new file mode 100644 index 00000000..996746bb --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection21.md @@ -0,0 +1,58 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [Y] Built and used the current version of GatorMiner. +- [Y] Used ZenHub board. +- [Y] Contributed to new user stories and tasks. +- [Y] Participated in all three scrum meetings. +- [Y] Wrote sentences about your software engineering skills in the assessment document. +- [Y] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No. + +## Scrum Meetings + +### Scrum Meeting One (3/18) + +- What did you since last meeting? Attempted to install dependencies needed to run GatorMiner. +- What will you do before the next meeting? I will try to make sure that I have everything installed, and familiarize myself with GatorMiner. +- Are there any obstacles in your way? There were several issues with doing the installations, and I saw many of my classmates having the same issues. + +### Scrum Meeting Two (3/22) + +- What did you since last meeting? I worked a bit on learning about the program. +- What will you do before the next meeting? Try to fix some of these issues tonight that I'm having with my terminal window. +- Are there any obstacles in your way? Same as before, with various installations, but the Slack channel is helping. + +### Scrum Meeting Three (Date) + +- What did you since last meeting? I fixed the issues I had. +- What will you do before the next meeting? I'm going to learn more about GatorMiner. +- Are there any obstacles in your way? Not currently, but there's always that chance that something goes wrong of course. + +## At a high level, what were the most important professional tasks that you completed? + +- First task: Met with my team and discussed what we needed to do. +- Second task: Figured out what each team member could be responsible for figuring out, as we all ran into multiple issues. +- Third task: Learned about scrum meetings, figuring out a time that works for all of us. + +## At a high level, what were the most important technical tasks that you completed? + +- First task: Downloaded and installed GatorMiner. +- Second task: Learned how ZenHub, and interacted with the board. +- Third task: Installed several dependencies that are needed to use the program. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I need to learn more about GatorMiner. It seems like a really cool tool to use, and I am excited to actually work with its core programming, but in order to actually improve it I am going to need to learn a lot more. It is already pretty complex in its current state, and if I am to be of any use in improving it, I simply need to work with it more. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +Well, for starters, the class as a whole seems to still be having trouble with the GatorMiner software, and getting it running seems to be a hassle. Also, everyone's programming knowledge is varied, so different teams might not be able to implement the same level of concepts as others. Furthermore, I have never worked in a team this large at all, and even though we are split into smaller groups, the class is still working together as a unit. I still have high hopes for the team, but I'm sure there are gonna be several obstacles along the way. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection22.md b/resources/sample_md_reflections/cs203_lab02/reflection22.md new file mode 100644 index 00000000..11b4798d --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection22.md @@ -0,0 +1,58 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes! + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No + +## Scrum Meetings + +### Scrum Meeting One (3/17/21) + +- Since there was no last meeting, we all worked on getting used to being able to run GatorMiner on our machines. +- Before the next meeting we will familiarize ourselves with the code base and understand further how to execute the tool. +- Some errors have occurred regarding the Pipenv.lock file for a lot of the team members, so this may be an obstacle moving forward. + +### Scrum Meeting Two (3/19/21) + +- Since last meeting, the majority of the team members resolved execution issues and were able to familiarize with the tool. +- Before the next meeting, the team and I plan to look at the ZenHub board and think of issues that we would like to tackle. +- There are still some team members who are unable to run the tool so this could become an issue if not resolved soon. + +### Scrum Meeting Three (3/23/21) + +- As a team we compiled a list of issues that we feel we could face in the future. +- Before the next meeting, we will explore `issue #40` and see how we can make meaningful contributions to this issue. +- The ability for each person to work asynchronously and still understand their role in the team and what they are supposed to do could be an issue but I think our team will be ok on this end. + +## At a high level, what were the most important professional tasks that you completed? + +- Understanding and adopting best practices +- Attendance +- Communication + +## At a high level, what were the most important technical tasks that you completed? + +- Creating and assigning labels to issues in the GitHub issue tracker +- Running Python programs with pyenv and pipenv +- Software testing + +## After completing this week of the project, what is a task that you want to practice more? Why? + +After completing this weeks lab assignment, I would like to improve my GitHub flow skills. Although I am able to perform basic tasks using the flow model, I think that improving my skills with this technology will ultimately allow my contributions to projects to be even more meaningful and helpful. This semester I have been shown the importance of good organization when developing and contributing to open source software so it is definitely a skill that I will continue to work on bettering. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +I think that moving forward my biggest concern about team-based software engineering is how to get all group members to collaborate especially when meeting in person is almost impossible at this time. I think that it is possible to overcome this but the fact that it is more of an issue than it has previously ever been is a definite cause for concern. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection23.md b/resources/sample_md_reflections/cs203_lab02/reflection23.md new file mode 100644 index 00000000..caaeed06 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection23.md @@ -0,0 +1,98 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [ :heavy_check_mark: ] Built and used the current version of GatorMiner. +- [ :heavy_check_mark: ] Used ZenHub board. +- [ :heavy_check_mark: ] Contributed to new user stories and tasks. +- [ :heavy_check_mark: ] Participated in all three scrum meetings. +- [ :heavy_check_mark: ] Wrote sentences about your software engineering skills in the assessment document. +- [ :heavy_check_mark: ] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes, I have followed the code of conduct during this sprint. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No, I did not see anyone not following the code of conduct. + +## Scrum Meetings + +### Scrum Meeting One (3/16/2021) + +- What did you since last meeting? + +As this was our first ever meeting, I had not done anything previous to it yet. + +- What will you do before the next meeting? + +I will get help with my Python issues in order to run the program. + +- Are there any obstacles in your way? + +The obstacle in my way is that certain Python related commands are not working properly for me. + +### Scrum Meeting Two (3/19/2021) + +- What did you since last meeting? + +I got assistance with my Python issues and installed the dependencies for the program. + +- What will you do before the next meeting? + +I will run the program to make sure everything is working and get accustomed to how the program is used. + +- Are there any obstacles in your way? + +I did not have any obstacles in my way. + +### Scrum Meeting Three (Date) + +- What did you since last meeting? + +I ran the program and used the sample reflections to see how you can use the program to analyse. I also installed the ZenHub browser extension so it is easily accessible from GitHub. + +- What will you do before the next meeting? + +I will look over the existing issues and try to think of more in preparation of picking tasks for our group to tackle. I will also take a closer look at the GatorMiner's contributing guideline to ensure that I follow it when I make additions. + +- Are there any obstacles in your way? + +There are currently no obstacles in my way. + +## At a high level, what were the most important professional tasks that you completed? + +- First task + +I participated in scrum meetings with my group. + +- Second task + +I used Slack to communicate and coordinate with my group. + +- Third task + +I attempted to answer any questions that my group members asked. + +## At a high level, what were the most important technical tasks that you completed? + +- First task + +I got Python and its Pip commands working on my machine. + +- Second task + +I ran the necessary commands to get the program to run and practiced using it. + +- Third task + +I familiarized myself with ZenHub and the currently existing issues in the GatorMiner repository. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I will need more practice with developing user stories and converting them into tasks. Currently, I am very unsure of my ability to do so. I hope that working on this project will help me get better at doing this. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +After completing this sprint, I am concerned about being a burden to my team. I am concerned that my lack of skills and experience may cause me to fall behind or not be as productive as other members are. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection24.md b/resources/sample_md_reflections/cs203_lab02/reflection24.md new file mode 100644 index 00000000..e1e6e703 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection24.md @@ -0,0 +1,74 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No. + +## Scrum Meetings + +### Scrum Meeting One Thursday, March 18 + +- What did you since last meeting? +- Installed most of the dependencies to properly run GatorMiner and investigated ZenHub. +- What will you do before the next meeting? +- Attempt to run GatorMiner, determine which bugs to fix, and start completing tasks on the summary task list. +- Are there any obstacles in your way? +- One of the dependencies, genism, didn't install properly on my machine; so, by extension, ensuring that all of the dependencies installed correctly on everyone else's machine and finding a good time to meet for everyone. + +### Scrum Meeting Two Monday, March 22 + +- What did you since last meeting? +- Installed the rest of the dependencies correctly to properly run GatorMiner. Also, received the correct ZenHub board for the project. +- What will you do before the next meeting? +- Complete the checklist in the reflection document for the project. +- Are there any obstacles in your way? +- Not that I foresee at the moment. + +### Scrum Meeting Three Tuesday, March 23 + +- What did you since last meeting? +- Got GatorMiner to operate on my machine and completed the checklist in the reflection document. +- Pasted in the assessment document. +- What will you do before the next meeting? +- Ensure that everyone is caught up. +- Are there any obstacles in your way? +- Not that I foresee at the moment. + +## At a high level, what were the most important professional tasks that you completed? + +- First task +- At a professional level, the first most important task that I completed was leading the scrum meetings. +- Second task +- At a professional level, the second most important task that I completed was scheduling the scrum meeting for outside of class. +- Third task +- at a professional level, the third most important task that I completed was ensuring that everyone in our group was on the same page. + +## At a high level, what were the most important technical tasks that you completed? + +- First task +- At a technical level, the first most important task that I completed was downloading all of the dependencies necessary to get GatorMiner to work. +- Second task +- At a technical level, the second most important technical task that I completed was getting GatorMiner to run properly. +- Third task +- At a technical level, the third most important technical task that I completed was ensuring my compatibility with zenHub. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +After completing this project, one task that I want to practice more is correctly installing the dependencies. With this project, getting GatorMiner to work properly on my machine was quite difficult, but worth it in the end. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +After completing this assignment, my biggest concern about team-based software engineering is dividing the work up equally. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection25.md b/resources/sample_md_reflections/cs203_lab02/reflection25.md new file mode 100644 index 00000000..b993443a --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection25.md @@ -0,0 +1,58 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [Excellent] Built and used the current version of GatorMiner. +- [Excellent ] Used ZenHub board. +- [Adequate ] Contributed to new user stories and tasks. +- [Good ] Participated in all three scrum meetings. +- [Good ] Wrote sentences about your software engineering skills in the assessment document. +- [Excellent ] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +During the installation and running of both the gator miner and the zenhub board, I followed all code of conducts rules. There was some difficulty installing and running the gator miner application. Our group members leaned on each other a little to help resolve this issue during the last lab session. Our overall goal for this lab was to have all of our systems operational in both the zenhub board and the gator miner application. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +N/A + +## Scrum Meetings + +### Scrum Meeting One (March 21st) + +- This was our first team meeting. We decided who the scrum leader would be for our group +- We had discussed having all applications working and using the following zenhub board to make sure it was available to us. +- We have to make sure we schedule a weekly meeting time as it may be difficult with four busy schedules to meet as often as we would like. + +### Scrum Meeting Two (Slack Messaging) + +- The second meeting was voided due to time restraint and the availability of group members. +- We had discussed having all applications working and using the following zenhub board to make sure it was available to us. For those who had successful installation were to explore the code in a deeper meaning to get an in-depth understanding. +- We wanted to make sure we have a better setup to allow us to meet in between class times. + +### Scrum Meeting Three (In-Class March 23rd) + +- It was confirmed that everyone had installed the software successfully and could fully run the program +- Explore the zenhub board and come up with a feature to add to gator miner +- Set a weekly meeting schedule + +## At a high level, what were the most important professional tasks that you completed? + +- Met with team members and workout goals +- Apply skills and meeting times weekly +- Set team member goals + +## At a high level, what were the most important technical tasks that you completed? + +- Installation of Gator Miner +- Running Gator Miner +- Edit the Zenhub Board + +## After completing this week of the project, what is a task that you want to practice more? Why? + +This weeks project was mainly setup and making sure all things were operational. This is now set which allows us to work freely in the code ahead. One thing I would like to work on is working on the same code as someone else simultaneously. This is the idea of branching in github. This attribute I want to work more with as I had a lot of conflict errors during out first lab and during the code of conduct document. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +Overall I am confident in our group members to contribute something worth while for our group lab submissions. I think one thing that worries me is the changes that other groups may make. There could be an instance where similar parts of code are changed and could lead to some issues when merging all features into main. I think meeting more often than what is listed, even if it is only a few team members, would be beneficial to work on our code more often so we are all on the same page and can finish our work within a realistic time frame. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection26.md b/resources/sample_md_reflections/cs203_lab02/reflection26.md new file mode 100644 index 00000000..5a82bb71 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection26.md @@ -0,0 +1,58 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [X] Built and used the current version of GatorMiner. +- [X] Used ZenHub board. +- [X] Contributed to new user stories and tasks. +- [X] Participated in all three scrum meetings. +- [X] Wrote sentences about your software engineering skills in the assessment document. +- [X] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No. + +## Scrum Meetings + +### Scrum Meeting One (Wednesday) + +- What did you since last meeting? Nothing as our first meeting consisted of us making up our teams and trying to set up GatorMiner. +- What will you do before the next meeting? We will all individually work on trying to get GatorMiner set up. +- Are there any obstacles in your way? There are some errors with trying to install gensim that are affecting a lot of people in our class. + +### Scrum Meeting Two (Friday) + +- What did you since last meeting? We all worked on trying to get GatorMiner set up. +- What will you do before the next meeting? We will all look over the ZenHub board and make sure that we can edit it. +- Are there any obstacles in your way? Not everyone is able to access ZenHub as it is currently read-only. + +### Scrum Meeting Three (Sunday + +- What did you since last meeting? We looked over ZenHub and finished the set up of GatorMiner. +- What will you do before the next meeting? We will make an issue on the ZenHub board and look over the reflection for the lab. +- Are there any obstacles in your way? Making sure everyone has GatorMiner and ZenHub set up and working correctly. + +## At a high level, what were the most important professional tasks that you completed? + +- First task - Communicating with my teammates +- Second task - Asking the TL's in the slack channel for help +- Third task - Helping my teammates and other people in the class out with technical issues + +## At a high level, what were the most important technical tasks that you completed? + +- First task - Downloading GatorMiner +- Second task - Fixing all of the issues associated with getting gensim to work +- Third task - Getting ZenHub and the tracker to work + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I want to practice more with ZenHub, as I still am not as familiar with this project board as much as other people in my group are. This will help to better understand how to help more with our course project as we advance. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +My biggest concern is that there will be a lot of times where we won't get as much work done because there are set up issues and issues with permissions. I am also worried about all of the conflicting schedules and how that will impact the efficiency of our work. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection27.md b/resources/sample_md_reflections/cs203_lab02/reflection27.md new file mode 100644 index 00000000..018bedd3 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection27.md @@ -0,0 +1,82 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No + +## Scrum Meetings + +### Scrum Meeting One 3/17/2021 + +- What did you since last meeting? + +This was our first meeting so there wasn't much that we could do until after the scrum meeting was finished and we had made our layout. + +- What will you do before the next meeting? + +I had experience some problems regarding the access to GatorMiner more specifically with the installation of pipenv. What I will do for the next meeting is figure out how to resolve this issue so that there aren't any problems and will continue with the project without bugs. + +- Are there any obstacles in your way? + +Yes. As explained before I was having problems regarding the access to GatorMiner and the installation of pipenv. Fortunately the fix is simple and all I have to do is install some add-ons using visual studio. + +### Scrum Meeting Two 3/21/2021 + +- What did you since last meeting? + +I had installed the add-on necessary in order to access GatorMiner and install pipenv. + +- What will you do before the next meeting? + +Create a user story that we can use in order to take our first steps to creating a project + +- Are there any obstacles in your way? + +Knowing the criteria of the project + +### Scrum Meeting Three 3/23/2021 + +- What did you since last meeting? + +Attempted to create rough drafts on user stories that we can use to help guide our project + +- What will you do before the next meeting? + +Narrow down our options for the which user story we will use, and create a timeline on tasks for our project. + +- Are there any obstacles in your way? + +I still don't know what the criteria are for the project. + +## At a high level, what were the most important professional tasks that you completed? + +- First task: Set up a time to hold a scrum meeting +- Second task: Attended every scrum meeting +- Third task: Communicate the with teammates on accomplishments and fixed issues + +## At a high level, what were the most important technical tasks that you completed? + +- First task: Figured out how to access GatorMiner +- Second task: Was able to make an issue for the ZenHub +- Third task: Didn't have any issues regarding python + +## After completing this week of the project, what is a task that you want to practice more? Why? + +What I want to practice is being able to further my understanding of github and how to connect to it using software that we create. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +My biggest concern is being able to gather enough information to create a project that will connect with the user story in a manner that won't be completely above our level of understanding. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection28.md b/resources/sample_md_reflections/cs203_lab02/reflection28.md new file mode 100644 index 00000000..3345b070 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection28.md @@ -0,0 +1,67 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [X] Built and used the current version of GatorMiner. +- [X] Used ZenHub board. +- [X] Contributed to new user stories and tasks. +- [X] Participated in all three scrum meetings. +- [X] Wrote sentences about your software engineering skills in the assessment document. +- [X] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes, I followed the code of conduct during the completion of this project. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +I did not observe anyone who did not follow the code of conduct. + +## Scrum Meetings + +### Scrum Meeting One (Date) + +- What did you since last meeting? +Since the first scrum meeting I got familiar with GatorMiner and mostly understand the tool +- What will you do before the next meeting? +Understand and get access to ZenBoard +- Are there any obstacles in your way? +Getting access to ZenBoard, but a fix to this issue is being worked on + +### Scrum Meeting Two (Date) + +- What did you since last meeting? +Was able to get access to Zenboard +- What will you do before the next meeting? +Be prepared to share my ability to use both tools effectively +- Are there any obstacles in your way? +No obstacles were in my way + +### Scrum Meeting Three (Date) + +- What did you since last meeting? +Comprended and able to share my experiences with Zenboard and GatorMiner to my team +- What will you do before the next meeting? +Complete the reflection and get ready for the next part of this Project +- Are there any obstacles in your way? +There are no obstacles in my way + +## At a high level, what were the most important professional tasks that you completed? + +- Got organized into a team to get prepared for group work +- Communicated with my group to meet during and outside class time +- Activelty participating and share information during scrum meetings + +## At a high level, what were the most important technical tasks that you completed? + +- Able to understand and use the GatorMiner tool +- Access and add to ZenBoard +- Completed and submitted the reflection document + +## After completing this week of the project, what is a task that you want to practice more? Why? + +After this week I would like more practice working as a group to complete a task in an efficient manner. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +After completing this assignment my biggest concern is communication within my group but this has not been an issue so far. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection29.md b/resources/sample_md_reflections/cs203_lab02/reflection29.md new file mode 100644 index 00000000..b2197aad --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection29.md @@ -0,0 +1,82 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [ ] Built and used the current version of GatorMiner. +- [ ] Used ZenHub board. +- [ ] Contributed to new user stories and tasks. +- [ ] Participated in all three scrum meetings. +- [ ] Wrote sentences about your software engineering skills in the assessment document. +- [ ] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +no + +## Scrum Meetings + +### Scrum Meeting One (3/18/2021) + +- What did you since last meeting? + +We all tried to git GatorMiner to work on our personal laptops. + +- What will you do before the next meeting? + +We will try to get GatorMiner building correctly + +- Are there any obstacles in your way? + +We are all having various issues getting GatorMiner to work correctly. + +### Scrum Meeting Two (3/23/2021) + +- What did you since last meeting? + +I was able to get GatorMiner to work, but the other members of my team are still struggling. + +- What will you do before the next meeting? + +We will continue to try to get GatorMiner to work correctly. + +- Are there any obstacles in your way? + +Yes, people are still having issues getting GatorMiner to work. + +### Scrum Meeting Three (3/24/2021) + +- What did you since last meeting? + +Two of the members were able to get GatorMiner working properly. + +- What will you do before the next meeting? + +We will git GatorMiner working and add to the ZenHub board. + +- Are there any obstacles in your way? + +Yes, people are still having build issues getting GatorMiner to work. + +## At a high level, what were the most important professional tasks that you completed? + +- I actively communicated with the members on my team. +- I communicate with my group about what I did to get GatorMiner, to possibly help them with their tasks +- I was present and active in all of the scrum meetings/ lab period. + +## At a high level, what were the most important technical tasks that you completed? + +- I was able to use google and the TLs to help fix my errors to get GatorMiner to run properly on my laptop. +- I navigated through the different features on GatorMiner. +- I navigated the ZenBoard board. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +One task I want to practice more is thinking through user stories to help me develop tasks that are manageable for me and my skill set. This is because throughout this project we will have to come up with our own features to add to the program. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +My biggest concern is knowing if I will be able to properly implement the feature I choose to work own without a rigid structure of where to look in the book, or notes, or even past assignments. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection3.md b/resources/sample_md_reflections/cs203_lab02/reflection3.md new file mode 100644 index 00000000..7d6753b5 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection3.md @@ -0,0 +1,82 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No. + +## Scrum Meetings + +### Scrum Meeting One (03/17/21) + +- What did you since last meeting? + +This was our first meeting. + +- What will you do before the next meeting? + +We will work on fixing Python, gatorminer and zenhub issues. + +- Are there any obstacles in your way? + +The inability to all be on the same page with working software is our main obstacle. + +### Scrum Meeting Two (03/19/21) + +- What did you since last meeting? + +We worked on software issues. Many were fixed, but not all. + +- What will you do before the next meeting? + +We will continue to fix our software issues and explore them. + +- Are there any obstacles in your way? + +The same issues persist. + +### Scrum Meeting Three (03/23/21) + +- What did you since last meeting? + +We fixed our software issues and began exploring them. We began looking at issues and making them into tasks. + +- What will you do before the next meeting? + +We will look into the task that we assigned ourselves to. + +- Are there any obstacles in your way? + +Not currently. + +## At a high level, what were the most important professional tasks that you completed? + +- As scrum leader, I lead the scrum meetings and made sure we were all on the same page and dilligently working on assignments. +- I ensured that I communicated effectively and often to my group members. +- I participated in the various tasks that we needed to do for the week. + +## At a high level, what were the most important technical tasks that you completed? + +- I was able to get all of the necessary software running including Gatorminer and Zenhub. +- I followed the Github flow model. +- I explored Gatorminer as well as edited the Zenboard. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +After completing this week of the project, I want to learn more about Gatorminer's intricacies in order to effectively complete detailed tasks. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +After completing this week of the project, my biggest concern about team-based software engineering is time management. With a large amount of work, splitting the work between the team members and getting it all done on time could be challenging. Though, with enough hard work, I feel that it can be accomplished. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection30.md b/resources/sample_md_reflections/cs203_lab02/reflection30.md new file mode 100644 index 00000000..5747f836 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection30.md @@ -0,0 +1,75 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [X] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No + +## Scrum Meetings + +### Scrum Meeting One (3/18/2021) + +- What did you do since last meeting? +* Attempted to have everyone successfully install gatorminer and have it run properly. +* Most of us were able to get it working without any issues, I still need to install it properly. +- What will you do before the next meeting? +* Try to brainstorm ideas and get gator miner to work. +- Are there any obstacles in your way? +* Since I am running windows there are some difficulties installing and running the software. + +### Scrum Meeting Two (3/22/21) + +- What did you do since last meeting? +* I was able to properly install all the needed dependencies for Gator Miner +- What will you do before the next meeting? +* I will try and get Gator Miner to run before our next meeting +- Are there any obstacles in your way? +* The only obstacles in my way for this task is possible troubleshooting due to OS issues or an error in running the program + +### Scrum Meeting Three (3/23/21) + +- What did you do since last meeting? +* Ensured that Gator Miner was working on my device +- What will you do before the next meeting? +* Brain storm ideas for the zen board, and discuss what problems that we might be able to do as a team in slack. +- Are there any obstacles in your way? +* Being able to meet with the entire team, and get proper communication going + +## At a high level, what were the most important professional tasks that you completed? + +- First task +* Communication with the team as the scrum lead +- Second task +* Staying on time +- Third task +* I atended every meeting + +## At a high level, what were the most important technical tasks that you completed? + +- First task +* Proper installation of dependencies for Gator Miner +- Second task +* Uninstallation and reinstallation of Python in order to install dependencies listed above +- Third task +* Using the Gator Miner tool and checking the zen board + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I wish to practice using the Zen board more and communicate with my team more. I feel that these skills will be very vital if I am to be successful not only in this class, but after I graduate as well. If I perform well now, I may perform well in the business world. +Project flow is very important for completion of software. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +My biggest concern about team-based software engineering is the lack of communication and interaction that may occur. This week I had isses getting in touch with my team to talk about when to have our next meeting, or just general updates on what people were doing diff --git a/resources/sample_md_reflections/cs203_lab02/reflection31.md b/resources/sample_md_reflections/cs203_lab02/reflection31.md new file mode 100644 index 00000000..dd5a85a5 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection31.md @@ -0,0 +1,105 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Please answer yes or no to this question. +yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +Please answer yes or no to this question. If you answer yes to this question, +then please explain who you observed and how they violated the code of conduct. +no + +## Scrum Meetings + +### Scrum Meeting One (3/18/2021) + +- What did you since last meeting? + +we all began working on building and using the urrent version of gatorminer + +- What will you do before the next meeting? + +we will all attempt to build and use the current version of gatorminer + +- Are there any obstacles in your way? + +my deliverables will not configure correctly + +### Scrum Meeting Two (3/23/2021) + +- What did you since last meeting? + +we continued to work on configuring our gator miner + +- What will you do before the next meeting? + +make my gator miner work correctly with python + +- Are there any obstacles in your way? + +my build errors + +### Scrum Meeting Three (3/23/2021) + +- What did you since last meeting? + +I am still troubleshooting trying to get gaterminer to work + +- What will you do before the next meeting? + +have it 100% working before next meeting + +- Are there any obstacles in your way? + +I had to redownload and configure python due to having an unsupported version + +## At a high level, what were the most important professional tasks that you completed? + +- First task + +One professional task was working with the tl to try and get my version of gator miner to run correctly on the right version of python + +- Second task + +Another task was making sure my team members are up to task level with everyone + +- Third task + +the final task i am reporting is when we had to do work with the zenhub board. + +## At a high level, what were the most important technical tasks that you completed? + +- First task + +the first technical task i completed was trouble shoot to find out that i have the incorrect version of python + +- Second task + +second was switching the python version and getting my pipfile.lock correct and working + +- Third task + +the third task was adding my contributions to the assessment board + +## After completing this week of the project, what is a task that you want to practice more? Why? + +Please provide a response to this question. + +I need to get to running through the gatorminer + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +Please provide a response to this question. + +The biggest concern is making sure that everyone is on pace with eachother and no one is left behind. Also i want everyone to be able to understand what step we are on in development diff --git a/resources/sample_md_reflections/cs203_lab02/reflection32.md b/resources/sample_md_reflections/cs203_lab02/reflection32.md new file mode 100644 index 00000000..44dc390b --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection32.md @@ -0,0 +1,61 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [ ] Built and used the current version of GatorMiner. +- [ ] Used ZenHub board. +- [ ] Contributed to new user stories and tasks. +- [ ] Participated in all three scrum meetings. +- [ ] Wrote sentences about your software engineering skills in the assessment document. +- [ ] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +I did not observe anyone violating code of cunduct. + +## Scrum Meetings + +### Scrum Meeting One (3/18/2021) + +- What did you since last meeting? +Downloaded the requirements to run GatorMiner and investigated ZenHub. +- What will you do before the next meeting? +Make sure everything is installed correctly and complete some of the things on the summary task list. +- Are there any obstacles in your way? +Any issue installing software could be a roadblock. + +### Scrum Meeting Two (Date) + +- What did you since last meeting? I downloaded GatorMiner. +- What will you do before the next meeting? All tasks in lab required. +- Are there any obstacles in your way? Only time. + +### Scrum Meeting Three (Date) + +- What did you since last meeting? Completed tasks for lab. +- What will you do before the next meeting? Hand in lab and finish it. +- Are there any obstacles in your way? I don't think so. + +## At a high level, what were the most important professional tasks that you completed? + +- First task: Communicating with team members about meeting times +- Second task: Sharing ideas with team members. +- Third task: Using slack and paying attention to instructions. + +## At a high level, what were the most important technical tasks that you completed? + +- First task: Downloading and running GatorMiner. +- Second task: Using Git to clone and push lab repo +- Third task: Using Atom and Markdown to complete lab. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +Downloading dependencies and figuring out what I need to make software work correctly. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +Any scheduling conflicts could be a big problem. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection4.md b/resources/sample_md_reflections/cs203_lab02/reflection4.md new file mode 100644 index 00000000..0f6983e8 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection4.md @@ -0,0 +1,70 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [ ] Built and used the current version of GatorMiner. +- [ ] Used ZenHub board. +- [ ] Contributed to new user stories and tasks. +- [ ] Participated in all three scrum meetings. +- [ ] Wrote sentences about your software engineering skills in the assessment document. +- [ ] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Please answer yes or no to this question. +yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +Please answer yes or no to this question. If you answer yes to this question, +then please explain who you observed and how they violated the code of conduct. +no +## Scrum Meetings + +### Scrum Meeting One + +- What did you since last meeting? + get zenboard working get pipenv +- What will you do before the next meeting? + get GatorMiner running +- Are there any obstacles in your way? + getting gatorminer working + +### Scrum Meeting Two + +- What did you since last meeting? + attempt somethings to try and get gator miner working and as a group decide to chose docker file issue. +- What will you do before the next meeting? + meet with Enpu to get gator miner working +- Are there any obstacles in your way? + getting gatorminer working + +### Scrum Meeting Three + +- What did you since last meeting? + meet with Enpu and get gator miner working and we took the issue +- What will you do before the next meeting? + do the reflection which I will next time do as I go +- Are there any obstacles in your way? + no we are all good + +## At a high level, what were the most important professional tasks that you completed? + +- First task contacting Enpu to help me get gator miner working +- Second task Informing my teammates that I got it working and letting them know we should take our docker file issue +- Third task communicating with them in our groupchat and staying up to date with everything + +## At a high level, what were the most important technical tasks that you completed? + +- First task figuring out that I needed for skip lock --dev I have to add --three at the end to ensure I use python 3 +- Third task downloading python3.8 and deleting python3.7 +- Second task editing my path for python 3.7 and using a different model with streamlit to make the path + + +## After completing this week of the project, what is a task that you want to practice more? Why? + +To be honest besides getting gatorminer working I did not do much else so the only thing I could practice more is getting more comfortable with accessing gatorminer and overall getting more familiar with it. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +My biggest concern is the errors that come up that can take up so much of your time that keep you at one single step and keep you from being productive and getting things done efficiently. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection5.md b/resources/sample_md_reflections/cs203_lab02/reflection5.md new file mode 100644 index 00000000..017e4a13 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection5.md @@ -0,0 +1,78 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [:blush:] Built and used the current version of GatorMiner. +- [:laughing:] Used ZenHub board. +- [:blush:] Contributed to new user stories and tasks. +- [:laughing:] Participated in all three scrum meetings. +- [:laughing:] Wrote sentences about your software engineering skills in the assessment document. +- [:laughing:] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Please answer yes or no to this question. + +Yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +Please answer yes or no to this question. If you answer yes to this question, +then please explain who you observed and how they violated the code of conduct. + +No + +## Scrum Meetings + +### Scrum Meeting One (Date) + +- What did you do since last meeting? + We set up our teams and set up multiple means of communicating with eachother +- What will you do before the next meeting? + Before the next meeting, I will be diving into gatorminer to understand how it works +- Are there any obstacles in your way? + + +### Scrum Meeting Two (Date) + +- What did you since last meeting? + I got on my computer and found out that it wasn't working the way it should be +- What will you do before the next meeting? + Reset my computer and redownload everything +- Are there any obstacles in your way? + I had issues with python on my computer that truly baffled me where python would crash every single time it was launched + +### Scrum Meeting Three (Date) + +- What did you since last meeting? + I completely reset my computer, redownloaded vscode and all my programs, and I got zenboard and gatorminer working +- What will you do before the next meeting? + I will be finding out how to make a docker file +- Are there any obstacles in your way? + No, this worked very smoothly + +## At a high level, what were the most important professional tasks that you completed? + +- First task + Set up teams +- Second task + Established team heirarchy (who the scrum leader is) +- Third task + Discussed each teammates technical skills + +## At a high level, what were the most important technical tasks that you completed? + +- First task + Determined issues that were causing me not to be able to use gatorminer +- Second task + Reset my computer +- Third task + Reinstalled and initiated python and the entire technical infrastructure required to participate in class + +## After completing this week of the project, what is a task that you want to practice more? Why? + + I want to do personal study about the details behind machine learning, which is at the heart of this project. It is a subject that I have long wanted to study for my own knowledge and this gives me a good reason. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + + My only concern so far (though there is no reason to have it yet) is that unlike an actual job where we would all be in the same office collaberating on the issues together, we are all individual students and may not have as much time to be on the same schedule. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection6.md b/resources/sample_md_reflections/cs203_lab02/reflection6.md new file mode 100644 index 00000000..7a66c234 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection6.md @@ -0,0 +1,79 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [X] Built and used the current version of GatorMiner. +- [X] Used ZenHub board. +- [X] Contributed to new user stories and tasks. +- [X] Participated in all three scrum meetings. +- [X] Wrote sentences about your software engineering skills in the assessment document. +- [X] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Please answer yes or no to this question. +Yes. + +## Did you observe someone who did not follow the code of conduct? Who? How? + +Please answer yes or no to this question. If you answer yes to this question, +then please explain who you observed and how they violated the code of conduct. +No. +## Scrum Meetings + +### Scrum Meeting One (3/17/21) + +- What did you since last meeting? +First meeting. +- What will you do before the next meeting? +See if I could get GatorMiner working +- Are there any obstacles in your way? +GatorMiner is not wanting to download onto my computer correctly + +### Scrum Meeting Two (3/18/21) + +- What did you since last meeting? +Met with a few classmates to attempt to get GatorMiner working +- What will you do before the next meeting? +Ask a TL for help +- Are there any obstacles in your way? +It isn't recognizing the module named spacy + +### Scrum Meeting Three (3/23/21) + +- What did you since last meeting? +Fixed my dependencies ... I think +- What will you do before the next meeting? +Just work through GatorMiner after I get it working +- Are there any obstacles in your way? +Not really at the moment. + +## At a high level, what were the most important professional tasks that you completed? + +- First task +Communicating effectively with my team members +- Second task +Worked with each other in Slack to figure out which tasks we'd like to do. +- Third task +Spoke to someone with higher knowledge than I when I ran into a problem for help. + +## At a high level, what were the most important technical tasks that you completed? + +- First task +Cloning GatorMiner onto my computer +- Second task +Installing various dependencies depending on what error I got +- Third task +Working through problems within streamlit.py + +## After completing this week of the project, what is a task that you want to practice more? Why? + +A task I want to keep practicing is learning how pipenv and pip all work. It seems extremely complex +and thorough. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +I would say everyone not being on the same page. We have students who are working with different +types of computers, software, and software development knowledge. For example, my computer has had +a problem with downloading GatorMiner while others in my group haven't. It has been a slight set back +but I would believe that would be one of the bigger problems. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection7.md b/resources/sample_md_reflections/cs203_lab02/reflection7.md new file mode 100644 index 00000000..9855cd86 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection7.md @@ -0,0 +1,64 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [X] Built and used the current version of GatorMiner. +- [X] Used ZenHub board. +- [ ] Contributed to new user stories and tasks. +- [X] Participated in all three scrum meetings. +- [ ] Wrote sentences about your software engineering skills in the assessment document. +- [X] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +no + +## Scrum Meetings + +### Scrum Meeting One (3-22-2021) + +- What did you do since last meeting? +fix issues and trying to run the Gaterminer +- What will you do before the next meeting? +Try to fix the program, test, run the code, and understand the code with a TL +- Are there any obstacles in your way? +downloading python, I can't use the pip command for some reason. I got over that by using pip3 commands. + +### Scrum Meeting Two (3-23-2021) + +- What did you since last meeting? +still fixing issues on my end. Figuring out why my code or commands won't run. +- What will you do before the next meeting? +sit down with a TL tonight and figure it out. +- Are there any obstacles in your way? +pip commands and streamlit wont work. + +### Scrum Meeting Three (Date) + +- What did you since last meeting? +- What will you do before the next meeting? +- Are there any obstacles in your way? + +## At a high level, what were the most important professional tasks that you completed? + +- communication +- listening to my team members +- asking them some simple questions. Like how are things going on their end and such. + +## At a high level, what were the most important technical tasks that you completed? + +- trouble shooting +- running streamlit +- writing test cases + +## After completing this week of the project, what is a task that you want to practice more? Why? + +Using streamlit. Other than that it will probably be programming in python. I still felt that I am new to python and coding as a whole. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +My biggest concern is that I may not be contributing to much to the team. That means I can't help them code, I can only lead them and such. Since my programming skills are not the best, I will try to make up for it with communication and leading of the team. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection8.md b/resources/sample_md_reflections/cs203_lab02/reflection8.md new file mode 100644 index 00000000..398893c8 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection8.md @@ -0,0 +1,61 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [ ] Built and used the current version of GatorMiner. +- [ ] Used ZenHub board. +- [ ] Contributed to new user stories and tasks. +- [ ] Participated in all three scrum meetings. +- [ ] Wrote sentences about your software engineering skills in the assessment document. +- [ ] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +No + +## Scrum Meetings + +### Scrum Meeting One (3/18/21) + +- Since last meeting, I managed to get Streamlit to work. +- Before the next meeting, I'll research how to actually implement the feature, facilitate others to run their Streamlit smoothly, and come up with the tasks. +- There were some obstacles with regard to encoding the contents of markdown files, but I managed to fix that. + +### Scrum Meeting Two (3/22/21) + +- Since last meeting, I implemented source code for the file uploading widget in `streamlit_web.py`. +- What I'll do before the next meeting is fixing the `scipy` error I had and then being able to test my implementation. +- The obstacle in my way is the `scipi` error. + +### Scrum Meeting Three (3/23/21) + +- Since last meeting, I fixed the `scipi` error and tested my implementation of the file upload widget +- What I'll do before the next meeting is create the branch for the file upload feature, debug the implementation, and + test that implementation. +- There aren't any obstacles so far in my way. + +## At a high level, what were the most important professional tasks that you completed? + +- Helped other people get Streamlit up and running +- Asked for help from a TL to fix some problems I had +- Also independently fixed other problems I had + +## At a high level, what were the most important technical tasks that you completed? + +- Fix `gensim` error +- Fix `scipy` error +- Implement part of the file upload feature + +## After completing this week of the project, what is a task that you want to practice more? Why? + +A task I want to practice more is the actual implementation of new features because if that could be understood within a +larger open-source perspective, I could implement features much faster in other open-source projects. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +The biggest concern about team-based software engineering is that teams could be working on the same thing and then +merge conflicts could result. diff --git a/resources/sample_md_reflections/cs203_lab02/reflection9.md b/resources/sample_md_reflections/cs203_lab02/reflection9.md new file mode 100644 index 00000000..02a704d8 --- /dev/null +++ b/resources/sample_md_reflections/cs203_lab02/reflection9.md @@ -0,0 +1,58 @@ +# Reflection by + +## Summary Task List for the Laboratory Assignment + +- [x] Built and used the current version of GatorMiner. +- [x] Used ZenHub board. +- [x] Contributed to new user stories and tasks. +- [x] Participated in all three scrum meetings. +- [x] Wrote sentences about your software engineering skills in the assessment document. +- [x] Completed all writing tasks in the reflection document + +## Did you follow the code of conduct during the completion of this project? + +Yes + +## Did you observe someone who did not follow the code of conduct? Who? How? + +All of our group members were participating throughout the scrum meeting. + +## Scrum Meetings + +### Scrum Meeting One (3/17) + +- I got my Gator Miner to run on my computer. +- Take a look at Gator Miner's functions and what it can do. +- I have to figure out how to get Gator Miner to accept input. + +### Scrum Meeting Two (3/19) + +- Looked on zenhub to look at the issues. +- Look into zenhub further to understand how it works better. +- Some members of the group are still having trouble running Gator Miner. + +### Scrum Meeting Three (3/23) + +- Used zenhub to claim issue for project. +- Help group members be able to run Gator Miner. +- Some members of the group are still having trouble running Gator Miner. + +## At a high level, what were the most important professional tasks that you completed? + +- Operated zenhub. +- Communicated with team. +- Created team for our group on zenhub. + +## At a high level, what were the most important technical tasks that you completed? + +- Ran Gator Miner. +- Created models using Gator Miner. +- Organized tasks on zenhub. + +## After completing this week of the project, what is a task that you want to practice more? Why? + +I would like to practice more with working with zenhub. I have looked around to see what things can do, but I haven't actually done them yet. I would like to be able to use zenhub and it's functionality. + +## After completing this assignment, what is your biggest concern about team-based software engineering? + +Everyone not being able to run the software that you are working on. Everyone has different computers and operating systems making it hard to troubleshoot their problems. However, once everyone can run the program, everything should go smoothly. diff --git a/resources/sample_md_reflections/cs310_lab01/reflection1.md b/resources/sample_md_reflections/cs310_lab01/reflection1.md new file mode 100644 index 00000000..2e17fb89 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection1.md @@ -0,0 +1,104 @@ +# Report by + +## Planning, due on January 27th, 2020 by 11am + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| 1/24/20 | Finalize project and complete timeline | +| 1/27/20 | Acquire materials | +| 1/29/20 | Assemble hardware and produce sound | +| 1/30/20 | Test sound and produce lights: prep for walkthrough | +| 1/31/20 | Lab session | +| 1/5/20 | Ensure agent reacts to environment| +| 2/7/20 | Complete project | + +### Hardware + +- Arduino board +- UNO R3 +- Breadboard +- Jumper cables +- [SparkFun Mini Speaker - PC Mount 12mmm 2.048kHz](sparkfun.com/products/7950) +- Red and Green LEDs +- Buttons +- Buzzer + +## Arduino Project + +We chose to model our lab after this project we found on +[Hackster](https://www.hackster.io/techarea98/super-mario-theme-song-with-piezo-buzzer-and-arduino-2cc461). +This project simply connects a buzzer to an arduino, allowing it to play a song. +We added two features to this project. TO make it responsive to its environment, +we added a button that allows a user to control when and what song is played +through the buzzer. We also added an LED light to indicate when the song is being +played. + +## Agent + +Our agent is a simple reflex agent that contains two states, when the button is +high (not pressed) and when the button is low (pressed). + +We feel the agent exists in a fully observable, episodic, static environment. +The only component of the agent's environment is the button. +No data builds when the agent takes action, therefore making it episodic. +Nothing in the environment changes besides the state of the button. + +The actuators related to our agent are the buzzer and the light that +take action when the button is pressed. + +The sensor for our agent is the button which detects whether action is taken +or not. + +## Challenges and Learning Experiences + +Discuss any challenges you have encountered during the work on +this lab and describe what have you learned. + +We were at first challenged by the basic set up of a the +arduino and the breadboard. +After watching tutorials and reading documentation, +we gained more confidence in +what to do. +Our next challenge involved using a speaker. We attempted to add a speaker to +the agent, however we struggled to understand how to connect the speaker with a +resistor and chose to +stick with the buzzer. +Another challenge we had was having to transpose the sheet music +for The Office theme song, which was very time consuming. Overall, we had few +challenges while completing this lab. + +## Ethical Benefits and Implications + +In this section, drawing on class discussions and readings, +answer the following questions + +We envision this being used for entertainment purposes. +The LEDs lighting up when the sound is being played +could also be used as an assistive technology for those +who are hearing impaired. + +The intended users would likely be children or collectors. + +This is an innocent technology that honestly does not have any ethical concerns as +it just plays a song. We don't see a reason to bar +anyone from using it. However, anyone with mal intent could find a way to +use this inappropriately. + +If the volume was set to a very high level and would not stop it could cause +physical harm to those in the space in which it goes off. + +By including a resistor, we could limit the flow of power that would prevent +the volume from getting too loud. + +## Team Work + +Describe the details of your team working strategy, specifically explain +how did you complete this work as a team and describe the specific +contributions of each team member. + +We met many times as a team to work on this assignment together. We each had ideas +that we brainstormed and merged to create this agent. We both did research when we +got stuck on a task and both worked with both the physical and coding parts of the +project. diff --git a/resources/sample_md_reflections/cs310_lab01/reflection10.md b/resources/sample_md_reflections/cs310_lab01/reflection10.md new file mode 100644 index 00000000..bbc36445 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection10.md @@ -0,0 +1,98 @@ +# Report by + +## Planning, due on January 27th, 2020 by 11am + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| 1/30 | Attempt to properly connect UNO with board and sensors| +| 2/3 | Test photoresistors | +| 2/5 | Small adaption to make the project "our own" | +| 2/7 | Turn in whole project with functional feature | + +### Hardware +- Arduino board +- 2 Photoresistors +- Jumper cables +- Servo motor +- Battery + + +## Arduino Project +Describe the application you have chosen to develop and provide a motivation for why it is a useful application. Include references of all sources you have used throughout this project (URLs are sufficient). + +We have chosen to develop an application that detects light and turns a flower towards the area of light. This light sensor flower is a +useful application because it can be very helpful in real life with different businesses such as greenhouses or general plant-lovers. +It can automate the job of taking care of plants and crops and making it easier for the owner. + +https://create.arduino.cc/projecthub/Rick_Findus/arduino-sunflower-c4fd84 + +https://www.youtube.com/watch?v=wpXGk5ttp_4 + +https://www.youtube.com/watch?v=IcH-Ear9VVA + +https://create.arduino.cc/projecthub/Arca_Ege/how-to-use-servo-motors-with-arduino-b02bed + + +## Agent +Explain the characteristics/attributes of your agent, what makes it an agent (within the discussed course content), what makes it rational, what type of an agent it is, and what is its environment task (PEAS). + +One characteristics of our agent is that it is reactive to the environment, specifically +the light in the environment. It also has an attribute that turns a light on when the +flower is looking for light. Our application is rational because the servo motor moves +the flower to the best possible location to keep it living. Our application is a goal based +agent because it has only one job which is finding light and moving the flower towards it. +Our environment task falls in the S category which is 'sensors'. We use 2 photoresistors +which are sensors that detect light in the environment. + +## Challenges and Learning Experiences +Discuss any challenges you have encountered during the work on this lab and describe what have you learned. + +During the work of this lab, we encountered many challenges. We have never worked +with this kind of hardware before and it was challenging to learn all of the concepts +of the bread board and Arduino uno board. We learned about the different power outlets +on the uno board and how to connect a servo motor to both boards. We also learned +how Photoresistors and small light bulbs worked and how they gained their power. + +## Ethical Benefits and Implications +In this section, drawing on class discussions and readings, answer the following questions + +1. What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +We can envision greenhouses using this application because it can twist and turn flower +pots towards the light so that workers do not need to take the time to make sure they are +facing the light. Different environmental study groups and organizations can also +use this application with crops in order to help farmers. + +2. Who are the intended users of this technology? + +Greenhouses, farmers, environmental study groups are all intended users of this +technology. + +3. Who is not supposed to use this technology? + +People that are not involved with studying the environment or that do not grow +plants or crops are not suppose to use this technology. + +4. How can the application developed in this lab cause harm? + +The application can cause harm by killing the flowers or crops by giving them +too much light that is not needed. The application could cause the flower to +turn towards very harsh and bright light that is not healthy for it. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +A solution to avoid and fix the harm is a timing feature that only turns the +crops and flowers towards the light for a fixed amount of time. This way the +workers or famers could set the desired light for each item and that way it would +not be harmed. + +## Team Work +Describe the details of your team working strategy, specifically explain how did you complete this work as a team and describe the specific contributions of each team member. + +During this project, we both met to work together. One of us would be explaining +directions and the other would be plugging in cords or connecting features. There were +a couple of instances where our schedules clashed and we had to work individually. During +these times we would work individually and then meet up to explain what we have learned +and what strides that we had finished. diff --git a/resources/sample_md_reflections/cs310_lab01/reflection11.md b/resources/sample_md_reflections/cs310_lab01/reflection11.md new file mode 100644 index 00000000..0643f695 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection11.md @@ -0,0 +1,79 @@ +# Report by + +## Timeline + +| Status | Timeline | Tasks | +| :-: | :-: | :-: | +| [X] | 1 / 26 | Planning Completed +| [X] | 1 / 28 | Hardware Constructed / Core Algorithm Developed +| [X] | 1 / 30 | Code Heavily Developed / Project Nearly Completed +| [X] | 2 / 2 | Code Review Corrections +| [X] | 1 / 4 | Writeups and Reflections Completed +| [X] | 2 / 6 | Project Fully Completed (For the purposes of this lab) + +## Hardware + +- 1 x Arduino board +- 1 x small Bread Board +- 1 x Rotation Sensor +- 1 x Small Button +- 1 x Buzzer +- 4 x Green LED +- 4 x Blue LED +- 9 x Resistor (Minimum) + +## Arduino Project + +The application that was designed tries to guess a sequence of on/off states for +four led lights. For the application to work correctly a user input is needed in +the form of the rotation sensor and the button. The input given by the user tells +the application how much of the sequence it got correct, and based on that input +the application intelligently adapts its guess. This application is useful as it +is exploring adaptive algorithms to their respective inputs and expected inputs + +## Agent + +Our agent is composed of the Led Lights, the Rotation sensor, the small button, +and the buzzer. This agent is rational as it adapts its answer differently depending +on the input it is given. + +P: How fast the agent can guess the correct sequence + +E: The computer, and outside inputs + +A: Led Lights + +S: Rotation Sensor, Button + +## Challenges and Learning Experiences + +C++ had given us some issues due to the language not being able to return arrays, +so we would have had to use pointers instead. To fix this issue we made the variables +we used global instead despite it being bad practice. Wes learned a lot about Arduino +as he had no experience with it before this lab. + +## Ethical Benefits and Implications + +As this is the most basic of learning algorithms that would be developing this +as there are already better and much more useful learning algorithms out there. + +Learning algorithms are in everyone's pockets today, and there are applications +like this for everyday life. + +Anyone with malicious intent. + +Our application is not capable of causing any real harm, other than some slight +eye irritation due to the bright LEDs + +Resistors to lower the brightness, and mindful programming to prevent an application +like this from being so open ended. + +## Team Work + +X worked on the algorithm as well as correcting Travis build errors. + +Y worked on some of the basic code and converting the java algorithm to C++. + +Z worked on the wiring of the agent, the demo mode, and the writing. + +## End diff --git a/resources/sample_md_reflections/cs310_lab01/reflection2.md b/resources/sample_md_reflections/cs310_lab01/reflection2.md new file mode 100644 index 00000000..f9ddbe74 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection2.md @@ -0,0 +1,122 @@ +# Report by + +## Planning, due on January 27th, 2020 by 11am + +### Timeline + +| Timeline | Tasks | +| -----------| ----------- | +| dates | task 1 | +| 1/27 | Planning +| 1/30 | Start Code +| 1/31 | Finish Code +| 2/3 | Test Code +| 2/4 | Finish Report +| 2/7 | Make final changes to lab + + +### Hardware + +- Arduino board +- in an itemized list, specify specific sensors, motors, etc. to be used in your project +- Bread board +- Highlight LED +- Digital Light Sensor +- Hard Jumper Wire +- Power supply/USB Cable +- DuPont Line + + +## Arduino Project + +Describe the application you have chosen to develop and provide a motivation for why it is a useful application. Include references of all sources you have used throughout this project (URLs are sufficient). + +I have chosen to create an application that consists of LEDs and a light sensor. I originally was working with just two LEDs and two light sensors. My +intial intention was to have the two lights sensors turn the LEDs on and off by detecting if light was there or not. I would have designed to do +the opposite fuctions. However, I did not have all the parts to assemble this kind of project. Instead, I took my initial idea and combined it with +another source that I found on Youtube. In this other project they had a series of LEDs that had a siren like affect. One LED would turn and then off, and +this step would repeat in the next LED and so on. In my application, I added one light sensor and some more code to see how the two projects would work +together. When the lights sensor detects that there is no light, the LEDs will turn on and do the siren pattern. This is a useful application because +it can be used for caution or alert warning. For example, when it dark outside LEDs can be turned on so that people and cars can see where certain +objects are in the environment around them. + + +## Agent + +Explain the characteristics/attributes of your agent, what makes it an agent (within the discussed course content), what makes it rational, what type of an agent it is, and what is its environment task (PEAS). + +In my agent I have a series of LEDs that blink one after another like a siren. The next part to my agent is the light sensor, which detects if there is light +in the environment. The reason that my agent is rational is because it can be used for safety measures. The LEDs act to alert everyone that surrounds +them. When there is no light or when it is dark, the light sensor will send the signal to each of the LEDs and will turn them all on. The specific environment could +be located on freeways, police cars, and airplanes that are flying. In all of these environments, the application's main job is to alert people and keep everyone +cautious and safe. + +Below is a picture of how my application actually looks: + +![Logo](projectPic.jpg) + +In order to run this application you have to set the hardware as follows: + +1. You need a 5V battery or equivalent power source +2. You need to connect your power source to the UNO R3 board +3. Next, you will need several pieces of standard wire that will be connected on the digital side of the UNO board to the bread board. +4. Connect one end of the LEDs on the positive side of the bread board and the other in the neutral area. +5. Each wire should be lined up with one LED +6. Lastly connect the digital light sensor the UNO R3 board. You will need to connect the VCC wire to the 5V power source, the ground wire to the GND port on +the board, and the DO wire the the positive side of the bread board that the LEDs are on. + +## Challenges and Learning Experiences + +Discuss any challenges you have encountered during the work on this lab and describe what have you learned. + +While I was working on this lab I ran into a few challenges. One of the main challenges I had was working alone. +The schedule that I have this semester is difficult to work around, which made finding time to do this project +much harder. I also had to deal with learning how to use Arduino all by myself and had to develop a project +on my own with no one to collaborate with. The next challenge I had was finding a project that was doable in +terms of hardware. I struggled for about a week trying to find a project where I had all the pieces. In the end, +I had to change my project because I just didn't have one piece that I really needed. After doing this lab I +have learned that working in groups really does make a difference. Collaboration is key when it comes to +computer science. + +## Ethical Benefits and Implications + +In this section, drawing on class discussions and readings, answer the following questions + +1. What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +Any organization that has to take safety or cautious measures will use an application that is similar to the one that I have +developed in this lab. For example, air planes use blinking lights in the sky to alert other aircrafts. Another example can +be the police. There are many instances where police are involved and they have to block of certain areas to keep the surrounding +public safe. + +2. Who are the intended users of this technology? + +This type of technology is for people who are trying to make the environment around them a safer place. Anyone +who has to take safety measures will use this type of software. + +3. Who is not supposed to use this technology? + +This technology is not suppose to be used by people who will abuse it. In the past there have been cases where blinking +lights have actually caused harm to the public. One example is when a person shined a laser up into a pilot's eye while +he was flying. This can be very dangerous and can have many consequences. + +4. How can the application developed in this lab cause harm? + +The application involves LEDs or lights, and even though they are meant to make people be more aware, they can also +distract them as well. LEDs can hinder the performance of drivers if someone is intentionally shining them at people. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +One solution that can be implemented to avoid the situation that is described above is to only sell higher quality LEDs +and software to corporations that really need them. LEDs that are used by police and airplanes cost millions of dollars +already, so, cost can be another solution to stopping people from abusing them. + +## Team Work + +Describe the details of your team working strategy, specifically explain how did you complete this work as a team and describe the specific contributions of each team member. + +The entire lab was complete by myself, but I had a specific plan that I followed. I knew that working on this lab would +require a significant workload because of the research. I needed to manage my time so that I could not only program the +hardware, but do the necessary research to learn how to use Arduino. I made sure that I understood the type of project +that I was developing. This in end helped me work around not having a group because I was already confident enough +knowing what I was going to do. \ No newline at end of file diff --git a/resources/sample_md_reflections/cs310_lab01/reflection3.md b/resources/sample_md_reflections/cs310_lab01/reflection3.md new file mode 100644 index 00000000..f3646b3a --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection3.md @@ -0,0 +1,106 @@ +# Report by + +## Planning, due on January 27th, 2020 by 11am + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| January 27, 2020 | Specify hardware components | +| January 31, 2020 | Project walkthrough | +| February 7, 2020 | Complete Arduino project and technical writing | + +### Hardware + +- Arduino board Uno +- Breadboard +- Arduino buzzer +- Led lights +- Resistors +- Male/Male jumper wires +- PIR sensor +- Image of all parts assembled: + ![](assets/report-3d781781.png) + +## Arduino Project + +The project we have chosen to develop is an agent that is able to detect motion +with the use of an PIR sensor. Once the sensor detects any sort of motion it +will make a buzzer and LED light turn on as visual and audible indicators that +motion is present. This agent we chose to develop is very similar to an alarm +system but on a smaller scale. The reason this application is useful is because +it is very useful in the real world. It is useful because it reacts very +similar to an alarm system that is in place in cars and even homes around the +world. Sources that were used:[], +[], +[]. + +## Agent + +The main characteristics of our agent is to detect any sort of motion then +react by displaying an LED light as well as audible outputs through the use of +a buzzer. What makes it an agent is the ability for it to make appropriate +choices given physical inputs. It is also an agent because it is able to react +to the environment, our agent is able to react by producing visual and audible +outputs. The aspect that makes our agent rational is that it only reacts to the +environment once motion is detected, if no motion is detected then nothing will +happen. Our agent is considered a simple reflex agent. The Performance measure +for our agent is successfully detecting motion and outputting visual and audio +cues. For Environment, it would be class rooms and laboratories. The Actuators +are the buzzer module and LED light. The Sensors consisted of the PIR motion +sensor. + +## Challenges and Learning Experiences + +During this lab we encountered many different challenges that posed as really +valuable learning experiences. One of the main challenges that we encountered +was enabling all of our modules and sensors to operate correctly without any +errors. This was a challenge because at first we were able to get each module +to operate correctly on its own but once we started to add all the modules and +sensors together to create an agent most of them did not function properly. +What these challenges taught us was to utilize different resources to do more +research which helped us debug the problems that we encountered. + +## Ethical Benefits and Implications + +- What entities, businesses, organizations do you envision developing the type + of the application you have chosen to develop? Some entities that I envision + that would develop this type of application is organizations that utilize + alarm systems in their products or offer security services for clients. + Although our agent is on a very small scale it has similar features to alarm + systems that are currently in the market today. + +- Who are the intended users of this technology? The intended users of this + product are individuals that own a home or need to establish a simple alarm + system for their personal use. For instance, an individual would be able to + place this agent by a door and if it detects motion it will then beep + notifying the owner of the house that someone is present. + +- Who is not supposed to use this technology? This technology is intended to + be used by everyone but some people that are not supposed to use this + technology is individuals that could take advantage of it. For example, if a + potential intruder get a hold of this technology then they could potentially + examine the technology and find a solution to bypass each of the modules and + sensors to deactivate our agent. + +- How can the application developed in this lab cause harm? This application + developed in this lab could potentially cause harm from the buzzer module. The + only way the buzzer could cause any sort of harm is the frequency that it + emits. The tone of the buzzer could potentially damage an individuals hearing + although it is very unlikely. + +- What solutions could be implemented to avoid the harm or to fix the harm + described above? A solution that could be implemented to avoid harm is + possibly utilizing a buzzer module that emits a quieter tone that is safe + for all individuals. Another solution is to reduce the buzzer volume in the + source code. + +## Team Work + +During this project we implemented many different team working strategies to +complete this assignment. During the first part of the assignment we conducted +research together to find an interesting project that could be achieved with +the resources given to us. Once we selected a project we began to assemble the +hardware as well as develop source code for the agent. When it came to writing +the report we split up the amount of work evenly by giving certain sections to +one person and the rest to the other member of our team. diff --git a/resources/sample_md_reflections/cs310_lab01/reflection4.md b/resources/sample_md_reflections/cs310_lab01/reflection4.md new file mode 100644 index 00000000..197dd9fe --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection4.md @@ -0,0 +1,98 @@ +# Report by + +## Planning, due on January 27th, 2020 by 11am + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| Jan 27 | Planning | +| Jan 31 | Material received | +| Feb 3 | Wheels and motors assembled | +| Feb 5 | Wires, battery, and Bluetooth assembled | +| Feb 6 | Attempted to upload working code. | +| Feb 7 | Turn in Lab. | + +### Hardware + +- Arduino board +- Transistor +- Diode +- 2-4 Motors +- Motor Drive Shield +- Bluetooth Module +- Chassis and wheels +- Bread board +- Various wires + resistors + +## Arduino Project + +Our motivation for this project was to create a "smart" car. We draw inspiration +from a project on the Arduino website. +This link helped us to figure out how to create the build. + +this link gave us the initial inspiration for the project. + +## Agent + +Our car is a simple reflex agent that we plan to sophisticate further. The performance +of the car is to drive straight, its sole mission is to keep moving forward at all +costs. The environment that we would require of this agent consists of an open arena, +a straight track with no obstacles to impair the agent. The actuators of the car +consist of the hardware, the connection of motor to wheel, and battery to motor. +The interaction between these components as triggered by the Arduino board is what +allows our car to move. Currently, the sensors of our car is very limited, which +is why such a controlled environment is required. As we move forward with the car, +however, we will be installing a simple sensor that causes the car to turn when +it detects a wall in front of it. This sensor will allow the car to operate in a +much more dynamic variety of environments. + +## Challenges and Learning Experiences + +We have struggled throughout every process of this project. From the moment we tried +to test the arduino board to flicker a light to our "smart" car that runs aimlessly +in a circle only to stop after it gets tired. Our first road block was assembling +the car. We had problems with wiring the car, and we had to look through several +circuit modules and videos to see where which wire goes to which port. Our second +road block after assembling the car, was uploading code. For some reason, we were +unable to upload the code while the motor drive shield was connected to the arduino +board, so we took it off and voila, one of the motors started moving. Having only +one motor run was not the expected outcome, but nonetheless was an exciting feat. +For some reason the motor would only spin when it was connected to the laptop, and +we assumed it had to do something with the amount of energy going through the motors. +However, we found that there was some resistance in the wheels preventing them from +spinning. Once we got those removed, we had all four wheels turning, but then would +eventually stop for what we assume is a lack of power. Our last road block is something +we cannot confront. Our idea for this car is to have an application on a phone to +send commands for the car to execute. However, the bluetooth module we received +only works for android phones, and even though we downloaded an emulator on the +laptop, there was no way to connect the bluetooth. + +## Ethical Benefits and Implications + +This "smart" car could be useful for many different implementations. It could be +used for an Amazon warehouse, where it can carry heavy boxes in a predetermined +path. Or in a more controversial use, it could be used in military fashion for strapping +an explosive and sent in a predetermined route. +This machine could be used for many various purposes. Each user can use this car +for whatever their intended purpose could be. I believe this machine is not something +that is groundbreaking, but would be used for convenience. +I don't think there is a specific type of people who are not supposed to use this +technology. Like discussed previously, it could be used for malicious intentions. +However, this is something that is so accessible that if someone were to use it +for their malicious intention, it would already be developed. +The only harm this application can cause is the purpose of that application. If +the purpose of the application is to cause harm, it would cause harm. +We suppose that to avoid harm for this application is to implement universal access +to each machine with a key system for multiple people in power. For example, if +the machines go awry, two or three people of power can execute a kill switch to +prevent from further damage or harm. + +## Team Work + +We collaborated effectively on this project. Both of us showed up during lab time, +and we operated simultaneously on the car. This meant that while one of us was +soldering, the other would be ensuring that the wires were positioned correctly. +While one of us was assembling the car, the other would be looking at the next steps +of assembly. While one of us was coding the car, the other would work on the descriptions +in the reflection. Overall we successfully divided the labor within this project. diff --git a/resources/sample_md_reflections/cs310_lab01/reflection5.md b/resources/sample_md_reflections/cs310_lab01/reflection5.md new file mode 100644 index 00000000..4e036d04 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection5.md @@ -0,0 +1,60 @@ +# Names + +## Planning, due on January 27th, 2020 by 11am + +### Timeline +| Timeline | Tasks | +| ----------- | ----------------------------------------------------------- | +| 1/27/20 | Get materials, pick a car, choose our final concept for the | +censors with interactive lights and sounds.| +| 1/31/20 | Figure out timing for lights, buzzer frequency, working distance | + sensor, and maybe wheel movement | +| 2/5/20 | Have the car working will all features. | + + +### Hardware +* Arduino board +* Green, Yellow, and Red LED Lights +* Infrared Distance Sensor +* Bread Board +* Buzzer Module +* Orange Circuit +* Black Circuit +* Wheels +* Motor +* Car Chassis + +## Arduino Project +We want to develop a project where a car is able to avoid hitting objects using a distance censor. This car will have music playing, using the buzzer, and will have lights that indicate the state of the car. When the car is moving and there is nothing in its path, the green LED will be activated. Once the car approaches an object the yellow LED will activate, and the music from the buzzer will stop. If something catastrophic happens, such as the car hitting an object, the red LED will be activated. + +## Agent +The agent in our project is the car, which would be characterized as a simple reflex agent. It is a simple reflex agent because because the sensor tells what to do and not to do, and will plan its next action based on the sensors. The input would be the distance sensor, and output would be the buzzer, lights, and wheels. What makes our proposed agent rational would be its path finding system. In mdl writing/report.md this path finding system it will search the area for the longest clear path and will then move in that direction. + +## Challenges and Learning Experiences +We have encountered countless challenges during this lab, mainly involving hardware issues involving the actual setup of the car. During this lab we generally expected more software issues, but as mentioned previously, most of the issues were with the hardware, starting with getting the car parts and figuring out what we needed. Once that was established, we had many struggles with getting the motor to run. Once we finally figured out how to connect the wires to the Arduino board, we realized we had to solder the wires to the motor. Over the course of this lab, we learned a lot about arduino and breadboard. We all came in with different knowledge, and all contributed in the best ways we could. + +## Ethical Benefits and Implications +Q) What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +A) If this project were to be developed by a real-life business, organization, or entity, several parties that might be interested in developing such an application would include private sector entities such as self-driving companies (e.g., Uber, Lyft, and Google Waymo), traditional automobile companies with self-driving divisions such as Volvo, Mercedes-Benz, and BMW, as well as public sector entities such as military organizations for different nations around the world (e.g. The U.S. Army). + +Q) Who are the intended users of this technology? + +A) The intended users of this technology would essentially be anyone who drives, or wants to drive. This technology is inclusive of any demographic who wishes to drive a self driving car. + +Q) Who is not supposed to use this technology? + +A) This technology is inclusive of all demographics, however it may be limited to people who do not have a driver’s license, people with serious health conditions, people who may be too old to drive, or people who are not legally permitted to obtain/possess a driver’s license. + +Q) How can the application developed in this lab cause harm? + +A) There are several scenarios in which a self driving car could cause harm, the most obvious being some kind of error or bug occurring where passengers and pedestrians’ lives are in danger. Additional errors could include those arriving on the hardware side of the application as well. For example, in a real self-driving vehicle, tire deflation's and airbag failure among other issues could contribute to the danger (and possible injury) of those both inside and outside of the vehicle as well. One issue that has also been commonly brought up when referring to the safety of self-driving vehicles is their vulnerability to hacking as well. + +Q) What solutions could be implemented to avoid the harm or to fix the harm described above? + +A) While some issues are certainly more difficult to deal with than others (e.g., bugs inherent to the self-driving program), software that could perform vehicle safety checks (such as those currently being employed to detect tire air pressure) could possibly help prevent issues on the hardware side of a self-driving application. Additionally, anti-virus software could also be provided to new purchasers of self-driving vehicles to ward off the potential of their vehicle being hacked by malicious actors during their time with the vehicle. + +## Team Work +Describe the details of your team working strategy, specifically explain how did you complete this work as a team and describe the specific contributions of each team member. + +We all learned along the way and would work together on almost every aspect of the project. We had many group meetings and sometimes got a lot of work done, and sometimes, were not able to accomplish as much as we would have liked. diff --git a/resources/sample_md_reflections/cs310_lab01/reflection6.md b/resources/sample_md_reflections/cs310_lab01/reflection6.md new file mode 100644 index 00000000..2745ac85 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection6.md @@ -0,0 +1,164 @@ +# Report by + +## Planning, due on January 27th, 2020 by 11am + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| 1.28 | make sure get all needed parts | +| 1.29 | start adding humidity sensor | +| 1.31 | start adding the second sensor | +| 2.3 | start adding the third sensor | +| 2.5 | start adding the audio output | +| 2.6 | find a plant and conitue working on the output | +| 2.7 | finish | + +### Hardware + +- Arduino board DUE + +- humidity, temperature, light sensor, audio player, micro sd card..etc + +`https://maker.pro/arduino/projects/arduino-audio-player` + +## Arduino Project + +Describe the application you have chosen to develop and provide a motivation for +why it is a useful application. Include references of all sources you have used +throughout this project (URLs are sufficient). + +The project I designed suppose to build a refelx agent, talking plant, by reading +in several values through temperature sensor, humidity sensor, light intensity +sensor, and sound sensor. The SD card would store some `.wav` audio files. These +audio can be played through the speaker when certain conditional logic has met. + +## Agent + +Explain the characteristics/attributes of your agent, what makes it an agent +(within the discussed course content), what makes it rational, what type of an +agent it is, and what is its environment task (PEAS). + +As a relex agent, my talking plant uses Sound, Light, Humidity, Temperature as +inputs, and different audio sounds as outputs. + +Input Section source code: + +``` + int light_value = analogRead(lightsensor); + int sound_value = analogRead(soundsensor); + int humidity_value = analogRead(humiditysensor); + sensors.requestTemperatures(); //Collecting temp data +``` + +Output Section 1: in text: + +``` + light = light_value * 0.0976;// percentage calculation + Serial.println("___________________"); + Serial.print("Light="); + Serial.println(light); + Serial.print("Sound="); + Serial.println(sound_value,DEC); + Serial.print("Temperature="); + Serial.println(sensors.getTempCByIndex(0)); + Serial.print("Humidity="); + Serial.println(humidity_value); + Serial.println("___________________"); +``` + +Output Section 2: in audio: + +``` + if (light >= 100) { + Serial.println("Uhh it's too much light!"); + // open wave file from sdcard + File myFile1 = SD.open("toomuchlight.wav"); + playmusic(myFile1); + } + else if (light < 10) { + Serial.println("Uhh it's too dark!"); + File myFile2 = SD.open("notenoughlight.wav"); + playmusic(myFile2); + } + if (sound_value < 500 || sound_value > 1000) { + Serial.println("I hear sound!"); + File myFile3 = SD.open("hearsound.wav"); + playmusic(myFile3); + } + if (sensors.getTempCByIndex(0) != -127) { + Serial.println("I feel temperature!"); + File myFile4 = SD.open("fixedbug.wav"); + playmusic(myFile4); + } + if (humidity_value > 100 ) { + Serial.println("That's enough, that's enough!"); + File myFile5 = SD.open("toomuchwater.wav"); + playmusic(myFile5); + } + if (humidity_value > 50 && humidity_value < 100) { + Serial.println("I got some water!"); + File myFile6 = SD.open("water.wav"); + playmusic(myFile6); + } +``` + +The use of conditional logic allows my agent to make rational decisions. +With a specific input, it will provide a specific output. The in text output +in depends on all input values read by sensors. The audio output will occur +when some of the input values make expected changes. + +## Challenges and Learning Experiences + +Discuss any challenges you have encountered during the work on this lab and +describe what have you learned. + +The engineering part is more difficult than the coding part especially when I +have some background in C already but have no background in electrical +engineering. I have faced severl difficulties when I am trying to connect parts +to the arduino board. The wires have different types such as GND, Power, Signal, +and I have to search online to find for a specific part and the wire setting for +this part. Additionally, I realize the Micrio SD Adaptor I have is not the one +for arduino, it is for PC or other product which can read in chips. Therefore, +I could not connect audio file I have stored in the Micro SD card to the arduino +board. The temperature sensor also has some problem. It seems like many people +also faced the issue of using temperature sensor on Arduino DUE, such that the +value will always be -127 and it would not change. However, some people got it +work. + +## Ethical Benefits and Implications + +In this section, drawing on class discussions and readings, answer the following +questions + +1.What entities, businesses, organizations do you envision developing the type of +the application you have chosen to develop? + +The environmental science would like to use this for researching. In agriculture, +it can be used for warning the farmers especially some plants are very sensitive. + +2.Who are the intended users of this technology? + +Farmers, households who is interested in having plants at home, ES researchers. + +3.Who is not supposed to use this technology? + +People who is allergy to plants and do not want a plant. + +4.How can the application developed in this lab cause harm? + +It is difficult to cause harm since it only has limited ability. However, if people +who is not supposed to use it and still used it, it may cause harm. + +5.What solutions could be implemented to avoid the harm or to fix the harm described +above? + +Warning sign to not allow people who has allergy to use. + +## Team Work + +Describe the details of your team working strategy, specifically explain how +did you complete this work as a team and describe the specific contributions +of each team member. + +I don't have any other team members. diff --git a/resources/sample_md_reflections/cs310_lab01/reflection7.md b/resources/sample_md_reflections/cs310_lab01/reflection7.md new file mode 100644 index 00000000..ab6bb155 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection7.md @@ -0,0 +1,104 @@ +# Report by + +## Deadline for the proposal is January 27th + +### Timeline + +| Timeline | Tasks | +| ------------------- | ----------- | +| 1/29 - Wednesday | Draft of code for both agent (the parking aid) | +| 1/31 - Friday | Code review and start working on hardware | +| 1/3 - Monday | Finish building the agent | +| 1/5 - Wednesday | Significant progress: to the point of completion. | +| 1/7 - Friday | Completely done the Project, report submitted | + +### Hardware + +- Arduino UNO & Genuino UNO (1) +- PIR Motion Sensor(generic) (1) [link](https://www.sparkfun.com/products/13285) +- buzzer module (1) +- Jumper wires(generic) (8) + +## Arduino Project + +Create a prototype of the parking aid with main focus on motion detection. When +motion is detected the LED starts blinking and the buzzer goes off, when there +is stillness the agent doesn't take any action. + +## Agent + +We think that our device is an Agent because it has characteristics that object +doesn't have. Such as: it exhibits autonomy, it has control over its state and +behavior and there is no outside intervention. It is goal-directed(detect motion) +and reactive(make signal once detected). We think that this is a good representation +of simple reflex agent. There is an agent and an environment. The agent has sensor +(PIR motion sensor) to answer the question what is the world like now? It has +condition-action rules, based on that the agent makes decision: Signal when there +is a motion, no signal when no motion is detected. We consider this system rational, +since it does "right thing" based on given situation. Where "right thing" is whether +to take action or not, and the given situation can be motion or stillness. + +PEAS: + +- Performance measure: safety, precision, correctness +- Environment: car parks, streets, garage +- Actuators: LED, buzzer module +- Sensors: PIR motion sensor + +## Challenges and Learning Experiences + +We faced many challenges in this lab. The first challenge was getting the Arduino +Uno to function with the code we were uploading. We first had some faulty hardware +and had some incorrect connections to and from the board. Once that was fixed we +were still having the same issue so we switched from our laptops to the desktops +in the lab as these have the Arduino program installed so we could use this instead +of the web application. These changes helped us get the Arduino Uno to function +correctly with our code. Another issues we can into was with the PIR sensors. +The first sensor we trying to use was not displaying it was working so we switch +to another sensor that was a bit less complex and it work just fine so we went +with it. The last issue we had was with the buzzer module. We got it to come +on correctly but after the sensor and leds cut off it would still make noise so +we decided not to use the buzzer, just the leds. + +## Ethical Benefits and Implications + +What entities, businesses, organizations do you envision developing the type +of the application you have chosen to develop? + +- Parking garage companies could use this to stop accidents occurring in their + parking lot +- Home security systems could use this to ward off intruders + +Who are the intended users of this technology? + +- People that have a fear of getting into accidents while parking +- People that have a fear of home invaders +- People that live in crime sensitive neighborhoods + +Who is not supposed to use this technology? + +- People that have do not have a fear of getting into accidents while parking +- People that have do not have a fear of home invaders +- People that do not live in crime sensitive neighborhoods + +How can the application developed in this lab cause harm? + +- It may cause people to be too comfortable while parking. It should be used + as an aid not a replacement for normal safety precautions. +- Home invasions can still happen. You still need other measures to keep your + house safe. + +What solutions could be implemented to avoid the harm or to fix the harm +described above? + +- Give a precaution on the box to only use this product as an aid, not a + replacement + +## Team Work + +We all worked together to get the task accomplished. If something needed to be +fixed or something needed troubleshooting we all tried to figure out the issue +together until it was resolved. As far as the planning we all looked for a +project until we all agreed on one as a group. Overall we functioned as a team, +no one did one part on their own or did not carry as much responsibility. If +something needed done we worked as a team to accomplish the task. diff --git a/resources/sample_md_reflections/cs310_lab01/reflection8.md b/resources/sample_md_reflections/cs310_lab01/reflection8.md new file mode 100644 index 00000000..94092a16 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection8.md @@ -0,0 +1,189 @@ +# Report by + +## Planning, due on January 27th, 2020 by Midnight + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| Mon, 1/27/20 | Determine Project Direction | +| Thu, 1/30 | Determine Hardware Design | +| Fri, 1/31 | Finalize Project Ideas/Components | +| Fri, 1/31 | Finalize Hardware design and begin code | +| Tue, 2/4 | Complete Code Implementation | +| Thur, 2/6 | Test the Tool| +| Fri, 2/7 | Finalize Project| + +### Hardware + +Tentative Components Needed: + +- Arduino board +- Breadboard +- LED Lightbulbs + - Preferably with some different colors. +- Buzzer +- Buttons (2-4) + - EX: SparkFun Pushbutton switch 12mm +- Jumper wires (generic) +- Resistor 10k ohm +- Display of some sort + - SparkFun 7-Segment Serial Display - Red + - Preferably a 4-digit display +- Jumper (Busbar), Jumper Leads Set +- PCBWay Custom PCB + +## Arduino Project + +For our Arduino project, we have decided to create a scoreboard using a serial +display board, a breadboard, lightbulb, and Arduino Uno. After searching for +projects online nothing interested our group until we stumbled upon a +Scoreboard project. Our group then decided making a scoreboard would be both +interesting and fun, likely because our group is made of athletes, and then +began to research the necessary components such a project would need. We were +motivated to pursue this project for a variety of reasons. For one, our group +is made of athletes, meaning we regularly interact with scoreboards. +Additionally, we thought a scoreboard would be a good application idea to show +what Arduino can do and also to help us learn more. Also, scoreboards are +always needed in the niche market of sports, meaning the project has real-world +relevance as scoreboards are used around the world every day. The scoreboard +will operate with a score on each side of the 4-digit display. When a team/ +player's specified button is pressed then their respective score will be +updated. Our team considered using a light sensor, which would update the score +when it cannot see light (such as when a basketball entered the basket and +triggered the sensor, indicating points have been scored) instead of a button +for more automation, but ultimately ran out of time to do so. + +![Schematic](schematic.png) + +There were a number of references that were useful for our group as we +completed this laboratory assignment: + +- [LED bulb tutorial](https://www.youtube.com/watch?v=KLaCWez9M84) +- [Push button reference](https://wiki.dfrobot.com/DFRobot_Digital_Push_Button_SKU_DFR0029) +- [Scoreboard tutorial](https://www.hackster.io/silicioslab/creating-an-electronic-scoreboard-with-arduino-936037) +- [4-Digit Display Documentation](https://media.digikey.com/pdf/Data%20Sheets/Sparkfun%20PDFs/Using_the_Serial_7-Segment_Display_Web.pdf) +- [Help with software serial issues](https://arduino.stackexchange.com/questions/4580/error-sofwareserial-does-not-name-a-type) +- [Image referenced for button connections](https://s3-ap-southeast-1.amazonaws.com/ima-wp/wp-content/uploads/sites/5/2017/03/10134729/IMG_2098.jpg) +- [4-digit display setup video](https://www.youtube.com/watch?v=iZI1GjCvIiw) +- [Repository with examples/documentation of how to use 4-digit display](https://github.com/sparkfun/Serial7SegmentDisplay) + +## Agent + +Our scoreboard display shows a handful of characteristics that make it an +agent. Although it does not meet all the criteria for an agent, our Arduino +scoreboard would still be considered an agent. First, it is reactive to a +stimulus, which happens whenever the user pushes the buttons which ups the +score displayed on the screen. On the scale of agent types, our agent would +fall under a simple reflex agent because it only responds when the buttons are +pushed and does nothing else. Additionally, our agent is rational because it +maximizes the expected value, in this case by simply updating the score +successfully. Simply put, the scoreboard does the right thing given what it +knows, which would be the buttons being pressed by who is controlling the +scoreboard, making it rational. Concerning PEAS, our agent meets these +criteria. Performance measures would include the display (if it is being +displayed correctly) and safety. The environment could take on a variety of +different forms including indoor or outdoor settings, professional or amateur +settings, basketball courts, hockey rinks, soccer fields, football fields, and +more, due to the widespread use of scoreboards in sports. The agent's actuators +would include the 4-digit display and the lightbulbs that light up when goals +are scored. On the other hand, sensors would include the buttons (and the light +sensors that were previously mentioned if they would have been used). + +## Challenges and Learning Experiences + +During this lab, the first challenge we faced came in the form of shipping +delays. Our scoreboard did not come in until the day of the status update, +therefore we could not begin real work outside of research for our project +until about a week into the project. This challenge set us behind on asking for +additional help and working on the implementation more quickly. The second +challenge we faced was that no one in our group has had any prior experience +with regards to Arduino, specifically configuring or coding, so it was a bit of +a learning curve for us to begin with. So when we started behind with our +limited knowledge it took more time for us to begin learning how to do it and +we needed to watch many examples. Additionally, it was even challenging to get +the 4-digit serial display to power on, much less use it, because of mediocre +documentation resources about it. The final challenge we faced was perfecting +our code, as we ran into a number of bugs and small mistakes that were hard to +notice because of our lack of Arduino knowledge, so it worked perfectly. For +example, we had broken if statements because we did not realize that we were +comparing integer and byte types. Once we learned how to do the base program +figuring out the code for the implementation we needed and wanted for our tool +was difficult to find. It took a lot of looking at code and retesting to get +the output we wanted. Overall, our group learned a lot, including how to +configure basic Arduino hardware, how basic agents function and their +characteristics, and also how to program in the Arduino language. + +## Ethical Benefits and Implications + +1. What entities, businesses, organizations do you envision developing the + type of the application you have chosen to develop? + + Some businesses, entities, and organizations that might need this application + are professional sports organizations such as the NHL, NBA, NFL, and many + others not listed. They could use this technology for the scoreboards inside + their arenas so the fans know the score of the game. Casual athletes or youth + sports leagues could also keep track of the scores of their recreational + games. Also, another entity that our project could be applied to would be for + speed enforcement signs. Blinking speed signs help people see the speed limit + in the night to make it easier to see in the dark. + +1. Who are the intended users of this technology? + + The intended user of this technology is both fans of going to live sports + events and companies that own any sort of sports arena from big pro teams to + neighborhood rinks. The fans will be one big user because during the game + everyone turns to look at the scoreboard to check the time left and who is + winning. Also, the owners of rinks need these because they can not be used + for games if there is no technology to display the time and score. Therefore + it is a very niche market but is something that will be needed until new + technology is developed. If the scoreboard is small like ours, the intended + users would likely be recreational sports enthusiasts who want to keep track + of the scores of their own games. That being said, professional sports + leagues also use scoreboards and they would be another potential user of this + technology. + +1. Who is not supposed to use this technology? + + People who want to unethically alter the state or score of a game should not + use this technology. For example, a timekeeper could unethically put an + incorrect score on the board for personal gain and such a person should be + barred from using this type of technology. This display board technology + could be used potentially in making a display time for a bomb. If this + program and technology were used by groups that make them it would be very + harmful to many people. Essentially, people should not use this technology + for unethical purposes. + +1. How can the application developed in this lab cause harm? + + It is unlikely the scoreboard itself could cause harm, unless it is faulty + which could lead to injury or the scoreboard not properly functioning. If the + scoreboard is not properly functioning, this could lead to revenue losses for + professional sports leagues and even loss of time for those in other leagues. + As we previously mentioned, the display board could be used for unethical + purposes. An application developed could potentially be used to harm people, + buildings, and other objects found in day to day life depending on where the + event happens. It would cause harm by exploding and impacting everyone near + it. + +1. What solutions could be implemented to avoid the harm or to fix the harm + described above? + + Higher standards of scoreboard testing could be implemented in order to avoid + this harm. Testing could also be implemented with our code to prevent + software issues. With regard to unethical uses of a 4-digit display and + timer, the only way I could see a solution to avoid the harm would be if only + the government had access to the board technology and were the only ones + allowed to distribute them to licensed businesses and organizations. This + would ensure a good knowledge of who all owns them could be kept by the + government. + +## Team Work + +For our team working strategy, our group met outside of the lab once or twice +every week. All of us were always present when we worked on it +and we all contributed to the project evenly. All team members did an equal +amount of work. Then once we finished our project we all picked a different +part of the report to do and divided it evenly and worked on it since we all +had knowledge of how it worked and got put together. Overall, our team worked +very well together with regards to communication and project completion. diff --git a/resources/sample_md_reflections/cs310_lab01/reflection9.md b/resources/sample_md_reflections/cs310_lab01/reflection9.md new file mode 100644 index 00000000..c6052f0d --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab01/reflection9.md @@ -0,0 +1,159 @@ +# Report by + +## Planning, due on January 27th, 2020 by 11am + +### Timeline + +| Timeline | Tasks | +| -------- | ------------------------------------------------ | +| 1/24 | Identify task and resources | +| 1/28 | Get some sort of example code working on a board | +| 1/31 | Get basic code working | +| 2/7 | Have enhancement code working | + +### Hardware + +- Arduino board +- IR Sensor +- LED +- Speaker +- Battery pack (for portability but not necessary) + +## Arduino Project + +The project we are attempting to do is to use an IR sensor to detect somebody +passing by the Arduino and then having it minimize whatever computer tab is up. +We will expand on this to have it open different applications based on other +movement instead of just closing. + +The motivation for this is that it could be helpful in protecting private +information that is being worked on. Or more +unethically, could be used for people who are procrastinating on their work. + +Our code will be based on the + + +FOLLOW UP: We could not complete this idea for our lab due to the board being +incompatible. Instead, we decided to make a small alarm system by using a +speaker and LED that go off when the IR sensor is triggered. + +INSTRUCTIONS: To run this program, you need to connect the IR sensor, the LED, +and the buzzer to the board. Then you plug the board into the computer, load +the code into the Arduino IDE, select the port for the board, then verify and +upload. + +The four connections for the IR are as follows: +Any ANALOG IN (UNO) to POWER (IR), Digital 8 (UNO) to DO (IR), GND (UNO) to GND +(IR), and 5V (UNO) to VCC (IR). + +The two connections for the buzzer: +Plug one Connection to Digital 9 (UNO) and the other to a GND (UNO) + +The LED should be plugged into Digital 13 and the GND above it on the green part +of the board. + +The picture below shows you how to set up your IR sensor. +![IR Sensor Setup](mh_sesnor_series_bb.jpg) + +The pictures below is how our board and sensors were set up although it is a bit +hard to see. +![Board Setup1](20200207_145551.jpg) +![Board Setup2](20200207_152002.jpg) + +## Agent + +Explain the characteristics/attributes of your agent, what makes it an agent +(within the discussed course content), what makes it rational, what type of an +agent it is, and what is its environment task (PEAS). + +Our agent is based on 3 key parts: The LED, speaker, and the IR sensor. The LED +and speaker both act if the IR sensor is triggered (something blocks the light). +This is considered an agent because it acts in its environment by blinking the +LED and sounding the speaker when its environment changes +(the IR sensor is blocked). This agent is rational because it has a logic that +if the light is blocked, then it activates the responses in the environment. +This agent is autonomous and reflexive. + +Environment Task: + +Performance measure: Alerting the user + +Environment: The room its in, objects in the room, how close it is to things + +Actuators: LED, Speaker + +Sensors: IR sensor + +## Challenges and Learning Experiences + +Discuss any challenges you have encountered during the work on this lab and +describe what have you learned. + +There were a multitude of challenges for this lab that we faced. The first one +stemmed from neither of us knowing how to use an Arduino. This resulted in us +having to learn about the different ports on the Arduino and how to compile and +run code it. This leads us to our next challenge, the Arduino IDE. This IDE gave +us a lot of issues, from not working on Linux at first (until a reinstall and +troubleshooting) to errors from trying to upload the program to the Arduino. +We have since figured out how to deal with the little issues that still pop up +(not finding the right port). Our main challenge however came from the fact that +we could not proceed with our original idea of minimizing applications. This was +due to the fact that the Uno board cannot be used as a keyboard and interact +backwards with a computer. The only solution to this was to either order an +entirely new type of board or to change our project. We ended up changing the +project to be something simpler and possible to be done with our board. + +## Ethical Benefits and Implications + +In this section, drawing on class discussions and readings, answer the following +questions + +1. What entities, businesses, organizations do you envision developing the type + of the application you have chosen to develop? + +We envision organizations such as banks, federal reserve, and research +facilities developing and using security systems similar to ours. Having an +infrared sensor in a security system can be very beneficial. Infrared sensors +can measure heat been emitted by an object and detect motion. Depending on the +infrared sensor's capabilities, it can detect heat from a human body. An alarm +system like ours can help enhance security systems and make it harder for +anyone to attempt any break-ins to unauthorized areas. + +2. Who are the intended users of this technology? + +From small to large businesses, homeowners, banks, and corporations are the +intended users of this technology. + +3. Who is not supposed to use this technology? + +Anyone that does not need to secure a place or business does not need this +technology. It's ideal to use a security system like ours if you are trying to +secure a home or business. + +4. How can the application developed in this lab cause harm? + +The application that we developed in the lab can't cause any harm unless we +create a highly concentrated infrared sensor into a narrow beam. The audio +system is not loud enough to cause damage to the human ear. Our application +is safe for anyone to use. + +5. What solutions could be implemented to avoid the harm or to fix the harm + described above? + +As stated in question four, our application does not cause any harm; therefore +it is not necessary to implement any solutions. + +## Team Work + +Describe the details of your team working strategy, specifically explain how did +you complete this work as a team and describe the specific contributions of each +team member. + + X did must of the +implementation of the source code since, and Y focused on the hardware part of +the lab. This strategy worked out because we had to identify sections in our +Arduino board to specify in our source code for our speaker, infrared sensor, +and led light to work correctly. When it came to debugging our source code and +fixing errors, we worked together to figured our issues and find solutions. We +think we did a great job in terms of scheduling meetings, distributing the work, +and overall communicating well. diff --git a/resources/sample_md_reflections/cs310_lab02/reflection1.md b/resources/sample_md_reflections/cs310_lab02/reflection1.md new file mode 100644 index 00000000..1814d044 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab02/reflection1.md @@ -0,0 +1,92 @@ +# Report by + +### Project Selection + +We will do 2.1 Baseball Detection and Tracking since it seems to be the most feasible with out current knowledge of OpenCV. Plus, this is probably the most useful out of the projects for detecting the path of a baseball/predicting a pitch. + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| 2/12 | Getting opencv and book code working | +| 2/21 | Get ball tracking working | +| 2/28 | Calculate speed, location, break | + + +## Learning Agent +Describe the methodology used for your learning agent (algorithms, the goals of learning, inputs, outputs, etc.) + +The algorithms used were developed by using OpenCV to create a mask, detect blobs, and add circles to detected blobs. For the mask, we used COLOR_BGR2GRAY to turn the video gray, and then applied background subtraction with createBackgroundSubtractorMOG2() and morphologyEx(). We added morphologyEx() to help refine the initial background subtraction that was already present. The blob detection was performed using SimpleBlobDetector_create() on the gray video after refining parameters that were previously specified. The goals for our agent were to track the pitch of a baseball and calculate some of the aspects of the pitch. The aspects we calculated were the location of the ball in relation to the frame (x, y positions) and the speed of the pitch. We did so by improving upon Dan's original pitchtracking code. The inputs simply include the desired video, but the outputs use information from this video. The location takes the x and y positions that the ball is found at throughout the pitch. It is refined by removing any locations that are outside of two standard deviations of the mean. This is used to eliminate outliers that may not be the ball during its trajectory, or other blobs that are not the ball. These locations are printed out, becoming an important output for the program. After getting these locations, we then retrieve the framerate of the video and use it to calculate the duration of the pitch. The distance to the catcher is then divided by this duration to get the pitch speed in feet per second. Finally, we convert this to miles per hour to get the speed of the pitch as an output. + +## Comparative Study +Describe the performance metrics for different environment settings (different positioning of the camera). + +For our program to work, the environment must be pretty specific. The camera should be behind the pitcher and filmed vertically. Additionally, the camera quality needs to be filming in HD, otherwise it is possible to lose track of the baseball. Finally, the video should only be one pitch at a time, otherwise the calculations will be wrong. The videos we used were from Dan's comp. The other videos provided were not high enough quality and not formatted in the correct way. + +## Challenges and Learning Experiences +Discuss any challenges you have encountered during the work on this lab and describe what have you learned. + +We encountered many challenges during this lab. For the first week of the lab, we +tried to understand and make changes to the ball tracking program so it would be +able to track a white object(Baseball). This was a big challenge for us because +we couldn't get the right mask or blob detection for the application to detect +white objects. After spending many hours testing and reading some documentation, +we were able to accomplish something. The application was able to detect the +baseball, but it was not very accurate and was also detecting other areas where +white. From this point, we decided to switch from the ball tracking application +to the pitch tracking application. + +For the pitch tracking application, we had three major challenges. Our application is not comparable with +poor quality videos. You will need a high resolution video and a one pitch a time. If a video does not +have these two conditions, our application will not work. Calculating the speed of the Baseball was +something really difficult for us. We worked many hours to get this implementation into our +application. After testing several ways to calculate the speed, we were able get the accurate speed of the baseball. +Lastly, we tried calculate the spin rate of the baseball. For us, this one the most stressful and complicated part of the lab. +We did a lot of research to find a formula to calculate the spin rate of baseball. After spending several hours, we gave up +and decided to calculate the RPM which equals revolutions per minute. We went with this approach because it is +similar to spin rate. We found and formula, and where able to calculate the RPM, but it was not accurate. We +tried many different ways to change the formula and different conversions but we were still getting inaccurate results. +In the end, we decided not to do this implementation and instead did location of the baseball. + + +## Ethical Benefits and Implications +In this section, drawing on class discussions and readings, answer the following questions + +1. What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +Sport organizations such as MLB, NBA, and NFL already have or are developing applications similar to ours. Companies like Tesla, Google, and GM are using +similar algorithms as in our application for autonomous driving. The classification and detection of objects and vehicles is important for self-driving +cars since they need to avoid accidents and be able to detect what is their surrounding area. + +2. Who are the intended users of this technology? + +Baseball teams who want to analyze their players' pitching patterns and collect +data to improve their pitching. Sport analyst would use this technology +to collect data on the performance of players and use it for stats reporting. + +3. Who is not supposed to use this technology? + +Anyone can use this technology for educational or professional purposes. +This technology is intended for everyone to use, there is no restriction on +who is supposed to use this technology + +4. How can the application developed in this lab cause harm? + +The application developed in this lab can't cause any harm. Everything is code +based, therefore is not really possible to this application to cause harm. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +Since this application does not cause any harm, it's not necessary to implement any solutions. + +## Team Work +Describe the details of your team working strategy, specifically explain how did you complete this work as a team and describe the specific contributions of each team member. + +For work meetings, we meet up every Tuesday and Thursday of every week for at least +two hours and sometimes more to work on the lab. We used teletype to work on the +coding at the same time. Instead of us working individually and pushing separate +work , we just used teletype instead. We both worked on the code at the same time, we +each assigned a task to do during our meeting times and we would work together on +challenged we faced during the lab. X worked on the math portion of the lab, for +instance Calculating the speed of the baseball. Overall we distributed the work fairly +and finished all our implementation on time. diff --git a/resources/sample_md_reflections/cs310_lab02/reflection10.md b/resources/sample_md_reflections/cs310_lab02/reflection10.md new file mode 100644 index 00000000..1fb4ab15 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab02/reflection10.md @@ -0,0 +1,167 @@ +# Report by + +### Project Selection + +For the second part of Lab 02, I chose the "Ball Detection and Tracking" +project. Given my previous experience with drawing shapes, Python, and Python +frameworks, and given my lack of experience, but interest in video capture and +manipulation using OpenCV, this assignment greatly appealed to me. I always +wondered how would it be possible to capture video feed from a device's camera +using Python and how, if possible, to manipulate that feed, so when you +demonstrated Python's ability to do such that during your in-class examples +of facial and object-recognition using OpenCV, I decided that that was just the +type of artificial intelligence I was interested in and made it my priority to +learn more about OpenCV and how to use it, with the +"Ball Detection and Tracking" project being the first step to getting me feet +wet with OpenCV. After reading numerous online articles on OpenCV as well as +doing your in-class reading assignments, I feel like I have already learned +a lot about OpenCV and it is my hope that I continue to learn more long after I +have completed your class. + +## Learning Agent + +My learning agent consists of a Python program which takes video feed, either +user-specified or taken as a live recording from the device's video camera, and +proceeds to create a background subtractor to separate the background from the +foreground of the video feed. The next step of the program is to create +several arrays for storing the coordinates of blobs detected within our +specified area-of-interest for further use later. It is at this point in the +program that the time is taken since the beginning of the epoch in order to +later calculate the running time of the video feed submitted into the program, +which will then be used to calculate the velocity of the moving ball. After this, +a while loop begins executing (which only ends execution once the user presses +'q' on their keyboard or the video no longer has any more frames to analyze, +whichever comes first). Two variables are created to contain the individual +frames within the video feed submitted by the user (whether direct live-feed or +pre-recorded footage) for further analysis. Immediately, an if-statement is +constructed to terminate the loop if the variable that contains the individual +frames is empty. It is inside the if statement that we calculate the runtime +and velocity of the moving ball. Outside of this if statement, but still within +the while loop is where the analysis of each frame takes place. + +Initially, a window is created called "Pitch" with an aspect ratio of 480 x 853, +which contains the user-submitted video feed with the same aspect ratio at the +right viewing angle. Afterwards, two copies of the user-submitted video is +created, a tracking video and a blob video. A gray version of the video feed +is also created by applying the cvtColor() method on the original video feed. +As standard with object-recognition in artificial intelligence, a blurred copy +of the grayscale version of the original video feed is created using the +.medianBlur() method of the OpenCV framework. A variable called "fgmask" is +created which subtracts the background from the grayscale copy of the original +video feed. + +Next, parameters are set for the blob detector, by creating a variable named +"params" and using cv2.SimpleBlobDetector_Params(). The parameters for the +simple blob detector is that it will filter by area where the area is a minimum +of 4 and a maximum of 100. Next, it will filter by color where the blob color +is 255. Afterwards the SimpleBlobDetector is set to filter by circularity with +a minimum of 0.8 circularity and is finally set to filter by convexity with a +minimum convexity of 0.8. Finally a SimpleBlobDetector is finally created and +assigned to a variable as well as a variable to store the keypoints of the +blobs detected in the grayscale copy of the original video feed with the +background subtracted from the foreground. + +A rectangle representing the strikezone is created using coordinates for each +corner as well as coordinates for the ROI (region of interest) to ensure that +we are only detecting blobs in the latter. Based on this ROI, an array of +tuples is created using a for/foreach loop in which all blobs within the +ROI is assigned an x-coordinate and a y-coordinate in the form of a tuple. This +array is then converted into a list using Python's built-in list() method and +iterated through using another for/foreach loop in which all points are +outlined with a green circle and surrounded by a rectangle +(for location tracking). Using the "writer" variable, the individual frame +(as we are still within the while loop) is written to the tracking video, which +is being displayed to the device's video screen and the entire process is +repeated for each subsequent frame until the video feed has no more frames +(i.e., you have reached the end of your video) or the user presses 'q' on their +keyboard. + +After the video has ended (and thus we are now outside of the while loop), if +the coordinates of the last blob detected within the ROI are determined to be +within the previously described rectangle that serves as our strikezone, +"STRIKE" is printed to the screen, otherwise "BALL" is printed, the video +capture is released, and all windows are closed. + +## Comparative Study + +Based on several tests I've run, it appears the program performs as expected +(which is very impressive to me, even though I know according to the +implementation there is no room for error under normal circumstances). In +other words, different pitching angles do not appear to affect the performance +of the algorithm, which is further proof of its validity and the strength +of its implementation. + +## Challenges and Learning Experiences + +The main challenge of this project was simply learning the OpenCV framework +and getting familiar with the lab starter kit, but this could be better +described as a learning process as, given my previous experience with Python, +once I ran the program several times and read through the program once, I was +fully familiar with the program, how it ran, and how to add my own changes to +the program in order to track the location and the velocity of the baseball +during runtime. In fact, I would like to take this project futher, if possible. +Maybe other interesting changes could be made to the program's implementation in +order to track other features of the ball during travel? + +## Ethical Benefits and Implications + +1. What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +Perhaps the most obvious entity/business/organization that would be interested +(and already has) developed this type of application would by the MLB +association, which uses the software to track various statistics regarding each +pitcher's pitch. Other entities include the U.S. Navy for use with the +object-tracking programs located within each airplane (given resurged interest +in UFOs flying within U.S. Navy airspace (although admittedly the program +would have to be edited in order to track such objects versus baseballs). +Additionally, from this logic, most, if not all other branches of the U.S. +military would be interested in such object-tracking software as well for +national security purposes as well as combat strategy, which was the subject +of controversy given Google's now-cancelled contract with the Pentagon years +ago to employ AI in order to aid in the accuracy of images used for drone +strikes. + +2. Who are the intended users of this technology? + +Perhaps the most obvious would be any and all sports analysts, whether they +be coaches, announcers, or the players themselves. The information relayed by +this software would allow for players and coaches to better adjust their +strategies according to their own as well as other player (i.e., rival teams') +pitching characteristics given the highly strategic nature of the game of +baseball (or any other national sports conference for that matter). + +3. Who is not supposed to use this technology? + +Those with no experience regarding the game of baseball and/or use for the +information relayed by the program, such as pitch velocity as well as ball +location during its travel to the home plate. As you would imagine, such +individuals would have no use, and possibly interest in such interest, +rendering it meaningless to them. + +4. How can the application developed in this lab cause harm? + +Such software, when properly modified, could be used to +detect a whole range of objects not previously intended for use with this +program, such as the previously mentioned drone strikes Google was previously +slated to aid in recognizing through the use of artificial intelligence. +Given the nature of explosive devices, the previous history of military +organizations around the world intentionally or accidentally targetting +private citizens (or even military actors for that matter), object-detection +programs such as this program could aid in the perpetuation of human harm and +even death on a scale and level of accuracy that would be hard if not impossible +without the aid of programs such as this one. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +As with the case of self-driving cars, this program could be modified, perhaps +dramatically for recognition of forbidden objects +(such as humans/civilians, animals, etc.) to reduce the chance of non-combat +entities being harmed in the usage of this program, albeit modified, in combat +operations by the U.S. military or any other organization around the world. In +such situations, if the presence of a 'forbidden object' is detected during +runtime, the program could be immediately terminated or any further actions by +this, or any other programs could be halted until the 'forbidden objects' are +no longer detected by the program. As mentioned previously, this does not +entirely eliminate the chance that unintended targets are accidentally harmed +in the process of combat operations, but does considerably reduce the chance of +this situation occurring. diff --git a/resources/sample_md_reflections/cs310_lab02/reflection2.md b/resources/sample_md_reflections/cs310_lab02/reflection2.md new file mode 100644 index 00000000..0073faa3 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab02/reflection2.md @@ -0,0 +1,48 @@ +# Report by + +### Project Selection + +The project that we have chosen to be implemented is Identifying and Tracking a Baseball. The reason we chose this project is because we find it really interesting how a baseball can be thrown at such different speeds and angles in order to generate different ball flights. + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| February 14, 2020 | Implement various OpenCV algorithms and choose project | +| February 21, 2020 | Project walkthroughs | +| February 28, 2020 | Complete project and conduct demonstrations | + + +## Learning Agent + +The methodology that we used for this learning agent was use an input which was a video and utilize algorithms to detect the speed and path of a baseball pitch. One of the main algorithms that we used was Cascade which was extremely useful in detecting the baseball pitch. The output of the program is the detection of the baseball path when it was thrown to the catcher. + +## Comparative Study + +The performance of the program was greatly impacted by the environment settings portrayed through the camera. For example, we were provided with two different videos. One of the videos had the batting net and the other one did not. The video with the net had a much lower performance because the program had a much harder time detecting the baseball. + +## Challenges and Learning Experiences + +Discuss any challenges you have encountered during the work on this lab and describe what have you learned. +While working on this lab, we encountered many different challenges when trying to calculate the ball speed of a baseball pitch. The main problem that we had was that it was very difficult to calculate the speed of the ball accurately. The main thing we learned when combating this problem is that the actual speed of the ball is determined by the frames per second of the video. + +## Ethical Benefits and Implications + +- What entities, businesses, organizations do you envision developing the type of the application you + have chosen to develop? Some of the entities, businesses, organizations that we envision developing this type of application is major sports organizations such as baseball teams and even training institutes that could utilizes this technology to improve their players. + +- Who are the intended users of this technology? The intended users of this technology is directed toward baseball players but + specifically the coaches and pitchers in particular. This technology is important for the pitchers and coaches because the data that this program generates will allow them to see how they could improve to increase their ability to throw better pitches. + +- Who is not supposed to use this technology? The people that is not supposed to use this technology is other types of players + that play baseball such as outfielders because this technology does not apply to them. This technology is specifically developed for pitchers and will provide the best feedback in terms of data for this specific type of player. + +- How can the application developed in this lab cause harm? This application developed in this lab can potentially cause harm + because if other teams do not have this technology at their disposal, they can potentially make a claim that teams with this technology is cheating. This tool is so useful because it provides critical feedback for pitchers which is a major advantage if a baseball team or organization has it. + +- What solutions could be implemented to avoid the harm or to fix the harm described above? A solution that could be implemented + to avoid the harm or to fix the harm described is to make this technology more affordable. If it is more affordable more teams will be able to utilize this technology to improve their pitching. + +## Team Work + +While completing this project we have implemented several different strategies in order to achieve completion of this assignment on time. Initially when we were deciding what project to do we both discussed which project interested each of us more and decided to choose that one. After choosing the type of project we worked together on developing the source code. The reason we worked together while writing the code was so we were both on the same page on the various functions we were using. Along with developing the programs together we also continued this strategy when it came to the end of this project. For the reflection we also produced the `report.md` file together so we could incorporate both of our views into one file. specifically X mainly developed the source code along with the help of Y. On the other hand, Y mainly focused on the technical writing and the various programs we had to incorporate in the beginning stages of this project. diff --git a/resources/sample_md_reflections/cs310_lab02/reflection3.md b/resources/sample_md_reflections/cs310_lab02/reflection3.md new file mode 100644 index 00000000..7b0691b1 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab02/reflection3.md @@ -0,0 +1,54 @@ +# Report by + +### Project Selection + +For our project we decided to do project one for our implementation which is the ball tracking using videos. With this, our project name is The Simple Baseball Tracking Program. We chose to do this project because we thought it would be the most challenging and interesting since most of us enjoy watching sports. The main reason we chose it is because we felt that this project would have the most real-world implications in baseball, meaning that this is a tool that is often seen in professional sports and that would likely be the most useful when compared to other tool options. With this background we figured it would be cool to change how we viewed sports now from a different perspective. + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| dates | task 1 | +| Feb 14 | Begin working on tracking the ball software implementation | +| Feb 21 | Finish color tracking and implement it with a baseball | +| Feb 25 | Work on slowing down videos and picture enhancement | +| Feb 28 | Be able to track a baseball within a video | + + +## Learning Agent + +Our program takes in a video as an input and then subtracts the background of the video using OpenCV functions. The video is then converted to grayscale and the background is blurred for better ball detection. Additionally, the region of interest is also increased to detect the ball earlier when it is thrown. With this, I then created a graph to track the horizontal and vertical break points. After this, we outlined blobs (ball) with green circles to track the ball by looking at the key-points of the identified ball. The goals of learning include finding the ball and tracking information about it such as speed and the horizontal/vertical break. The information outputted includes ending position, the speed of the ball, if there was a horizontal and/or vertical break, whether the pitch was a ball or a strike, and more. + +## Comparative Study + +The performance metrics depending on different environment settings like camera position are the ability to find the ball based on what the background of the image or video is. Once you finally get the perfect settings and way to find a ball in one camera view, when the view changes the settings would need fixed in order to pick up the ball again. For our tool to work, the camera must be positioned almost directly behind the pitcher in order to find the ball in the region of interest. Additionally, the background must not be cluttered, meaning that the background cannot be all white for example because then there may be issues with regard to detecting and tracking the ball. + +## Challenges and Learning Experiences + +Over the course of this lab we have had a few struggles that have stopped our progress and from making our implementation better. One of these struggles was getting our ball detection to properly work for the first week. We could not find the ball at first until we fixed the color variables. The second big issue we had during our project was trying to find the speed of the ball. We learned from this by figuring out ways to calculate distance and time, but still ran into challenges with regard to accurately getting the time elapsed during the pitch. The integrated python time libraries were originally used and then removed because it timed the running time of program components, not the ball in the air. This meant we had to find ways to track frames and the timings of these frames to find the timing of the ball. Through this we have learned to use each other for ideas and then put the ideas into code it works much better for us as a team. + +## Ethical Benefits and Implications + +1. What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +I believe that the type of people that would want this technology would be any type of video watchers for sports analysts and any sort of tracking. They would use this so they can know what their team needs to work on with regard to pitching. + +2. Who are the intended users of this technology? + +The intended users of this technology would be head coaches, coaches, managers, and Owners, that way they can learn how to improve and try to win the championship. Fans may also be interested to see how their favorite pitchers are performing. + +3. Who is not supposed to use this technology? + +The person who is not supposed to use this data is the other teams in the league. If they use this video to figure out what their opponent is doing it would gain an unfair advantage instead they can only use video of their own team. Unethical people should not use this technology as they may use it to cheat or create unfair advantages within the game. + +4. How can the application developed in this lab cause harm? + +The application developed in this lab could ruin the integrity of the game in some ways if it is used improperly. If this content is being used during games to create an unfair advantage for one team, then there will be harmful results. For example, one team could unfairly use these videos to find out the trajectory of the opposing teams pitches. We saw an example of this with the Houston Astros over the last few years when they were accused of cheating to win the championship. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +A solution to this issue would be let an outside company do the video processes and let this company only give each team their own pictures and videos. That way they never see any other teams videos. + +## Team Work + +For this lab our team work always outside of the classroom since we have weird lab schedules and we can not be together. We meet 2-3 times per week in order to finish the lab and complete the code on time. Every time we work on a lab we all work on parts of the lab together. For this lab when we meet we all worked on the code together each time. Then to complete the report we divided up the seven sections evenly and then wrote them. diff --git a/resources/sample_md_reflections/cs310_lab02/reflection4.md b/resources/sample_md_reflections/cs310_lab02/reflection4.md new file mode 100644 index 00000000..513af2b9 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab02/reflection4.md @@ -0,0 +1,81 @@ +# Report by + +### Project Selection + +The project we chose to complete is the Baseball Video Overlay and Baseball Detection project using OpenCV. + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| 2/18 | Get new videos | +| 2/19 | Detect the ball | +| 2/21 | track the ball and start working on overlay | +| 2/24 | Finish the report | +| 2/28 | Overlay | + + +## Learning Agent + +In our program we used blob detection algorithm. This algorithm counts number of +pixels in the blob. We chose this approach because it provides additional +information about certain regions, that edge detection did not provide. The way +algorithm works is that it creates the copy of the image and then it has +recursive cases and base cases that depend on if the pixels are on or off. + +## Comparative Study + +We tested this program on multiple videos from different angles, as long as +the ball is visible in the video, our tool manages to detect and track it. +Our program overlays three videos. For testing the program we imported `time`, +set the time in milliseconds at the beginning of the loop and at the end before +print statements, to see exactly how long it takes to run the program in +milliseconds. + +## Challenges and Learning Experiences + +We decided to use `addwighted()` to overlay the videos, however we had some +challenges when implementing it. What helped us was to check the OpenCV +documentation and we figured that basically what `addwighted()` is doing is that +it calculates the weighted sum of two arrays. Figuring out what exactly each +parameter is doing helped us implement the method. Parameters passed in would +be first input array, weight of it's elements, second input array and weight +of the second elements, output array and scalar to each sum. + +## Ethical Benefits and Implications + +1. What entities, businesses, organizations do you envision developing the type +of the application you have chosen to develop? + +Companies that sponsor the teams, or who are involved in developing Baseball. +Colleges and Universities could also be developing these features to help, +their Baseball teams improve. + +2. Who are the intended users of this technology? + +We think that this technology can be used by Baseball coaches to keep track of +players and help the players improve, it can be used by umpires to keep track of +the ball on the Baseball games and make it easier to observe, this tool can be +used by the Baseball players to keep track of their improvement, and it definitely +can be used amateurs just for fun. + +3. Who is not supposed to use this technology? + +We think that teams should not use this technology to track other teams' +pitches. + +4. How can the application developed in this lab cause harm? + +This tool would not be directly threatening the human mental or physical health, +However the limitations could be that this tool might be ineffective on videos +shot from certain angles where the ball is not clearly visible. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +This can be fixed by improving the precision of our program. + +## Team Work + +We mostly all worked together, we would assign specific task to each other, +such as to research about certain topic, to implement, and to debug, then we +would meet up outside of class and discuss our findings and combine them. diff --git a/resources/sample_md_reflections/cs310_lab02/reflection5.md b/resources/sample_md_reflections/cs310_lab02/reflection5.md new file mode 100644 index 00000000..4e08d12c --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab02/reflection5.md @@ -0,0 +1,200 @@ +# Report by + +### Project Selection + +We will do a mixture of projects one and two. If we can detect the +baseball movement it won't be difficult to predict where it will +land. With the combination of both projects it will make the +project more interesting. We will implement a CNN in the +training part of the lab. + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| 2/14/20 | Start | +| 2/17/20 | Implement object detection in videos | +| 2/21/20 | Train our predictive model | +| 2/24/20 | Verify model with sample videos. | +| 2/28/20 | Implement the overlay "if possible" | + +| dates | task 1 | + + + +## Learning Agent + +We used some pre-trained deep learning models to complete this project. We used the `yolo3_mobilenet1.0_coco`, +`ssd_512_resnet50_v1_voc`, and `simple_pose_resnet18_v1b` neural network models to detect the +people, skeletal mesh, and sports ball or baseball. The `yolo3` neural network model +tracks the people and puts a skeletal overlay over the detected people. The `ssd_512` +model is used to detect the sports ball. The `pose_resnet` network model +is used to apply the skeletal mesh to the people. The output of these deep learning +models is the detection and labeling of the discovered objects. It will only show +objects when the confidence is above `50%`. The Convolutional neural networks models we used +are pre-trained, which contains weights for 600 (`yolo3_mobilenet`) to 10000 (`ssd_512`) different +objects. For each frame of the video, the pre-trained neural network models will try predict the +possible objects by locating bounded boxes in `bbox` variable. The confidence score will also be +calculated for each possible detection in `scores` variable, associated with the object type stored +in the `ids` variable. The detection with `scores` higher than 0.5 will be presented on the image +after we fit the pre-trained model. Since these variables are in NDarray type, we can use +`np.squeze()` to reduce the unnecessary dimensions. For the pose detection we +used the `yolo3_mobilenet` to detect where the person is then within the `bboxes` +we apply the `pose_resnet` model to detect the pose. + +## Comparative Study + +In our comparative study we evaluated the metrics for different environmental +settings by using the provided video clips with and without the net. When using +the video clip from a different perspective our person and skeletal mesh worked +correctly, but we couldn't detect the ball due to the speed at which it was +thrown and the resolution of the video. We then used a different video format to +see if the increased resolution would yield better detections. The resolution +didn't change and the ball was too fast to be detected. Although more +people were detected. In conclusion the resolution of the video is correlated +with the improved detection of the people and sports ball. + +``` +python src1/baseball_dt.py -v src1/Videos/pitch01.m4v -fs 1 + +The ball traveled from: [ +[314.59766] +, +[370.44693] +] to [ +[314.895] +, +[373.3154] +] +The distance is +[80.83187] + +It took 0.01694915254237288 seconds +Sports Ball Speed 11689.08 +``` + +``` +python src1/baseball_dt.py -v src1/Videos/pitch02.m4v -fs 1 + +The ball traveled from: [ +[264.13882] +, +[378.2546] +] to [ +[304.846] +, +[434.42258] +] +The distance is +[185.43295] + +It took 0.4576271186440678 seconds +Sports Ball Speed 432.9288888888889 +``` + +``` +python src1/baseball_dt.py -v src1/Videos/pitch04.m4v -fs 1 + +The ball traveled from: [ +[340.34286] +, +[518.62524] +] to [ +[340.1992] +, +[518.2746] +] +The distance is +[251.98325] + +It took 0.1864406779661017 seconds +Sports Ball Speed 1062.6436363636365 +``` + +``` +python src1/baseball_dt.py -v src1/Videos/pitch05.m4v -fs 1 + +The ball traveled from: [ +[308.6103] +, +[450.02173] +] to [ +[357.95438] +, +[522.459] +] +The distance is +[232.8254] + +It took 0.01694915254237288 seconds +Sports Ball Speed 11689.08 +``` + +## Challenges and Learning Experiences + +The first challenge we had was using a neural network that would update the +image by at least one frame per second. Initially we implemented a `Mask_RCNN` +deep learning model but unfortunately it was extremely slow due to the +structure of the network. Our own tests indicated that it could take anywhere +from 36 seconds to 46 seconds. To try and get around the speed problem +we narrowed the classes to just the sports ball, +but this didn't make it run faster. We then tried out multiple neural networks +but we decided against using them because it couldn't detect a `Sports Ball`. +After implementing the `yolo3_mobilenet`, `yolo3_darknet`, `ssd_512` neural networks +our program ran as intended. + +The second challenge that we faced was working with the `numpy` arrays to +calculate the distance and determine the threshold at which we should +consider that the ball has been thrown. To solve the threshold problem Lancaster +implemented a conditional logic structure that could determine when the baseball +was thrown and caught. After that we needed to determine how we could calculate +the speed at which it was thrown. Initially we didn't know how to abstract the data +and had to extensively research the topic to get the data that we needed. Lancaster +researched Euclidean distance and implemented the code to calculate it. We then +calculated the distance based on the known distance of `60ft 6in` between the +thrower and the catcher. + +## Ethical Benefits and Implications + +1. What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +We envision that amateur and professional sports teams could use and expand +the program that we have developed. In order for other sports +to utilize the technology the deep learning model would have +to be trained using data containing a soccer ball or a foot ball. +By training it using data for the desired sport it would make +the model more effective at detecting the sports ball. + +2. Who are the intended users of this technology? + +The intended users of this technology would be Baseball sports teams. Potentially +other sports teams could use the program but it would have to be adjusted for +accuracy for games that don't use balls such as fencing or horse racing. + +3. Who is not supposed to use this technology? + +There are ethical concerns about the military using +the technology to make them more effective at fighting. For instance if a group +got their hands on our program they could change it to evaluate how +well they could throw round objects such as grenades. + +4. How can the application developed in this lab cause harm? + +The application could harm people if it were used to evaluate the effectiveness +of fighters. Instead of detecting a sport's ball it could be changed to detect +fists and track the speed of punching. In addition to the the skeletal mesh +could be used to rate the effectiveness of a persons pose while punching. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +A solution to the previously mentioned problems would be to restrict the access +to the program so that only a few groups of people can use it. In addition +to that we could only train the model to detect objects like a sports +ball, baseball glove, and a baseball bat. That way it could not be easily +changed to fit a nefarious purpose. + +## Team Work + +We met and worked together in Alden. In order to avoid merge conflict, we only have one person +to make changes at one time. Additionally, since it takes a while for each frame of the image to +fit pre-trained models, we have one computer run the video, and another computer edit the code. diff --git a/resources/sample_md_reflections/cs310_lab02/reflection6.md b/resources/sample_md_reflections/cs310_lab02/reflection6.md new file mode 100644 index 00000000..8ad5b378 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab02/reflection6.md @@ -0,0 +1,99 @@ +# Report by + +### Project Selection + +Our team will be opting to create implementation 2.2 involving the baseball video +overlay and baseball detection. We believe it is the simplest implementation returning +the greatest value return in terms of both utility and learning experience. Consequentially, while implementations 2.1 and 2.3 employ a variety of interesting +image detection algorithms, our team is interested in learning more advanced AI +concepts (deep learning, neural nets, etc.) before tackling issues like these. + +### Timeline + +| Timeline | Tasks | +| :-: | :-: | +| 2 / 14 | Timeline Organized | +| 2 / 19 | Decide on Classifiers / Algorithm | +| 2 / 24 | Project Implementation | +| 2 / 26 | Report and Travis Build | +| 2 / 28 | Project Deadline | + +## Learning Agent + +The final implementation of this tracking application does not implement an active +learning agent, but relies exclusively on the simple blob detection provided by +opencv. To discuss previous approaches, the most successful attempt used a pre-trained +YOLO model in conjunction with TensorFlow and Keras in order to detect any and all +"Sports Ball" related items. However, when applied to the provided videos, the model +was horribly inconsistent in detection across frames. An advanced blob detection +solution also produced inaccurate output. The most reliable and accurate solution +was achieved using the aforementioned opencv solution, although I would attempt +to utilize imageAI given more time. + +## Comparative Study + +Positioning the camera behind either the pitcher or catcher necessitates the adjustment +of size to compensate for the increasing or decreasing distance from the camera. +The maximum and minimum requirements for positive matches must be adjusted to cover +the full range of distances. Additionally, the initial resolution of the video greatly +intensifies the effects of median blur, thus the original 1920x1080 resolution was +favored over the suggested 480 width at the expense of runtime performance. The +optimal position would likely be head level equidistant from both pitcher and catcher. +To track horizontal break, however, an angle of 30-60 degrees may suffice in order +to capture the relative distance between the strike zone and endpoint of the ball's +trajectory. + +## Challenges and Learning Experiences + +As previously mentioned, the trained AI methods resulted in a massive amount of +false negatives. As the models we utilized were primarily pre-trained, we did not +have any means by which to adjust the parameters for feature assessment or other +aspects of data classification. Again, given more time, I would have enjoyed learning +more about Scikit, imageAI, TensorFlow and Kers, but opencv yielded the most accurate +solution feasible given the time constraints (refer to teamwork section below). +Having said, this provided an opportunity to closely examine the functionality and +capabilities of opencv beyond the examples dicussed in class. + +## Ethical Benefits and Implications + +In this section, drawing on class discussions and readings, answer the following questions + +1. What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +As previously detailed by the Coach, both college division and professional baseball +teams utilize tracking applications such as Trackman and Saber Metrics in order +to quantify and assess a variety of performance-oriented metrics. + +2. Who are the intended users of this technology? + +In terms of ball-tracking in the sports context, any sufficiently competitive and +advanced sports league. + +3. Who is not supposed to use this technology? + +Taking the program outside of the sports context, applying object-based detection +in conjunction with autonomous drones leads to ethical debate in warfare circumstances. + +4. How can the application developed in this lab cause harm? + +As referenced above, when used either in conjunction with militaristic drones or +faulty self-driven machines, object detection combined with autonomy can result +in false judgements and wreak havoc. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +The refinement of classification models, stricter establishments of parameters, +adherence to proper ethical application (e.g. non-military use), and tendency to +favor supervised over unsupervised learning can all result in the mitigation of +destruction. + +## Team Work + +Due to extremely unfortunate circumstances, our group was understaffed during the +period in which we attempted to complete the majority of work. Both X and Y +experimented with multiple approaches to image tracking including blob detection +random tree classification through ensemble. However, due to the poor performance +of both of these implementations, Z ultimately implemented a solution utilizing +simple blob detection provided by opencv. Z also devised the video overlay +functionality and trajectory logging functionality (preserving the coordinates to +avoid the premature display of trajectory paths). diff --git a/resources/sample_md_reflections/cs310_lab02/reflection7.md b/resources/sample_md_reflections/cs310_lab02/reflection7.md new file mode 100644 index 00000000..4dbb03c5 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab02/reflection7.md @@ -0,0 +1,95 @@ +# Report by + +### Project Selection +Identify your project to be implemented (name the project and why you chose it) + +The project that our group decided to do was Project 1. Our group wanted to do this project because we thought it was interesting how a program could track a baseball in a video that is playing. + +### Timeline + +| Timeline | Tasks | +| -----------|----------- | +| dates | task 1 | +| 2/14/20 | Part 1 programs| +| 2/14/20 | Project selection| +| 2/21/20 | Finish detection program for Project| +| 2/26/20 | Test programs| +| 2/27/20 | Finish Report| + + +## Learning Agent + +Describe the methodology used for your learning agent (algorithms, the goals of learning, inputs, outputs, etc.) + +Within our project for lab 2, we used blob detection which is the algorithm present in our code. This +is the algorithm that uses a green line to track the ball from when it leaves the pitchers hands to when +it lands in the catchers glove. The input is the pitching videos in a .mov format. The outputs are +the speed of the ball an and the point when the ball reaches its destination. + + +## Comparative Study + +Describe the performance metrics for different environment settings (different positioning of the camera). + +One positioning aspect would be if the camera was facing perpendicular to the path of the ball. In this +case, we think that we could have got a more accurate time of when it hits the glove. + +To explain a bad positioning aspect, it would have not been helpful to have the camera facing the +pitcher because we would not know when the ball would reach the pitchers glove. + +## Challenges and Learning Experiences + +Discuss any challenges you have encountered during the work on this lab and describe what have you learned. + +During this lab, we faced many challenges but managed to work through them. At first, we planned on using +our own code that we found from the internet but realized it was extremely hard to edit and fix to track +the ball instead of moving cars. To resolve this, we used the code that was given to us and edited it from there. Another challenge we faced was not being able to download dlib onto our laptops. We had to go down a different route by not using this because we failed at the download process. Although we did learn a +lot by completing this lab. For example, we learned about different algorithms and how to choose a specific one for your program. We also learned how to track a moving object and then track the speed. We researched a +lot about the speed equation and was able to hard code it into our program which was a huge learning experience. + +## Ethical Benefits and Implications + +In this section, drawing on class discussions and readings, answer the following questions + +1. What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +This application would be useful to any baseball team that uses data and different metrics in practices. Higher level leagues such as college ball and the MLB would benefit from a program like this in order to +visualize the path and speed of the ball at the same time. + +2. Who are the intended users of this technology? + +The intended users of this application would be baseball players and teams that want to +see their pitch. Baseball players and coaches could use the application to think of ways to improve +the bad and to keep up with the good. + +3. Who is not supposed to use this technology? + +People not involved with that baseball division should not be able to use this technology. Individuals could alter numbers and essentially use the software to exploit the game. It could give a team an advantage over the rest because they would have the accurate stats and the other teams would be given misleading data. + +4. How can the application developed in this lab cause harm? + +One way that this application could cause harm is if the video input is blurry +or if it is poorly recorded. If that is the case, the speed and tracking could +be read wrong and the user would be using wrong data. This wrong data could +drastically hurt a baseball player and their team. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +A solution to be implemented to avoid the harm is to not let the program read the +video unless it is clear enough to be tracked the entire path. Pitches that are inputted +that are not fully able to be tracked or if they are glitchy should not be used by the +program. The program should be able to compare videos and know which one is the +most clear. + +## Team Work + +Describe the details of your team working strategy, specifically explain how did you complete this work as a team and describe the specific contributions of each team member. + +To complete this work, we met most Tuesday nights for a few hours to +work together. We would take turns editing and pushing while the others would research +different algorithms or equations. The other nights that we did not meet up in person, +we would communicate through a slack group message and talk about our findings and +tasks. Each team member did not have a specific role. We all did a little bit of everything +and contributed equally. The one part that was individual was Chris who was the only one +who had OpenCV downloaded on his laptop. He was the main one who would run the code once +we made changes to the code. diff --git a/resources/sample_md_reflections/cs310_lab02/reflection8.md b/resources/sample_md_reflections/cs310_lab02/reflection8.md new file mode 100644 index 00000000..98ddc69c --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab02/reflection8.md @@ -0,0 +1,59 @@ +# Report by + +### Project Selection + +Baseball Pitch Detection - Appropriately named because it utilizes the SimpleBlobDetector +to detect, specifically, a baseball. + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| Feb. 19 | Configuration of OpenCV Tutorial | +| Feb. 21 | Pipfiles, all dependencies installed | +| Feb. 23 | Extensive of OpenCV Tutorial | +| Feb. 25 | Compilation of Video / Final Code | +| Feb. 28 | Reflection | + + +## Learning Agent + +This project used the SimpleBlobDetector algorithm to track the baseball. +This algorithm involves several steps. First the video will undergo thresholding, which converts each frame in our video to multiple binary images. Additionally, parameters can be set to specify what type of `blob` +the program is detecting, such as blob size, and whether it is darker or lighter, circularity of the blob, concave or convexivity of the blob, and the inertia ratio of the blob which is how elongated it is. The goal of learning for our program was for it to be able to detect a baseball over the course of a video. This tracking would allow us to calculate items such as speed, and ball rotation, if we were able to obtain data about the frames per second of the video, we would be able to determine speed of pitch. We anticipated inertia ratio could be used to calculate spin rate. The input for this program consisted of the video that we would be running the program on. The output consisted of wheter or not the pitch was a strike or ball, and any other info we could ascertain. + +## Comparative Study + +There are various metrics that affect this program, and they mainly consist of the difference between videos that we could run the program on. One metric is the positioning of the camera for each video. As this varied, the program is limited in its ability to draw the `strike zone` for each video. Another metric to consider is the quality of the video that the program will run on. We found that if the videos were too low of quality, the algorithm was unable to detect the baseball as a blob. A third environment factor is the fact that this program is limited to baseball, and using it on softball would require adjusting the parameters of the program. The program also requires a certain style of video, for example, it would be useless to run the program on a video that did not contain a full pitch, and that didn't keep the ball in view for the entirety of the video. + +## Challenges and Learning Experiences + +There were a number of challenges that we encountered during this lab. One of the main challenges of the lab was figuring out how to calculate pitch speed. Since the video is slowed down upon execution, using a simple timestamp would not be a reliable way to gather this data. We were concerned about the accuracy of the final result, considering that to gather this data the program needs to track the ball consistently throughout the course of a pitch. We had some trouble successfully tracking the ball for awhile, but this turned out to be the result of some low quality video and parameters that needed to be adjusted. Over the course of this project, I learned quite a bit about the SimpleBlobDetector algorithm and how to use it to track data. Interpration of this data turned out to be more difficult, however. Using a `for-loop` we were able to iterate through the keypoints during the tracking, but figuring out what to do with this data proved more tricky. I am confident in my ability to set up a SimpleBlobDetector environment after this project, and to set the parameters and path of the algorithm correctly to yield an output consistently after this lab. + +## Ethical Benefits and Implications + +In this section, drawing on class discussions and readings, answer the following questions + +1. What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +In this case, I believe the entities that would most benefit from developing a program like this is any baseball organization such as Major League, Minor League, College, and even Little League. These organizations stand to gain from developing a program that can provide a bunch of data for them to analyze. This this program is primarily based around collection of data, it can provide useful insight into the performance of pitchers, and whether they are making progress over a course of time. I do believe the program could be expanded to include other sports such as soccer, tennis, football, and more, with manipulation of the parameters of the program. + +2. Who are the intended users of this technology? + +The intended users of this technology are the data scientists that would be operating the program for the benefit of baseball coaches and teams. This means that the program doesn't require an exceptional User Interface, as would be the case if the program was created for non-technical users. + +3. Who is not supposed to use this technology? + +I would argue that small-time baseball teams should avoid use of the program as it seems unethical to analyze children with techniques such as this for what is supposed to be a fun sport. + +4. How can the application developed in this lab cause harm? + +The application here could have drastic repercussions if used to analyze and push children to improve performance in Little League baseball. This would instill in children a comparison mindset that will affect their futures negatively through anxiety and stress, and ultimately hold them back as science points to comparison as being harmful to productivity and general success. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +The best way to prevent exploitation of the technology here would be to integrate some sort of person-detector that was able to detect the age of the people within a video. This could then prevent data from being interpreted or documented if the persons were under a certain age or size. This would be difficult to integrate, for there is always the risk that the program would end up excluding certain users who are not children but simply of small stature. As such, it would have to be carefully refined. + +## Team Work + +Over the course of this project, we talked at great length about the best approach. We worked out a roadmap that we adhered to as best we could, although we both have busy schedules. When it came time to write the actual code, it was necessary to work from remote locations towards the success of this project. X adjusted the parameters of the code, and ensured that it would work with the specific video we selected. Y contributed towards initial breakthroughs in getting the program to run in our adapted environment, such as reprogramming the inputs. Both members discussed the strategy behind our approach, and studied the SimpleBlobDetector mechanics carefully. X wrote the reflection. diff --git a/resources/sample_md_reflections/cs310_lab02/reflection9.md b/resources/sample_md_reflections/cs310_lab02/reflection9.md new file mode 100644 index 00000000..bba2f638 --- /dev/null +++ b/resources/sample_md_reflections/cs310_lab02/reflection9.md @@ -0,0 +1,118 @@ +# Report by + +### Project Selection +We will be completing the baseball video overlay and baseball detection project. +We chose this project due to our combined interest in working with film. This +project seemed like enough of a challenge but still within feasable reach of our +skill set. + +### Timeline + +| Timeline | Tasks | +| ----------- | ----------- | +| 2/14/2020 | Determine problem with `otsu_and_riddler.py` | +| 2/14/2020 | Select learning algorithm | +| 2/14/2020 | Select feature descriptor | +| 2/17/2020 | Compile videos, possibly schedule to film own | +| 2/17/2020 | Overlay videos with `addweighted` function| +| 2/20/2020 | Create baseball tracking function and apply to videos| +| 2/21/2020 | Locate start and stop of baseball | +| 2/21/2020 | Project walkthrough in lab session | +| 2/24/2020 | Finalize project source code| +| 2/27/2020 | Complete lab report | +| 2/28/2020 | Final project demonstration in lab session | + +## Learning Agent + +This learning agent was created with the goal of detecting an object that is or +similar to a baseball for determining the accuracy of pitching. The agent takes an +overlayed video of pitching as input, and provides and output of the same +overlayed video but with tracking of a baseball from the moment it is released by +the pitcher to when it is caught by the catcher. This agent uses rotation, +reszizing, color conversion, and blob detection (with circular and convexity +parameters) algorithms to detect a moving white object through the overlayed video +and provide its tracked trajectory. + +## Comparative Study + +The positioning of the camera changes the ability of the detection algorithm to +locate the baseball based on the various angles of the ball and the relative +sizing in a frame due to its angle. + +## Challenges and Learning Experiences + +This lab was particurally difficult from a technical standpoint. With both of us +not having any prior experience with artificial intelligence or cv2, it was +relatively difficult for each of us to understand the processes associated with +this lab. Each of us had to research overlaying and object detection extensively +before writing any code, and we often hit points where we had to completely +rewrite what we had written. Hannah found the biggest difficulty in retrieving +frames from a video, and Madelyn was challenged by masking and successful +detection of such a small object (such as a baseball) We both learned from this +experience that research is very helpful in understanding a process, and should be +done before writing code. We also were able to expand our knowledge of the +abilities of cv2 both in a general way and also in a technical aspect. + +## Ethical Benefits and Implications + +In this section, drawing on class discussions and readings, answer the following questions + +1. What entities, businesses, organizations do you envision developing the type of the application you have chosen to develop? + +An application which determines the accuracy of a pitcher would through overlaying +video and baseball detection, would most likely be developed by a sports-related +business or organization such as sports teams, physical therapists and potentially +other medical practices. This application is very specific in it's usage, and +thus would not be created by another agency specializing in artifical +ingelligence. It would be most beneficial for individuals who are involved in +athletics to develop this tool, as they could create it with necessary and useful +features to help athletes improve their skills. + +2. Who are the intended users of this technology? + +This technology was created with the purpose of tracking a baseball in multiple +overlayed videos to determine the accuracy of a pitcher's pitch. The intended +users of this technology belong to a specific group of people who either coach, or +particiapte on a baseball team, specifically the Allegheny College baseball coaching staff and team. This technology could also be brought to a wider +auidence such as softball which also focuses on the accuracy of a pitch. Users +would most likely be pitching coaches to review the abilities of their pitchers, +or pitchers, themselves, who are trying to improve their skills. + +3. Who is not supposed to use this technology? + +This technology would most not likely be used by anyone who is not an athlete +(specifically baseball or softball player). This technology is very specific to +use and measurements. An individual who does not play baseball, or does not +understand the technicalities of pitching would not use this technology, as it is +not applicable to them in any way. However, it could be a good learning tool for +individuals who are not yet baseball/softball pitchers, but are interested in +pursuing the sport. + +4. How can the application developed in this lab cause harm? + +This application is not particurally dangerous in any way. The implications of +using this technology would cause mental or emotional harm, rather than physical +harm. With a tool that measures the accuracy of multiple pitches, there is the +possibility that a coach would be too hard on a pitcher to achieve a higher +accuracy. It is even more likely that an individual would set themselves to an +extrememly high level of achievement/precision if their pitches were being +recorded at every practice and every game. The overlaying of videos could also be +used to manipulate others and present false information. + +5. What solutions could be implemented to avoid the harm or to fix the harm described above? + +In order to solve the issue of misusing this technology, individuals who are using +it should be taught the ethics of this type of artifical intelligence. However, +ethics is a difficult concept in AI, as it is such a fast-growing field, and is +debated by many individuals. It is important that in order to avoid harm, that the +users of this technology keep each other accountable, to ensure that they are +using this application for the betterment of athletes and not for manipulation, or\ +personal gain. + +## Team Work + +In order to complete this project, we split the work up into two sections: the +training and detection portion and the video overlay section. X developed +the training algorithms and the baseball detechtion technology while Y worked +to break the videos into frames, overlay each image, and build it back into a +video.