Sunday, May 6, 2018

Final Entry

·        What did you like the least about the class?
I thought the lectures could be tedious and pointless sometimes when we were focusing on very obscure Python details. While it is useful to learn some of the strange quirks of Python, I found that we spent too many days focusing on this instead of ideas that could more directly contribute to our understanding of software engineering.
·        What did you like the most about the class?
I really enjoyed the Refactoring and Extreme Programming readings, I thought both of these provided some valuable insight into software engineering practices and design principals. Also, I thought the entire group project was great! I really enjoyed working with my group and learning about all sorts of new technologies such as React and Docker (new to me, but I know a lot about them now). I also thought that when the lectures weren’t focusing on weird Python details, they were pretty useful and informative.
·        What's the most significant thing you learned?
I think all of the technologies I got to learn about were incredibly useful (sorry I can't narrow it down to just one, so Ill just say the most significant thing is the technology in general). My favorite tools I got to use included Postman, Docker, React, unittest, and Flask-RESTful,
·        How many hours a week did you spend coding for this class?
On weeks that a project was due, probably about 30 – 40. On other weeks, probably about 5 – 10.
·        How many hours a week did you spend reading for this class?
At the start of the semester, I read about 3 hours a week. By the end of the semester, I stopped reading altogether (sorry Professor Downing). I did read all of the Refactoring book though and highly recommend it.
·        How many lines of code do you think you wrote?
I definitely wrote over a thousand lines of code for this class. Probably over two-thousand including Collatz and the data scraper we created for IDB.
·        What required tool did you not know and now find very useful?
I really enjoy using Postman for API testing. This tool made it super easy to know if our API had any issues and helped us narrow down exactly which parts of the API were having problems.
·        What's the most useful Web dev tool that your group used that was not required?
We used a library called Fuse.js which made searching our data incredibly simple and functional. It allows for fuzzy search and weighting of specific attributes so we were able to tweak our search to return the optimal (most relevant) results in most cases. The downside to using this library tough is that it means you have to do searching on your front-end, which requires you give all your data to your front-end and then search. If you have a lot of data (we did not) this might not be a practical solution. However, you could still take advantage of Fuse.js on searching small subsets of your data if you want to use it alongside a more robust back-end searching tool.
·        If you could change one thing about the course, what would it be?

I would prefer that more lectures be dedicated to software engineering design principles or tools (like Docker) which could directly help us in our software engineering careers. Right now there are too many lectures dedicated to small random Python facts. Besides that, I really love this course and highly recommend it to almost everyone in UTCS 😊.

Sunday, April 15, 2018

Week 12

What did you do this past week?
This past week consisted of mostly team meetings and designing. The team sat down and planned for what refactoring we needed to do this week. We also looked at the user stories given to us by another team and decided who would do which story. Tony and I also made user stories for another team to help them improve their website.

 What's in your way?
Not much is in my way this week. We have a lot of work to do on refactoring the website but I think it will go relatively smoothly. I also plan to start studying for the test soon and reviewing all of the course material to try to really understand everything. I did really well on the last test, but I feel that this material is more challenging so I will need to study more for this exam than the last. I find some of the refactoring concepts particularly challenging. It is easy to refactor when we are told what needs to be changed, but I think it could be very challenging knowing what to refactor if we are not given as much direction initially.

What will you do next week?
I plan to work on the website, refactor some of the back-end code, and maybe start studying for the final. I also want to finish reading the Refactoring book because I find some of those concepts interesting but I have not had time to read much in the past few weeks.

What's my experience of the class?
The class is going well! I am a little disappointed to hear that the professor will not be in class this week! I was hoping to learn more about refactoring, and am slightly disappointed that the professor is leaving for a week now that we have finally gotten to the section of the course I am interested in.

What's my pick-of-the-week or tip-of-the-week?


Heroku is a hosting platform similar to AWS EC2 but has an unlimited time length free tier and does not require a credit card to sign up. So anyone can publish their site on Heroku and experiment with web software development without having to worry about getting charged!

Sunday, April 8, 2018

Week 11

1       What did you do this past week?
This past week was consumed by finishing the third project phase which involved searching, sorting, and filtering. Most of the logic for these features was completed last weekend or the previous week, and the majority of this week was focused on polishing these features and creating a nice user interface for them on our website.
2     What's in your way?
Nothing is in my way right now. Since we don’t have a project due this week, and the test is a few weeks away, I do not feel like I have much to worry about for this class this week. If anything, the only thing I am concerned with is that I might not have time to do the readings this weekend.
3     What will you do next week?
I want to get caught up with the ‘Refactoring’ readings. I have missed the past few readings but I plan to read the rest of the book this week because I find it very interesting and would like to learn more.
4     What's my experience of the class?
This week was a pretty good week. I felt that everyone in my group worked hard on the project, and that we are all proud of the website we have created. I enjoy the parts of the class where we get to focus on making the website and presenting what we have created to the other groups. I think this class has helped me learn a lot about teamwork, presenting, and communicating my ideas effectively.
5     What's my pick-of-the-week or tip-of-the-week?
My tip of the week is to check out brilliant.org here: https://brilliant.org/computer-science/

This website has some excellent resources and courses for all sorts of computer science topics from algorithms to software engineering. Although it costs money to get the premium version of the site, I think it is worth it because they do a great job of explaining complex topics in very understandable and simple ways. This site makes me wish I could have just taken computer algorithms online instead of at the university because I understand the topics a lot better when working through them on this website.

Saturday, March 31, 2018

Week 10

1.      What did you do this past week?
I spent most of this week working on the next phase of the project for the course. This phase involves searching, sorting, and filtering the data we populated the website with the last phase. Also, we must implement an intuitive and functional front-end so that people can visit our website and search, sort, and filter our models. This week was a lot of designing so that the entire team could be on the same page about how we plan to tackle these features this coming week.
2.      What's in your way?
I am a little concerned that we have not planned out a strong enough design for the searching and sorting features that we plan on implementing next week. While I have no doubt that we will complete these features, I think that having a bit more time to learn about the technology would allow us to come up with a better implementation.
3.      What will you do next week?
We will be implementing the searching, sorting, and filtering features of our website. Also, I need to call AWS so I don’t get charged. I got charged a few weeks ago and requested to see the billing statement, but that is surprisingly difficult to do on AWS.
4.      What's my experience of the class?
I wish we had more time for this phase of the project. I am very busy this week and next and am worried that I will complete this phase before I have had time to fully digest the material and technologies we are using for searching, sorting, and filtering.
5.      What's my pick-of-the-week or tip-of-the-week?
I recommend reading some of the blog posts on Miriam Grobman’s website here: https://www.miriamgrobman.com/blog

I really enjoyed the talk she gave last week and think that we need more talks like this in general. While I do enjoy technical talks, I think it is much more valuable to have talks on equality and the empowerment of minority groups. As CS majors we are constantly exposed to new technical topics; and I think by exposing us more to topics about inclusion, equality, soft skills, and social skills we are able to learn and become more well-rounded people. 

Saturday, March 24, 2018

Week 9

What did you do this past week?
I spent most of last week finishing the second phase of the project which was due last Thursday. This was by far the busiest week I have had for this class as we had a lot left to work on fir the website after spring break. Most of the back-end was finished on or before spring break, so most of the work this past week was with React and SQLAlchemy so that our site looked good and we got the data from our API onto the site effectively.

What's in your way?
I need to study more for the quizzes because I keep missing points for dumb reasons. Even though I know most of the material, I just get confused and stuck under the time constraints and end up missing a question or two. I have been having trouble balancing my time with this class and want to also try to get a head start on the next assignment by beefing up the API for the website so that the next phase of the project will be easier.

What will you do next week?
I plan on reading the Refactoring by Fowler book. I have read what has been assigned so far and have really enjoyed it so far! I also plan on learning more about Docker this week so that I can be prepared to use it in the future.  

What's my experience of the class?
This week has been stressful. I wish we had learned more about React and Javascript in class because there were several issues we ran into that could have been mentioned in class. One issue we had was with the asynchronous nature of Javascript. While doing fetches of data from our API in our React app, we ran into several synchronization issues which lead to data not flowing through our app properly. Mentioning the asynchronous nature of fetching in Javascript would help some students be more prepared for this challenge.

Pick-of-the-week!
I recommend looking into Jenkins as an alternative for Travis.CI on a self-hosted server! This allows for continuous integration just like Travis.CI, but on your own server which you can more closely monitor and fine tune. Very cool tool 😊

Check Jenkins out here:  https://jenkins.io/

Sunday, March 11, 2018

Week 8

What did you do this past week?
This past week we set up the database for our website and continued scrapping more data from the internet to put in the database. I also helped a little bit with front-end development.

What's in your way?
We had some trouble finding a good API to scrape from for camera data. We eventually settled on using data from API’s from Best Buy, EBAY, and Flickr. We still need to do some work to make sure that we can get the correct data we need, especially when pulling data from EBAY. The EBAY camera data might not have the correct price information, so we will either need to find some way to make sure it is the correct MSRP price when we get it from EBAY or just get price information from somewhere else.

What will you do next week?
This week I will be setting up the RESTful API for the website and also writing unit tests for the API. I will learn more about Postman and how to use it to test an API. Also, I need to learn about the Flask library for RESTful API’s. This library has been recommended by several friends who have said it makes API creation a lot simpler.

What's my experience of the class?
I really enjoyed the guest lectures we had this week! I have really wanted to take the UTCS ethics course but have not had the opportunity to yet. This guest lecture gave me some insight into a more objective way of analyzing how to make moral decisions. This mathematical way of analyzing decision making is something I had never even considered before and it is a very interesting way to analyze decision making and morals. I wish we could have more guest lectures like this!

Pick-of-the-week!

My pick of the week is general information about the DDoS attack that hit Github last week. Some attackers abused Github’s Memcache system which lead to a 1.7 Tbps attack which is a new speed record for a DDoS attack. More information about this attack can be found here: https://www.techrepublic.com/article/world-record-ddos-attack-hits-1-7-tbps-thanks-to-memcached-flaw/

Saturday, March 3, 2018

Week 7

What did you do this past week?
I spent most of the past week studying for the test. I felt like I learned a lot while reviewing for the test, and have gained a pretty good grasp on the material covered in this first half of the class. I think overall the test turned out to be pretty fair and was challenging but also a good test of our skills with the topics we have learned in class so far.
What's in your way?
This week my main obstacle is finding the time to work on the website and to set up the database. We plan on having this done before spring break, so this task will probably consume most of the week and will involve a lot of designing. I also am very busy this week with other classes and extracurriculars so finding time to do this will be a challenge.

What will you do next week?
Next week I plan on designing and implementing the database so that we can pull data from in over spring break while we are working on the website. We plan on using Postgres, so I will also need to sit down and really learn the basics of Postgres and how best to integrate it with Flask and our RESTful API.

What's my experience of the class?
I have really enjoyed the class so far! I enjoyed studying for the test and reinforcing my Python and Javascript knowledge. I look forward to learning more about these topics but I also hope that we will be able to learn more about general Software Engineering topics and Refactoring. I am very excited to learn about good code refactoring practices and design principles.

Pick-of-the-week!
My pick of the wee is Trello! Trello is an excellent task management tool created by Atlassian, and makes the week sprint style of programming much more effective in my opinion. Not only can Trello keep track of various tasks that the team is working on, but it is also relatively simple and makes it very easy to look at a list of all the tasks for the week in order to decide what task to work on.

Check out Trello!!!