Thinking algorithmically

There is no doubt how powerful computers can be, and now days we can’t really imagine our lives without using computers at school, at home, at our jobs.

For me, everything started when I decided to study computer science as my undergraduate degree. I didn’t really have experience in programming and coding, but I was very interested to really understand how computers work and understand what can be accomplished using them.

I always loved puzzles as a kid, and to me, programming felt the same way. It was fascinating to see how organized my thinking became, and how you can break down any kind of problem into smaller tasks.

Learning how to code is exactly like learning a new language, where you have to learn the grammar, study the rules in order to fluently learn the language, and as they say, the more practice you have with it, the easier it gets.

The fascinating realization for me was when you study different programming languages, you understand the differences between them, and you choose which language can be more efficient when working on different applications and software.

IEEE ranking sheet of top programming languages of 2017, according to their popularity

From all the languages, I really like Python.  Python can be used for internet development, for scientific and numeric computing, for GUIs and other software applications, and because it offers so many libraries that you can import in your code, usually is the most popular and most used language.

For my undergraduate thesis, I used Python to do a sentiment analysis on Michelle Obama’s speeches from different years, to understand the connotation of each speech, and then I showed the results using different visualization graph, also using by importing python’s library in my code.

Here is part of the code from my final project:

To explain a little bit what is happening with the code, I have  a list of speeches ( 8 speeches from 2008-2016), and after I do a sentiment analysis, I also look for 5 particular traits on each speech (openness, conscientiousness, extraversion, agreeableness, and emotional range).

After the analysis is complete, I show the results using graphs as visuals.

As Jeannette Wing explained in her video, learning how to code and program, can really help with computational thinking.

Computer Science helps you with how to find solutions to different problems we face, and not just homework assignments. Thinking “algorithmically” about the world, helps you to tackle the problem fundamentally, by breaking it down in it’s easiest parts, studying it and find better solutions to the possible errors, just like running a program in the console.

And what is really interesting to me is the fact that now days, we can combine the power of computing and programming with any other discipline and the options and opportunities on what can be achieved are limitless. From social sciences, to humanities, to fine arts, to engineering, science and technology we can expand our curiosity and knowledge, and we can help in designing efficient solutions to make our tasks easier.

Resources:

Evans, David Introduction to Computing: Explorations in Language, Logic, and Machines. Oct. 2011 edition. CreateSpace Independent Publishing Platform; Creative Commons Open Access: http://computingbook.org/.

Irvine, Martin An Introduction to Computational Concepts

Wing, Jeannette Computational Thinking