Venn K Project One Final
Venn K Project One Final
7/13/2013 AWD
Part I
A common misconception Ive perceived amongst my friends is that computer science is just about writing code. In fact if you were to ask the average person what a computer science (CS) major does, they most likely wouldnt be able to expand any further than what theyve seen in the movie, The Social Network. With that, they may say the main character references writing code here and there and then loosely goes into some business aspects, but CS is much, much grander than that. For some individuals it can be as specialized as writing the firmware that makes the 1mm chip in a pace maker work. For others it can be as broad as starting entire companies almost singlehandedly. Ive personally concluded that CS can be broken into three or four main aspects. The first would be the technical side of CS that involves all of the theory as well as actual development/coding; this is the side that is the most recognized. Theory itself references the more math and logic based side of CS; this is the type of logic that would be used to produce the algorithms that, lets say, stitch two images together automatically in Photoshop. The development side requires a background in theory, but is much more mechanical; this is the aspect responsible for building, creating, and architecting an application. The next aspect of CS Ive recognized is the design. Design can come down to anything that is user-facing; essentially responsible for making an application/product look good. This would be the side that requires an understanding of psychology and usability. Designers are usually those who are responsible for how an app looks and feels. Theyre the ones who created the icons for Facebook and Twitter as well as picking the color scheme for Google. In addition, having superior artistic ability and a sense of creativity are crucial pieces of design. In a similar vein, the final important aspect is the business side. This requires the ability to market an idea, or even create an idea that you know people will want
7/13/2013 AWD
or need. This may be the furthest removed from CS but it is an area Ive dealt with a great deal in my field. In my work experience, Ive particularly dealt the most with development. The title Ive held at both of my jobs (Intuit and PayPal) is Software Developer; this essentially means I go into work and I bust out code. The deeply theoretical side of CS was covered much less in coops and much more in classes. I personally prefer coding the most out of all the aspects of CS, but I still recognize and appreciate the merit of the other pieces. At both coops Ive had to work very closely with a team of designers and give my input on how elements on a page may have to be laid out due to a variety of factors. From this experience Ive definitely acquired an analytical eye for design and apply that almost automatically when viewing websites and mobile applications. Ive had the least experience with the business side of CS through my coops but there were still many instances where I worked with my marketing team and given valuable input on how we should market/explain a feature Ive recently added. Having an eye for business is much more useful when employing entrepreneurial development. Ive decided Id like to start my own company in the near future and in the mean time Ive been developing mobile applications on my own. Ive noticed in doing this type of work, I spend a great deal of time working out budgets and figuring out how I can best market my app. Ive also had to do all the preliminary design work myself but have fortunately partnered up with one of my friends who is an extremely capable designer. But I can only imagine there will be many more technical, design oriented, and business based hurdles in my near future.
7/13/2013 AWD
Part II
As stated previously, CS can be as broad or as narrow with regards to any of the fields mentioned above. So it is usually the case that people in my major will specialize in one of the following genres: technical, design, and business. Each one has its own very distinct form of writing and particular audience it caters to. Technical writings tend to be exclusively for developers; generally only people who write code and work with theory will understand these works. The reason for this is that the technical side of CS isnt just a set of terms and definitions, but rather a set of abstract concepts that have been building on each other over the span of our entire education. I personally understand this genre the best, most likely because it is what Ive been taught and work with the most. Design is a genre that some computer scientists may never work with, but for those that do, the authors usually write very comprehensibly. The deeper you go into the art of design, the harder it is to understand the jargon; these works are usually meant for people who make design their profession. But since web development and web design are so tightly coupled, most of the articles on the topic only go into surface level design concepts. This makes most works extremely accessible to those who arent very comfortable with the creative side of user-facing development. Then the most prolific works are usually those catered towards the business minded and entrepreneurs. These articles are usually written in a way that most people can understand since following the growth of startups has become a new trend. But occasionally I will stumble upon an article that goes completely over my head, often referencing various court cases Ive never heard of and using word combinations that appear to be made up. This genre is the one I know the least about but also
7/13/2013 AWD
have the most interest in learning (since it is a topic I feel to be very important to CS, but that doesnt get covered much in class).
Part III
I searched through various databases and different organizations to try to find a source that exemplified all of the topics I felt represented Computer Science best. Just as I was getting discouraged, I realized there had been a textbook example right in front of me the entire time: Googles Android Development Documentation (http://developer.android.com/). One of the biggest reasons this site showcases all the facets of CS so well is because Google is amongst the forerunning companies in the field; they have been setting design and developmental standards since the early 2000s. The best part about this source is that it is conveniently broken into the three genres I had previously established. Right when you first enter the website you are presented with three beautifully laid out, minimalistic links that bring you to the three different sections of the site: Design, Develop, and Distribute. The parallels to the genres should be readily apparent with Design being the design genre, Develop matching with the technical genre, and Distribute aligning with the business aspect. The particular purpose of this resource is to inform and instruct all of those who would like to learn about the three topics specified. This type of web page would be considered documentation in my field since it is the documented standards and best practices for creating an application for the Android operating system. This source includes all of the intricacies of the language of Android (which is Java) as well as all of the methods provided by the Android Software Development Kit (SDK). Now that the purpose of the site has been established, it will make sense to point out some of the stylistic aspects of the opening page. Immediately upon entering the site, you can see that it is laid out very simply and elegantly - even the tabs exercise alliteration. You can understand that the reason
7/13/2013 AWD
for this is that the website is supposed to reflect the greatest pieces of design and developmental work since that is what the site is trying to instill in its readers. The first page also has a banner of videos and tech news related to Google. One video that sticks out is titled Cognitive Science and Design in which a Google designer is giving a speech to a room full of developers. He does a wonderful job of converting his psychological concepts into a form that many Computer Scientists will understand. In the speech itself he references how code is compiled twice once on the computer and once in the mind of your users. This quote speaks volumes about the range of people that these concepts apply to. After seeing this first page, the users eye is then drawn to the subsequent sections, all potentially geared towards different audiences. To go into some depth, we can see that the Design tab can most likely be understood by most people, while holding a greater meaning to those who have worked in the field. The design section is definitely written with much more finesse than any other. An example of this is in the headers of the Design Principles sub section where some of the headers are: Enchant Me, Simplify My Life, and Make Me Amazing. These sections go into the psychology of the user and talk about how people feel great when they figure things out for themselves. This is a great resource to consult when working out the user-side semantics of an application. For obvious reasons, this section has a great deal of images as well as assets (icons) available for download. The images do a great job of representing examples of many of the design standards set by Google for app development. The development tab on the other hand is meant for a much narrower group of people. While there are subsections that are simplified and meant to act as a tutorial for people new to Computer Science, there is a disclaimer on the more technical sections that say, An intermediate proficiency in Java is necessary to understand the following concepts. This shows that these sections are definitely
7/13/2013 AWD
better suited for intermediate to expert developers. Some of the sections go deep into the theory of the Java language as well as references actual excerpts of code like the one below:
public static class SettingsFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Load the preferences from an XML resource addPreferencesFromResource(R.xml.preferences); } ... }
The last section, Distribute, is similar in accessibility to the design section, offering the most use to those who are business-minded. This section also displays a great deal of images, graphs, and statistical metrics that can aid the reader in understanding some of the more difficult concepts. The three most prominent subsections talk about giving your app visibility, monetizing your app, and distributing it. Google automatically collects information about your sales and provides you with a variety of financial reports to help you track and project sales, optimize your marketing campaigns, and support your customers. This is just one example of the verbiage used in this section. So we can see that a resource of this type is definitely meant to appeal to many different audiences and it takes on very unique styles when catering to the different groups. The website itself is laid out absolutely beautifully and reflects all of the standards that it attempts to promote. The hierarchical structure of the site makes it very successful in filling its role as a reference guide. Googles Android Documentation is a spectacular example of CS writing and I would highly recommend anyone to visit it as it is both well designed and very informative.
7/13/2013 AWD
Reflective Note
I will most likely put this paper into my portfolio as I believe it accurately portrays my ability to analyze a very popular website related to my field. On top of that I think my view on the broadness of the CS field is somewhat unique and will be well received by future employers.
7/13/2013 AWD
Works Cited Android Developers. Google, n.d. Web. 14 July 2013. <http://developer.android.com/index.html>. "Design Principles." Android Developers. Google, n.d. Web. 14 July 2013. <http://developer.android.com/design/get-started/principles.html>. "Distribution Control." Android Developers. Google, n.d. Web. 14 July 2013. <http://developer.android.com/distribute/googleplay/about/distribution.html>. "Google I/O 2013 - Cognitive Science and Design." YouTube. YouTube, n.d. Web. 14 July 2013. <http://www.youtube.com/watch?feature=player_embedded>. "Settings." Android Developers. Google, n.d. Web. 14 July 2013. <http://developer.android.com/guide/topics/ui/settings.html>.