Search This Blog

Monday, April 15, 2013

Successful People in Computer Engineering: Petr Mitrichev

   The next post is to talk about a particular person who succeeded in the discourse community. His name is Petr Mitrichev, a Russian programmer who competes in programming competitions. In this world, he is considered a superstar and a well-known athlete. His success in a specific tournament, GoogleJams got the attention of Google, and he was eventually hired by them. He does hold many qualities of being a computer engineer; smart, well-focused, organized mind, and the ability to look at a problem and create a method of solution. His tournament stats are listed on the link below:

http://community.topcoder.com/tc?module=MemberProfile&cr=10574855


It is interesting to see his style of programming. As a beginner, I have to admit, it is a little hard to see his thinking process, but his live performances during these competitions are on his YouTube page. Here is an example of one of his videos:


'Being' a Computer Engineer

   General info of what a typical computer engineer looks like, unlike most professions, the required attire is usually not a suit and tie. Mostly, it's whatever you want to wear, whatever makes you feel the most comfortable. However, the pay is still pretty large. The NACE, an organization that uses statistics to estimate the yearly salary of college students graduating with a certain degree shows that computer engineering as number 1, with $70, 400. Here's a full chart of the NACE. What is interesting here is it's just not computer engineering that has the highest salary, it's engineering in general. In the top 10, 8 of the degrees are in the engineering field:

Taken from the NACE: http://www.naceweb.org/s01232013/top-majors-salary-survey.aspx

Values and Beliefs of Computer Engineering

   In order to be an engineer, there are many values one must hold. For one thing, there always is the motive to constantly build and improve what already exists. Why be a computer engineer? Because the thousands of lines of codes required to make a program run and seeing it all execute properly is, in my opinion, something rather marvelous.
   Also, there are a set of ethics that one must abide by to being an engineer. Though a lot of it seems like common sense, such as respect your peers' work, do not steal one's work or ideas, it is necessary to know that an ethics code does exist. The link to website is here:
http://www.nspe.org/Ethics/CodeofEthics/index.html

'Doing' in Computer Engineering

   Since computer engineering is a specific area from engineering, one must act like an engineer as well. This includes constantly looking at something and thinking 'how could I possibly make it better?' Computer engineering isn't entirely based on building computers (though mostly). The field can still apply to building other things. For example, we have a naval boat project for our engineering class. The requirement was to build a boat that could drive on its own, carrying an orange around a pond. The idea was to make us think of different ways to approach this problem. This is currently how our boat looks:








   Another example of engineering applying to other areas happens to be in food. Rob Rhinehart, an engineer, created a drink that holds all the nutrients necessary to live. Basing his formula on the recommendations from the FDA, he mixed different substances through trial and error to achieve this drink. It's pretty impressive because he claims that the cost to create this drink versus the cost to constantly buy food is cut significantly. Pretty useful for college students, especially with money tending to be a tight. Here is a link of the drink 'soylent':
http://soylent.me/

youtube video below:


twitter page:
https://twitter.com/robrhinehart

Wednesday, April 3, 2013

The 'Saying' of a Computer Engineer

  Being able  to talk the language of being a computer engineer is an important task. One main reason is because coding is in a sense a different language. There are some terms that must be known, such as memory, variables, for, if, when, while (these basic words are commands that have different meanings in computers) and a flow of logic to understand it.
  Currently, I'm taking an intro to a programming class right now, and working on some problems. One of them is making a basic food donation-request table, a pretty basic array of integers and strings. Here's what part of it looks like:


/* Daniel Josol
   COP 3223
   Assignment 3a */
   
#include <stdio.h>
//100 objects needed
int donatelist[101];
int requestlist[101];
char dfoodlist[101][30];
char rfoodlist[101][30];
int donindex=0; //Best to assign an index number to both lists in order to keep track of them
int reqindex=0;
int main()
{
    int a=0;
    for (a=0; a<100; a++)
    {
      donatelist[a]=0;
      requestlist[a]=0;
    }
    int choice = 0;
    while (choice != 5)
    {
    printf("\nSize of donate list: %d\n", donindex);
    printf("Size of request list: %d\n", reqindex);
    printf("Menu interface: \n1. Donate\n2. Request\n3. Fulfill Oldest Request\n4. Print Status Report\n5. Exit\nEnter Option: ");
    scanf("%d", &choice); //All these functions below are void functions, void = no value is returned
                if (choice==1)
                   Donate();
                if (choice==2)
                   Request();
                if (choice==3)
                   Fulfill();
                if (choice==4)
                   Printer();
    }
    
    
    system("pause");
    return 0;
}
This is how the main class looks like, the functions are included in the original file. It opens up the basic command prompt, pulling up a menu like this:

It's a very basic language, C, there are many other more practical languages to learn in the future, but those that are trying to get started, C and Java are good places to start. It is an important skill in order to 'speak' the language of programming. There are strict rules on syntax and how it must be typed. One wrong key could ruin the whole program.

Tuesday, April 2, 2013

Discourse Trends: Computer Chess

  The Terminator series, a well-known movie directed by James Cameron, is about a mother, Sarah Conner, protecting her son, John who is destined to be the leader of the human resistance against machines in the future. How is this in any way relevant? Well, there was this idea among computer engineers that we could make computers so advanced that they would do everything for us. However, this idea was proven wrong. In program chess, one testing field for artificial intelligence, computers have evolved enough to beat even the grand masters of chess, but one tournament holds interesting results. A chess tournament several years ago held the following constraints:


  •  any amount of players could be on a team
  • any amount of computers could be used by that team

The expected results: a supercomputer paired with a grand-master would win the tournament
The actual result: two amateurs and three laptops.

The results of this tournament shows the efficiency of human-computer interaction. As Gary Kasprov, one of the best chess players of all time comments "Weak human + machine + better process was superior to a strong computer alone and, more remarkably, superior to a strong human + machine + inferior process."

A link to the TedTalks lecture is here:

Thursday, March 28, 2013

Intro

public class BlogOne
{
   public void main (String args[])
   {
       System.out.println("hello world");
   }
}

  "hello world" - a well known phrase of the Computer Programming community. Every programming language writes a program that prints out this phrase. There is no particular reason, it's just been tradition among programmers.
  James Paul Gee wrote an article on discourse communities called Literacy, Discourse, and Linguistics. In this paper, he discusses that in order to be accepted in a discourse community, it takes more than just knowing the information of the community to be let in. It requires the saying, doing, being, believing and valuing of a discourse community in order to be accepted in the community itself. The next five blogs will briefly cover each of the five sections of the discourse community and more.