Friday, October 31, 2014

Extra Blog: if (today == "Monday") {

The days leading up to the First Lesson feels like time crawls by very slowly. I have a solid foundation of what I want to say, but other factors other than the senior project are currently pressuring me for next week (11/3 - 11/7). In addition to presenting my topic, I also have a midterm as well as a yearbook deadline on that exact same day. Also, that is when the UC application submission time opens up and I still need to (at the time of writing this) type out the essay to the 2nd UC prompt. However, despite this work that I got myself into (2 college classes, Yearbook, and UC applications), I still feel confident in my my 1st Lesson. The following text will be about what I generally plan to say and what my reasoning is for saying these things. Not only will this help me to organize my thoughts and organize what I have to say in my lesson plan (since it's too long anyways), but I can also complete this month's extra blog as well. Hooray for multitasking!

The hook I want to start off with is show pieces of technology that have become an essential part of our lives. I want to show things from super complex computers to minute programs such as the TI calculator. The goal of this is to get the audience to relate to what I have to say. I will then ask the audience what is in common with these different devices - what makes them run and do what they do. The answer will be Computer Programming. I will then state that this is what will influence society in the present as well as in the future.



Pictures I will use for the hook.

After, the hook, I will say the overly generic introduction everyone has to say: "My name is Jason Wu, my topic is Computer Programming, and my Working EQ is 'How can an individual become a successful Computer Programmer in the 21st century?'"

The main points I want to covering my presentation are "What is a Computer?" "What is Computer Programming and why is it important?" a class "activity" where I ask people what a block of code means, explain that block of code using code I will put on the white board, and my first answer to my essential question. Although it seems like a lot, I feel that doing this exercise helps to support my reasoning for my first answer not only in just stating facts, but in practice as well. Teaching people the basics of computers, programming, and simple code embodies my answer to "Have a solid foundation of programming knowledge in coding through practice"

I will state the question "What is computer programming?" and emphasize that in order to fully understand what it does, one must know what a computer is at a basic level first. My plan is to explain are computers are any kind of technology that interprets binary code into an action. This binary code, on or off, can be described in physical switches or electrical current flowing through wires. After this, I will go back to show examples of modern computers and applications that run on programs. An additional statement I will make, if I find I have enough time, would be how simple technology like 9 digit calculators are considered computers as well as the wires and transistors are represented as off or on.


Pictures I will use to illustrate the products of programming.

Once I state this, I will transfer over to the topic of "what is computer programming and why is it important," Computer Programming allows us to go beyond simple calculators and makes the altering of 1's and 0's into something legible. Here, I will cite my source from an article on Wisegeek titled "What does a computer programmer do?" saying that "computer programmers design software in logical work flow charts" through different programming languages. I will summarize this stating that computer programming basically represents the 1's and 0's in a visual form of plain English that the computer will understand. In order to ease people's fear that code is overly complicated, I will reassure them that coding can be complex, but having a good foundation in coding will lead to success in the future. If there is time, I will state this is my answer which I will explain shortly. This will lead into showing a simple block of code - the "if statement."

The "if statement" will look like this

I will ask the audience to try to explain what the "if statement" says. I will describe each line and symbol briefly to both  to provide a basic under standing for the audience. I will use printed out pieces of paper with the code on them to illustrate each point. I will reference the book "A Smarter Way to Learn Javascript" as it taught me in this way also.

Reused picture from September's Extra Blog!

Once I finish with my explanation the "if statement," I plan on stating my first answer to my EQ: ""Have a solid foundation of programming knowledge in coding through practice." Here, I will cite my mentor as she taught me how it is obvious when hiring when someone does not know the basics. She encourages that becoming an expert requires dedicating time and practice towards obtaining programming knowledge.  In addition, I will also cite norgriv.com which states that in order to master a programming language, one must continuously use and practice coding with that language. Mastery of in a field of work is desirable of employees and will lead to success in the 21st century.

I will conclude with: "Thank you for listening and participating in my lesson. Remember that having a good foundation in computer programming is essential for success. Therefore, as a parting word, remember this: creating things in life is difficult, but for computers, creation is literally at your fingertips."

TL;DR
I will hook with questions regarding current technology and cover what a computer is, what computer programming is, what an "if statement" is, and what my first answer to my essential question is.


Wednesday, October 15, 2014

Blog 8 - Research and Working EQ

(Apparently I posted something similar to this already in September's Extra blog)

1.  What is your working EQ?

How can an individual become a successful computer programmer in the 21st century?

2.  What is a possible answer to your working EQ? Please write the answer in thesis format. 
  • Have a clear understanding of the specifications of a program
  • Continuous learning of new skills and languages as technology changes with time
  • Good communication, planning, and responsibility with the team you work with
  • Have a solid foundation of programming knowledge in studying algorithms, knowing many languages, and practicing over a long period of time
3.  What is the most important source you have used that has helped you come up with an answer to your working EQ?

The most important sources that has helped me to come up with and answer to my EQ has been my mentor and my own experiences so far. From what my mentor says and from what she does, I came up with the answers "Have a clear understanding of the specifications of a program" and "Have a solid foundation of programming knowledge in studying algorithms, knowing many languages, and practicing over a long period of time." I developed these answers due to my mentor stating that the programming field is a "Life-time learning experience" where one would have to continually learn how to operate or use new forms of technology. This is similar to what Clint Shank, a writer of technological subjects, once said:

"Technology changes fast. Don't get left behind."

However, although this is a very viable answer, my mentor is continuously telling me that learning developing takes a large amount of time, and with that too comes a large amount of time to learn languages. I have also read in an article that in order to master a programming language, which means to have an understand and a feel for the advantages and disadvantages the languages in certain situations, one must dedicate a large amount of time using, practicing, and learning the language. However, sometimes with the demand of the programming workplace for new projects, there may not be enough time for complete mastery of a programming language. It can be possible that just knowing how to use a program effectively maybe enough for the company's needs. I will need to look into this more. As for algorithms, which are ways to solve programs and identify the time it will take a program to find a solution, my mentor said that if you have a solid foundation, one would be very good in programming and figuring out what to do when a program runs into problems. 

The answers "have a clear understanding of the specifications of a program" and "good communication, planning, and responsibility with the team you work with" are derived more from my own experiences. The understanding of specifications, or the understanding of what the program is used for and what will be required of it, is very apparent in the independent component I am working on right now. My mentor gave me a list and explained to me the many requirements I must have on the website I will be making and I observed the immense detail in what needs to be required. She stated that in the workplace, employees are given sheets like this to work on and that everything must meet these requirements and cannot deviate from what is said to do. Therefore, one must understand the specifications very deeply. I will be experiencing more of this as I continue on the component.

That answer also relates to the next answer, but in a different way. "Good communication, planning, and responsibility with the team you work with" came from how I sat with my mentor to work out the exact requirements and specifications of what I needed to include in the website. She stated that whenever some one gives her, or anyone else, a service request (a request to develop something for a customer), they must sit down with the customer to talk about specific detail of what they want, what they need, and whether their request is reasonable in the stated time span. Also, a topic in many different articles I have read emphasize communication of your thoughts through code as well as the communication with others. The articles also emphasize planning to have organization with workers. My mentor even has a sheet that lists the specific duties of members. Therefore, planning and communication is vital as well. (I also inferred this from group work in iPoly, although this is not related to programming.)

4.  Who is your mentor, or where are you doing mentorship, and how does what you are doing relate to your working EQ?

My mentor is my mom, Lily Wu, who helps to teach me how things are done at her workplace. It relates to my EQ since what she teaches me and is having me to for my Independent Component #1 is based on her own, current experience as a successful 21st century programmer. Therefore, what she tells me and what I learn from her all related to my EQ, "How can an individual become a successful computer programmer in the 21st century?" This mentorship is a direct source of information towards answering my EQ.

Wednesday, October 1, 2014

Blog 7: Independent Component 1 Approval

1.  Describe in detail what you plan to do for your 30 hours.

I plan on making a website that includes different kinds of functionality that a standard website has and other functions that my mentor will suggest that I add. Some of these functions that we currently have in mind are multiple pages, animated objects, and an email box. After the initial creation of the site with its basic functions, more things will be added later to add depth to its interactions and make it look visually appealing.

2.  Discuss how or what you will do to meet the expectation of showing 30 hours of evidence.

What I will do to meet the extra 30 hours is spend:
  • 10-15 hours reading and learning about HTML, CSS, and JavaScript and how to integrate them with each other
  • 10 hours making the initial framework and functionality of website
  • 5-10 hours adding additional features to the website.

3.  And explain how what you will be doing will help you explore your topic in more depth.

Creating a website will not only make me familiar with HTML, CSS, and JavaScript, but it will also help me understand the software in which I will use and give me experience in the process of actually making a website.

4.  Update your Senior Project Hours log.

Updated.