Navigation

Showing posts with label coding. Show all posts
Showing posts with label coding. Show all posts

Friday, August 23, 2013

a brief manifesto on education and the future of our technologically-reliant society


“It must be a strange world not being a scientist—going through life not knowing—or maybe not caring about where the air came from, where the stars at night came from or how far they are from us. I want to know.” 

-Michio Kaku 


When I was 10 years old, I began to see the world of electronics unfold around me. Gradually, many of my friends were excited at the process of obtaining their own cell phones; I remember the Motorola Razor was in style when I was in middle school. Today, I look around and see 10 year-olds using smartphones to check Facebook and play games. As computers, cell phones, tablets, and other electronic devices continue to play an increasingly eminent role in the development of modern society, it is important that young students gain a better understanding of how these devices work as to understand the power of their roles in our everyday lives.

My parents gave me my first cell phone when I was in 6th grade. It’s the type of phone that has become termed the “dinosaur”: a three and a half inch phone with a square screen measured about half an inch on each side with large pad-dialing and no cover. I had been excited to finally have ownership of this thing I learned to call a cellular phone. In late elementary school, I was exposed to the world of computers, having typed my first assignment all by myself. I was fascinated by the huge monitor, the wireless mouse, and the CPU. As a kid, I had no idea how these devices worked, but I knew one thing for sure: they offered me an awful lot of convenience in life. Instead of walking in to an office near my bus stop to call my mom and tell her I was there, I could call her directly from my cell phone. Rather than trying so hard to write in a straight line as neatly as I could for my science poster, I could type on Microsoft Word, and even make my words fancy with WordArt.

For the past 18 years of my life, I have taken these electronic devices for granted. I use them daily for my social life, school, work, and other resources. During my pre-collegiate life, I was too familiar with the stereotype given to students who were interested in the details of electronics. They were termed geeks and nerds, and commonly labeled to have “no life.” The internet portrayed them constantly sitting in front of a computer with no rays of sunshine seeping through their windows. This falsified image is what initially drove me away from computing, and I even neglected my computer science classes upon entering college. However, after a year of meeting so many diverse individuals and finally taking my first computer language class (read my initial reaction to C++ here), I have grown to have tremendous respect for those who excel at computer science – the individuals who have allowed society to now rely on dependable devices.

As stated in this NY Times article which was published a few years ago, I believe that there are two major changes needed for the education of younger generations: the public perception of computer scientists which is ingrained in young students’ minds, and the need to implement computer science in their education so students can better understand the power it plays in their everyday lives. The UCLA Computer Science Project has had great progress and success in exposing high school students to the realm of computer science. The curricula emphasizes problem-solving through brainstorming and interpreting algorithms while incorporating social analysis concepts for students to better understand what computer science algorithms are realistic for today’s society.

I believe that the work of the UCLA Computer Science Project and other similar projects can be extended to younger students in elementary and middle school. At that point in their lives, kids are most curious about their surroundings and how things work. By learning algorithms at a young age, students develop logic and critical thinking skills, ultimately improving their skills in other subjects such as mathematics and even language arts. They could outgrow the idea of a geeky computer scientist frantically coding and gain more respect for individuals who ensure the development of safe technology for the general population and maybe, one day, become the person to form the next groundbreaking device for future generations. Perhaps these kids will develop a liking for making games or designing animations. One unknown success of the computer science world is the progress made in the Wireless Health Industry. The well-being of humanity is becoming even more dependent on the research in computer science areas. Athletes rely on wireless devices to improve their stamina and performances, and individuals are able to measure their heart rate and temperatures on-the-go without the need for overwhelmingly expensive equipment.

Students who are educated and inspired by computer science will ultimately gain skills and ideas that are worthwhile for a lifetime. The goal is not to be converting every child into a future computer scientist, but to have them understand basics in the world of electronics which is gradually becoming a core part of society. As more affordable and convenient devices are being developed and, most importantly, understood by the general public, computer science developments can not only changing the lives of those in Los Angeles and the United States, but the lives of people all over the world. 

Monday, July 8, 2013

scrumptious comp sci

From the deepest realms of my mind is where I must dig with passionate love and hatred in order to successfully write a C++ code. 

The human mind is a funky one. While a child may be extremely imaginative and undoubtedly creative, many may argue that a child lacks the patience to thoroughly rationalize information. As we grow into adults and encounter situations which require some sort of logical thinking process (maybe practicing common courtesy, or trying to figure out how an exam is attempting to trick us in every way possible), our brains supposedly reason more than they used to when we were toddlers. 

Reasoning with children is a difficult process. I'm not even referring to a school setting where it is nearly impossible to explain some basic grammar concepts to them without some fidgety kids here and there. Just think of a common scenario where a child insists on buying his/her zillionth toy of the week, having forgotten that there are other new toys lying idle on the floor at home. Then the parent is likely to try to reason with (or scold) the child. Fact 1: You just bought the same toy of a different color yesterday. Fact 2: Your toy is not broken. Conclusion: You may still go home and play with the same toy and (possibly) feel the same joy as you would if you owned a blue toy truck instead of a yellow one.


When I began learning C++, it certainly felt like I was instructing a child.. a very stubborn child who only obeys me if I speak to him/her in with the perfect voice tone and language. Forget one condition and this child goes wild. In a good (and a bad) way, this child called the computer is unable to throw emotional tantrums at me if I instruct it incorrectly. Yet I must spend hours, maybe days, trying to figure out exactly where I misspoke in addressing this child who only speaks one language at a time. Furthermore, there is this identification process the computer child makes with the ASCII table that took me far too long to figure out. Well, that's the setback of having a mute child who only communicates with me through error messages on a monitor..

For me to communicate with my computer child requires the utmost patience. This patience isn't a patience I must practice with someone or something else, but is a patience I must learn to have with myself. The computer child is an inanimate object. I can scream viciously at it when it refuses to compile and read my commands as I desire, but it has no reaction. In the end, I only frustrate myself further. 

Programming in C++ certainly requires concentration and self-control and really tests my level of patience. C++ is able to create simple "Hello world!" and mathematical calculations to some of the most powerful applications present today. What's fascinating (and equally draining) about C++ is its lack of abstraction. Every little detail must be coded in order for the computer to dissect the instructions we give. C++ forces me to think deep down and rationalize (the human ability to rationalize is a gift that many don't use... and I think it is often taken for granted). It's truly testing whether or not I know what I may think I know.

Well, C++, allow me to forget a semicolon or an equal sign for you to disobey my commands occasionally. One day, I will learn to communicate efficiently with you.