E(pidemic)-Learning: The First Four Weeks
Today marks the end of my first month of out of school e-learning. I've been taking a variety of courses offered on Coursera. It seems like now would be a good time to give an overview of what I've learned so far and what I think about these courses.
Introduction to Calculus
So far I'd have to say that my favorite course has been "Introduction to Calculus", offered by the University of Sydney and taught by David Easdown. It's well structured, detailed, concise, and a good challenge all at the same time.
The main reason I chose to take this course was to learn some basic information about the mathematics that I'll eventually learn in college while also building off of and reviewing what I've learned in high school. I would say that this course fulfilled that purpose pretty much perfectly for me.
The first two weeks of the course were a great overview of important concepts in Algebra, Geometry, and Trigonometry that would be the basis for the rest of the course. The third week introduced derivatives, explained how they were defined in an Algebraic and Geometric sense, and gave examples of derivatives. The fourth week--which I just completed--displayed the useful application of using first and second derivatives to determine the behavior of functions and gave an in-depth explanation of the Chain, Product, and Quotient rules that are a great help when finding the derivatives of functions. The fifth and final week will go over concepts in integral calculus.
The most interesting part of the course for me was learning about the implications of derivatives representing the slope of a tangent line to a given point on the curve. Finding the derivative of a function allows you to know when its values are increasing or decreasing and the key points at which it's behavior changes; this is something that really helps with sketching graphs of functions and finding minimums and maximums.
In terms of time, the course has taken me about two hours a day, five days a week, to complete. While that may seem time consuming, I wouldn't stress about this too much as deadlines on Coursera are considered suggestions and they will not affect your grade. I really enjoyed taking this course and I'd highly recommend it to anyone that wants to get started with calculus.
IBM Data Science
Out of all the courses I signed up for this is probably the one that I was most excited about. I've been interested in computers and programming for a pretty long time now and Data Science seems to be a new and up-and-coming area of interest in the field. I also knew that IBM is a company that's been around for a long time when it comes to the field of computers and I couldn't wait to see what their course would offer.
Rather than being one long course, It's more accurately a collection of 9 courses that all relate to Data Science. So far I've completed the first of those nine courses, It's title being "What is Data Science?". In all honesty it was a bit underwhelming.
However it is important keep in mind that the description stated the course was for "anyone with a passion for learning" and that no prior knowledge of computer science or programming languages was needed. In that sense the first course was probably more of an introduction than anything.
The content of the first course was pretty basic. The first week defined what Data Science was exactly and the vast backgrounds that Data Scientists come from. The second week went over some of the basic skills and behaviors that made a good computer scientist--such as curiosity and the ability to think computationally--and how those skills play into the job. The third and final week talked about some real world applications of Data Science--such as analyzing traffic patterns or figuring out the best shots to take in basketball-- and how Data Scientists present their findings to their employers.
In my opinion, having an entire course as an introduction was pretty unnecessary and even a little tedious, but there's 8 more courses of content ahead and I'm sure that things will begin to get more interesting.
Django for Everybody
Another course that I was really interested to learn about was Django for Everybody: a 4 course specialization offered by the University of Michigan and taught by Charles Russel Severance. Web design is something that I very briefly experimented with in 8th grade, but never really went very in-depth into. Recently I've been learning python and heard about a popular module called Django that allows people to create professional websites. I think that taking this course would not only be a good way to learn about Django but also the basics of web development.
So far I've completed about 60% of the first course in the specialization called "Web Application Technologies and Django". I find the course to be pretty enjoyable and it's pretty much went over what I was hoping it would so far. Interestingly, the first 3 weeks didn't actually use Django. I actually like this however, because it started off by talking about the basics of web design and how servers work in general.
In the first week the course went over HTTP(Hyper Text Transfer Protocol) and the Request-Response cycle. I had expected it to be a bit more complicated(though I'm sure it is if you look into the specifics) and was surprised that the basic concept really wasn't all that hard to understand. Essentially HTTP is protocol commonly used by most browsers and servers on the internet that lays out the methods and practices for communicating with a server.
A basic example of this communication would be when you click on a link. The browser running on your computer picks up this click and then sends a GET request to a webserver, in order to do this a socket is opened that connects the browser to the webserver. Once the server receives the the request through socket it processes the request in the way it's programmed to do so and sends a response back(html code for example) to the browser through the socket. The browser then processes that html code or whatever was sent and creates a webpage based on it.
In the next two weeks of the course, I learned how to set up a webserver with PythonAnywhere and created a very basic webpage. The course has been a lot of fun so far and I can't wait to start making more websites(hopefully more advanced ones than the first one I made).
Mathematics For Machine Learning
One of the things that I really want to learn more about when it comes to programming is Machine Learning. I've heard of a lot of cool things that can be done with it such as image recognition or creating self driving vehicles. I thought that it would be really cool to be able to get in on the fun and work on projects of my own that involve machine learning. It seems to me like a good place to start would be to learn some of the math behind it.
This is another multi-part course, currently I'm working on completing the first of 3: Linear Algebra. The basic idea behind linear algebra is to perform operations between vectors(a 1 column list of items) and matrices(a list made of both rows and columns). The cool thing about this is that matrices are very useful for representing objects in space. In fact, you can represent spaces with as many dimensions as you would like in a matrix.
For example:
[1 0 0]
[0 1 0]
[0 0 1]
could be a matrix representing the unit vectors of a 3D space(Column 1 representing an x value, Column 2 representing a y value, and Column 3 representing a z value). Each column in this matrix could be considered an individual vector in a 3D space. These vectors aren't just limit to one axis and can contain greater and smaller numbers than 0 and 1.
For example:
[3]
[4]
[0]
Could represent a vector being the sum of 3*(Column 1) and 4*(Column 2). You could also create a matrix of different unit vectors(The red matrix being a net set of unit vectors):
[1 0 0] [3 2 0]
[0 1 0] = [5 0 6]
[0 0 1] [0 6 7]
Certain unit vectors may be more useful/easier to work with than others however, one of the things this course teaches you is how to convert vectors from unit basis to another(for example from red units to green units).
An example of a real world example of Linear Algebra can be found in the photo filters used in snapchat and other apps. By representing the positions of the pixels on your phone or computer as a matrix, you could perform operations on each of those pixel matrixes to morph the image.
Here's a photo of a "The Ambassadors", a painting created by Hans Holbein in 1533:
The image looks pretty normal except for the strange skull object at the bottom of the image(believe it or not this image is unedited). By multiplying the coordinates of each pixel by a scalar matrix we can "fix" the skull.
I've already learned a lot of interesting things from this course in a short period of time and I can't wait to start applying some of these math concepts in my own projects. If you've made it this far, thanks for reading my post. Hopefully you found some of these topics interesting.
Comments
Post a Comment