Saturday, February 24, 2018

Week 6

What did you do this past week?
I mainly focused on learning React.js with my team and getting started on the React components of our website. I really wanted to learn more about front-end and React in this stage, and working closely with the front-end team to create components has helped me a lot. I also spent some time writing a scraper to get data for the site and developed some unit tests using postman.

What's in your way?
I do not understand all of the APIs we are using. In particular I have been having trouble with Flickr. I have not been able to pull all of the data I need from Flickr and the documentation on the site seems super sparse and not very helpful. I need to get this information so the front-end developers have dynamic content for the site, and the database needs to be populated.

What will you do next week?
I plan on working on the scraper and also making more React components. I also need to study a lot for the test which is coming up next week, I do not know much Javascript so I think I will need to spend a lo of time working on syntax and recognizing where my weaknesses are with the language and how to deal with them on the test.

What's my experience of the class?
I have not been enjoying the lectures as much as I did in the beginning. Although I still find them interesting, I wish we could cover more technology related to the projects and software engineering in general. All of the small Python syntax details that we are learning are interesting, I just find them to be a bit repetitive and mundane because we have been covering them for a while.

Pick-of-the-week!
This class has increased my interest in writing a solid testing framework. One good tool to use for unit testing a neural network developed with Tensorflow and Python is the Tensorflow unit-testing framework. This library allows you to create a small simulated environment with test and evaluation data so that you can test the coverage and correctness of your Tensorflow implementation in a similar way to the unites library we used in Collatz.
The Tensorflow unittest library can be found here:

Saturday, February 17, 2018

Week 5

What did you do this past week?
I worked with my team to finish the first project for the course. We spent a lot of this week designing our API and outlining our documentation. This allowed us to get a good idea of what we want to do for the project the rest of the semester. I also spent some time learning React and also figuring out the best way to implement the rest of the website with Flask.

What's in your way?
I have been having trouble learning React. It is kind of tricky and I plan to get a book on it so I can get some more formal training. We also need to write a lot of Unit Tests for the next phase of the project. For the first project, we had some misunderstandings between the front-end and back-end teams in getting the website that we had all agreed upon.

What will you do next week?
I plan to write some unit tests for the back-end of our website. Also, we need to get a better workflow to use between our front-end and back-end so that we are more on the same level of thinking and we can better collaborate. This will allow our team to work in pairs without having to be together all the time but still make a cohesive product.

What's my experience of the class?
I really enjoy the class so far! This project has been great and I look forward to continuing the project in future iterations. I really liked the day of class where we acted as programmers and customers to present our work to other groups. That was a very informative experience that gave us some good ideas for the future of the website.

Pick-of-the-week!
I recommend looking at the Darknet for Python and using it with Yolo for object detection. Darknet streamlines the model training process, and Darkflow is a wrapper for Darknet which allows for use with Tensorflow and other Python libraries. Darknet itself was written in C, so the Python Darkflow library is a nice addition because it allows for use of Python.
You can find Darkflow here:
And Find Darknet here:
And the guy that made darknet has a crazy resume lol:

Saturday, February 10, 2018

Week 4

What did you do this past week?
My group and I finally started on project 2! I am very excited to start on this project and do a lot of the backend work! Setting up the environment and workflow with the team was pretty tricky, we finally decided to use Docker and Amazon EC2 to simplify our workflow and publish our app on the internet. We secured our domain name (natphoto.me) and have already started pushing some front-end work onto the site.

What's in your way?
The part of my team that is working on backend needs to sit down and design the models and schematics for what our backend pipeline and data will look like. I have some experience with Flask but will need to spend more time working with it in order to implement the beginnings of our app’s back-end for this project. I would also like to read up on React so that I can help a little bit with the front-end if possible.

What will you do next week?
I plan on reading up on Flask and React so that I know the basics of all the technologies we will be using to create our app. Also, I plan to implement the back-end for project two as soon as possible in order to jump right into some of the project three requirements so that I can get ahead.

What's my experience of the class?
I wasn’t as interested in the lectures this week as I have been in previous weeks. I don’t have as much interest in the very obscure details of python syntax, and that is mostly what we covered this week which is why I had trouble paying attention. Although it is good to know these small syntax details, I think covering more things related to software engineering and web development would help prepare us for the project and keep people interested in the lectures!

Pick-of-the-week!

I have been using Python to do more image and object recognition this week! I highly recommend checking out YOLO for real-time object detection and deep learning for better object recognition results. Here is the link to YOLO: https://pjreddie.com/darknet/yolo/

Sunday, February 4, 2018

Week 3

What did you do this past week?
I spent most of my time finishing the first project for the course. I was stuck failing the final test on HackerRank for a while and was frustrated because, even after implementing the meta-cache and lazy-cache (on top of other optimizations I discussed last week), I was still failing the final HackerRank test. Turns out I just had a part of my code that could result in an infinite loop because I forgot to increment, and this is why my code was timing out on the final HackerRank test. After figuring this out the rest of the project went smoothly luckily!

What's in your way?
I don’t have anything significant in my way going into this week! I just need to review for the upcoming quiz and meet with my team so we can start on the first group project for the course.

What will you do next week?
I just need to review for the upcoming quizzes and meet with my team so we can start on the first group project. We plan to meet on Monday if the specs of the project have been released. We want to get a head start on this project by starting early.


What's my experience of the class?
My experience has been great so far. I felt like I learned a lot from the first project and turned it in expecting full points, so I think that is a good place to be at this point in the semester. I think I will enjoy the course even more once we start the big group projects.

Pick-of-the-week!
My pick of the week the documentation and tutorials on OpenCV for Python! What better way to practice the Python knowledge learned from Software Engineering with Downing than to read about image manipulation, analysis, and recognition with OpenCV and Python? Some of my favorite lessons include image thresholding, image gradients, Canny edge detection, and contours. Combine these topics with the tutorials on feature detection and machine learning using OpenCV and you will have a pretty wide array of new tools to use with Python!

I have been particularly interested in the image processing tutorials available here: https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_table_of_contents_imgproc/py_table_of_contents_imgproc.html#py-table-of-content-imgproc

Saturday, January 27, 2018

Week 2

What did you do this past week?
The first part of the week I spent most of my time doing the readings and reviewing Python to prepare for the quizzes and projects. I especially found the reading about EXTREME PROGRAMMING (it’s so extreme that it must always be typed with caps-lock on) interesting because it provided me insight into another efficient software development workflow that is supposed to increase efficiency by improving the communication process between customers and programmers. This workflow is somewhat similar to the SCRUM software development framework, so it will be interesting to read further in order to provide more contrast between the two and to understand if, or when, one is better than the other. I plan to discuss this comparison once I finish all of the readings on the topic in a few weeks.
I spent the second half of the week working on the first project for the class. I have made significant progress and am passing 2 out of 3 HackerRank tests right now.

What's in your way?
Currently, I am focusing most of my attention on finishing the first project for the course. Unfortunately, today I had trouble implementing the eager cache optimization for the project. I have completed all other optimizations to the project that I could think of, but this is only allowing me to pass 2 out of 3 tests on HackerRank. I hope to complete the eager cache optimization tomorrow which will also hopefully allow me to pass all the tests with my highly optimized program.
I also did not do as good as I would have liked on a quiz this week, I plan to study more next week for that quiz.

What will you do next week?
I plan to start next week by finishing all the optimizations necessary to pass all the HackerRank tests. Once completed, I will make sure I have completed all of the other requirements in the first project’s workflow including code styling and git requirements.

What's my experience of the class?
I have really enjoyed the class so far and have been especially enjoying the first project! This project has given me practice working with git and also made me more diligent about writing a solid testing suite for my software.

What's my pick-of-the-week?
As mentioned in the previous section, I have been really enjoying learning about Extreme Programming and comparing this framework with SCRUM. If you have not had a chance to work in a SCRUM environment or learned about SCRUM, I highly recommend this FREE web series that will teach you the rules necessary to thrive in a SCRUM workflow. Follow this link for some cool videos on SCRUM: http://scrumtrainingseries.com/

Saturday, January 20, 2018

Week1

My expectations of the class.
The main reason I am taking this class is because I will have a software engineering oriented internship this summer, and I would like some formal training in software engineering from this course. With that being said; my expectations for the course are that I want to be challenged with relatively large scale team projects that are similar to real-world industry projects, I want to develop better technical skills related to software engineering, and I would like to become more experienced with properly testing the software I develop to encourage a more efficient workflow with less time searching for bugs.

What I did this past week.
This past week I was given a basic orientation and overview of the class structure and technologies we will be using. On the second class day, we also worked on some introductory Python concepts such as assert statements, running Python scripts, and importing Python libraries. I spent some of my own time outside of class reviewing Python and preparing for the quiz.

What obstacles are in my way going into next week.
I still need to get my textbooks for the course which include Extreme Programming Installed, Database Design with UML and SQL, and Refactoring: Improving the Design of Existing Code. Also, I would feel much more prepared for the coming weeks if I spent some time practicing and reviewing Python on my own. I plan to work on some Python concepts that we won't be discussing in class in order to gain some elevated understanding.

What I will do next week.
The main things I will be focusing on next week is reviewing Python on my own, practicing on HackerRank to improve my Python mastery, and hopefully getting an early start on the first project for the course which is due the following week. I also will spend some time reviewing for the daily quizzes.

My experience of the class so far.
So far I have not had enough taste for what this class has to offer to properly rate my experience. I did enjoy the first real day of lectures in which we covered the basics of Python. I learned a few tricks about Python that I did not know before and also got a good feel for what to expect in lectures for the rest of the semester. I think I will really enjoy the lectures in this course and am expecting to get a lot out of them.

Pick-of-the-week!
I have been reading through this excellent book covering the basics of web development with Ruby on Rails (https://www.railstutorial.org/book/beginning). The entire book is posted online for free by the author, and Ruby on Rails is a very interesting tool for web development that has led to some very cool software projects on the web. The book is online for free, so there is no reason not to at least skim it to learn some cool Ruby on Rails concepts!



Side note, don’t wait until the night before to do the blog posts for this course. If you want to really have time to reflect on what you have done throughout the week, do the blog post in little bits throughout the week, and then review at the end of the week to solidify your writing and understanding of the week’s material.