Category Archives: 2017 Summer class

Positive, Negative

I am currently sitting at a cafe in Oxford, England–a coincidental place to be learning about the history of the internet and programming languages since it’s the academic home of Tim Berners-Lee.

I’m a big history person, I learn by seeing the whole picture. The timeline pages were particularly helpful to me. I once interviewed a developer at this company called Mobelux, and he explained the basis of the programming to me. The punch cards, plusses and minuses–the positive and negative charges and how they relate to 1s and 0s, and how these very tangible things eventually became digital. He explained the hierarchy of programming languages in layman’s terms for me: the base of C and onward. These readings (and watchings) helped me string all of those ideas together in a more comprehensive way, and overall that is the main thing I learned.

The concept of computational thinking is new to me. But, in a way, it’s like saying that the concept of gravity was new to me in the second grade when I first learned about it. I particularly look forward to pondering it more so that the how’s of it become more settled in my head. Right now, it reminds of a wind-up toy that’s been given a task and we have to figure out what the task is and how much to wind up the toy so it can complete the task. I also enjoyed your blog post on the evolution of the how’s of thinking as opposed to the what’s. It is an infinite and ever-evolving thing. (It made me wonder if there’s any sort of predictable pattern that could be identified in history? Then I read your second post. I appreciated the everyday examples by Kim Pearson. I am NOT a math person, but I greatly appreciate math in this way. The labeling and identification of patterns. I enjoy discussing it, but I’m hopeless at identifying them myself!)

My main goals for this class?

  1. Learn how to do this so that I can be one of the more marketable content-producing Millennials.
  2. Be able to hold a work-related conversation with my brother-in-law (a coder) and know what’s going on.
  3. Be able to watch an episode of Silicon Valley and be able to understand more than the general stereotypes as described to me by my aforementioned California-based brother-in-law.
  4. Go back to my old Neopets account and blow my ancient HTML out of the water.

I like thinking about stuff in the abstract. Specifics are sometimes beyond. I hope that this class doesn’t make me pull out too much of my hair. Regardless, I look forward to next week.

My GitHub. (Hopefully by the time you view this my profile pic will have updated.)

 

Analysis

How the Internet Works in 5 Minutes

This was a very informative and artistically graphic video that explains the internet’s functionality. Essentially, the internet is a wire in which two computers can connect. When you communicate to another computer, such as sending a photo to a friend through email, it goes from your individual unique IP address to a router. As it travels across computers, the information is broken down and reassembled into identical wrapping as a packet, which is then sent through a server and finally reaches its destinations so that there is no conflict between computers or that it is sent to the wrong IP. It seems to be very precise and accurate way of communication, especially since it depends on IP addresses that are differentiated and internet service providers. I think this was important to watch because today, nearly everyone uses the internet, yet not many people know exactly how it works, even though it is a huge source of communication that makes other forms of communication, such as letters and mailboxes seem outdated. I think it’s important to know how the internet functions on a basic level of understanding because it has become a necessity in terms of communication, research, and networking, and that there is a lot more precision in terms of information transmission than I previously thought. Knowing how the internet works will improve my own communication online, both personally and professionally.

Timeline of Computer History

The early days of computer history, specifically software languages, have much to do with creating computer programming, coding, and algorithms in order to transmit information. In the first thirty years, different coding languages and information transmission was being innovated by many academics and experts. The goal of the early years seemed to aim towards completely tasks much more efficiently and quickly than human ability alone, such as the ERMA (Electronic Record Machine, Accounting), in which the article says, “in just one hour, ERMA could process the number of accounts that would have taken a well-trained banker nearly 17 workdays to complete.” During the 1980s, software developers began creating word processors, databases, and spreadsheets, while programming languages and operating systems were being developed and improved as well. Over time, the different coding languages, programming tools, and software became more niche, such as Mathematica, a programming language for those in the scientific and engineering fields, being created, or Photoshop, a well-known photo editing software being created for photographers and students. In the 2000s and 2010s, social media rises, which has been a major global influence, while Windows XP and Apple products continue to innovate each year to be more accessible, long-lasting, and updated.

I thought that this timeline was interesting because it gave an educational and detailed analysis of how computers developed from basic algorithms for information processing and transmission to being a cultural staple of networking, fast communication, social media and the subsequent effects on global society (i.e. how it fueled the Arab Spring protests), and information-gathering. Everything seems to be transmitted to online – such as Apple Pay, the mobile banking system, that reduces the need for cash and in my opinion, makes cash seem almost archaic in our increasingly technologically-advanced and technologically-focused and technologically-reliant society that seems to continue progressing in terms of computers and programming.

In terms of networking and the web, the early days of communication started off as military messaging through telegraphy. A major breakthrough was in 1949, in which the modem was created so that computers could communicate with one another through voice phone lines, which greatly improved coverage. Networks begin to develop over time, such a timesharing (first online communities), multiplexers (multiple connections on the same line), and ARPAnet (connects more than one computer together). Most significantly, the internet was born in 1973 and commercial networks continue to boom as well as its communication among them (such as the creation of the email). As time goes on, the internet commercializes and globalizes, which led to the development of online services and Wifi, and eventually the mobile market becomes mainstream. The development of networking and the web is interesting because it began very simply through telegraphs and had a military/political use, but now has expanded and become more accessible and arguably necessary for communication today.

Computational Thinking Part 1 and 2

The first part explores the idea of technology, programming, and web development in the context of journalism. The author communicates that through explaining computational thinking, which is a technological and analytical approach to problem-solving and understanding human behavior though computing. As a journalist, this author is interested in the relationship between journalism and computational thinking, and what shapes someone’s thinking. With the prominence of the internet in our individual lives (in many countries, governments consider the internet an actual necessity for standards of living, rather than an optional amenity for those who can afford it), there is so much information being pushed onto us, so does that mean our mindset is shaped by the internet and accessibility of the web and to what extent? As journalism continues to cross over more into web and less on print, what skills should journalists know, how can they better engage with audiences and reach and maintain audiences through the web, and how can computational thinking propel journalists in today’s industry? How necessary is it for journalists to have the knowledge and skillset of coding, programming, and other computational and analytical skills and experiences?

The second part delves deeper into applying computation to journalism in order to improve its efficiency and effectiveness. The author quotes, “A new way of doing journalism requires new technology to support and foster that innovation. That technology should reach right into the core of our journalistic endeavors, not just touch the periphery.” I agree with this statement in the sense that journalists should familiarize themselves with programming in order to better communicate with audiences. Without web development knowledge, even at the basic level, it reduces the capability for journalists to grow within their industries, as journalism crosses over into web. It is not that print is dying, but that more and more people rely on their mobile devices, particularly apps such as news organization apps, or they subscribe to news alerts on their phones. I believe this indicates that journalists should increase their skillset as this transition continues to grow and evolve over the years.

WordPress software philosophy

The main goal of WordPress’ philosophy is functionality and accessibility for all. It is clean and simple, geared towards the average person and not an advanced computer programmer familiar with computer science and technology. WordPress is committed to deadlines and expansion of the voice of users, even those who are not explicitly vocal with concerns. They value the freedom of distributions and are community-oriented. I think it is important that WordPress aims to be user-friendly, accessible, and simple, without compromising its functionality and quality, and as I previously mentioned, it is meant for everyone, including the technologically-inept and the technologically-savvy. I think it is also important that freedom is a core part of WordPress philosophy, and after reading this article, I have a better understanding of WordPress’ mission and why it is one of the most popular blog platforms for internet users across the world.

GNU free software philosophy

Free software is an important freedom for the internet community. According to this page, free software means that “users have the freedom to run, copy, distribute, study, change, and improve the software.” I think that the freedoms this page mentions, such as running the program for a user purpose and not a developer’s purpose, contributes to basic principles of liberty that allows for free reign, open communication, and both commercial and noncommercial development, while towing the line that crosses into piracy. I think that it is important that the article mentions freedom with the analogy of free speech as opposed to free beer, and provides and moral and ethical guideline for users that protects their individual liberties on the internet, while still being effective, accessible, distributable, and flexible.

Unix philosophy

Unix philosophy is a design-focused philosophy that emphasizes efficiency, conservable, effectiveness, simplicity, speed, and easiness to understand and rebuild or reconstruct if necessary. It’s about designing operating systems and writing programs that are clear, clean, transparent, robust and teachable that does not infringe upon a programmer’s time and energy. Similar to the free software and WordPress philosophies, simplicity is key so user-friendliness is important for its utilization and effectiveness. I think that this is important because the simplicity and accessibility allows for users to gain the maximum amount of benefit from using software programs, and helps me understand the way programmers think in terms of their approach to software development. As a journalist, it is important to know the programmers’ side of information and technology, so that I can better understand how I can communicate.

The Zen of Python

The Zen of Python breaks down the Python software’s guiding philosophy which also emphasizes simplicity, readability, immediacy, accuracy, practicality, sparseness, and explicitness. I think it’s important to be open, user-friendly, integrative, and communicative as a programming language, which not many people can easily grasp. Python’s goal is to push forward “immediate gains in productivity and lower maintenance costs,” which also contributes to the simplification that is in its mission. If software was overly complicated, I do not think that there would be much room for innovation or not many people would utilize it, such as journalists (many of which do not have much knowledge of programming). Journalism shares some of its values, such as immediacy, simplicity, explicitness, and accuracy, which I think would make it more adaptable and understandable to journalists who intend to educate themselves on software development.

The Pragmatic Programmer Quick Reference Guide

This reference guide provides tips to software development. Cleanliness is also an important part of this mission, such as fixing bad code and improving quality. The article focuses on problem-solving and rational fixes for debugging, code control, and abstractions. I think that this guide, which is also user-friendly, admits certain emotions that could arise from unreliable code, broken programs, and extreme focus in details, and how to properly handle them with actual concrete solutions, such as the tip to use a project glossary. For me, programming has always seemed to be a mathematical, straight-line, one-way approach of thinking and problem-solving, so I found it interesting that this guide mentions “don’t be a slave to formal methods – don’t blindly adopt to any technique without putting it into the context of your development practices and capabilities,” particularly because it seems to allow for more creativity, out-of-the-box critical thinking, and flexibility than I previously thought.

Computational Thinking and PR

Link to GitHub profile: https://github.com/tatyanaberdan

Out of this week’s readings, I want to address three that I found most interesting.

Firstly, although I am not a journalist and am looking to build a career on what many consider the opposite side of the communication spectrum (in public relations), I found many of the ideas in Professor Linch’s blogs on the connection between journalism and computational thinking applicable to the type of work PR professionals do , like debugging and defining your variables and functions.

One topic that has been touched on in every one of my classes at Georgetown so far is the fact that it is challenging for those of us in PR to prove the ROI (return on investment) for our work because it is often difficult to measure the real impact and effectiveness of PR campaigns or PR strategies. Most PR professionals draw on past experiences or instinct to guide their work rather than any type of models or systematic method. I think this approach is a major factor in why PR professionals are often not offered a seat at the table  or valued as much as those within a company that do work of a more “scientific” nature, like lawyers or even marketers. I think being able to create and use models to solve the crises PR professionals deal with and, in general, learning to look at PR work through the more structured lens of computational thinking would not only help us make better decisions but improve the credibility and public image of the PR profession.

Secondly, “The Zen of Python Language” is another reading that stood out to me, again because so many of the principles could be applied to PR work, like the idea that errors should never pass silently or that now is better than never.

Lastly, I want to highlight the “How the Internet Works In 5 Minutes” video because it was extremely helpful in giving me a better understanding of how the entire concept of the Internet and being “online” works. As someone who is completely new to the world of programming and web development, the video helped clarify terms I thought I understood but actually didn’t like server and IP address. However, the wrapped candy analogy threw me off, and I still do not quite understand how using IP addresses keep you from sending information to the wrong client?

Web Development Guiding Principles

Github: https://github.com/vkinnealey

As someone with very little background knowledge in web development the most striking take-away from the reading was the complexity and maturity of the different codes, ethics, guidelines, etc. that exist within the coding world. I had no idea that there were so many guiding principles that a coder was meant to follow and it raised a few questions in my mind. First, who created all of these guidelines and, given that there are different versions (e.g. Unix philosophy, notes on C programming, Zen of Python), how does someone know which one is “the” guiding principle to follow? I do recognize that they all carry a very similar message, but I can’t help but wonder if the varied versions create confusion and misguidance within the web development world.

Secondly, what is to keep someone from not abiding by the rules presented online? From my understanding they are not enforced in anyway, so if someone wanted to, for example, make it impossible for users to change or update their program, in direct violation to free software guidelines, is there anything that would stop them from taking that action? On a similar note, is it frowned upon if someone doesn’t follow certain guidelines, for example if someone wanted to keep their site “not free” as opposed to free content is that considered poor form in the web development world, or an acceptable personal choice?

Lastly, how is a beginner who does not have a course, instructor, or mentor, walking them through the world of web design, expected to find and learn the rules of the digital road? Web development and coding are still, in many ways, new territory that do not have, at least to my knowledge, the same oversight as other developed entities. Given the influence and power a website can have on the general public, as our WordPress reading said, those developing content only account for 1% of the audience actually reading and absorbing the posts, how is someone supposed to know if their content or web design abides by the digital code and is not accidently opening the door for software that could cause issues down the road?

Web development sounds hard. But if you do it right it can be easy.

If someone told me, a former history major, that I would be enrolled in a web development class I would laugh at you. Then I would log off Twitter, because the trolls shouldn’t get you down. But… here I am. Ready to learn.

This week’s reading was a helpful collection of foundational texts for the class. Since I am starting out with no programming skills whatsoever it is helpful to read about how a lot of platforms aim to be as simplistic as possible.

The idea of simplicity not only as an esthetic but as a mindset was also discussed in Greg’s blog posts. Oftentimes journalists can get bogged down and not see the big picture. Thinking pragmatically and putting effort into making sure you’re being as effective as possible is an important mantra to have at the beginning of this class. I’m sure there will be a lot of bells and whistles that can be added to things, but remembering to stay in a minimalistic mind frame will be important for the class.

It also serves the actions of reporting as well. Sometimes I can get thrown into a tailspin looking for the perfect kicker, or spending an inordinate amount of time on things that a reader doesn’t care about. Getting out of my head and making sure that I’m working smart, and not hard, is an important lesson.

I also really enjoyed the basic primers of how the internet came about, and how it functions. It’s really easy to forget all the channels things have to go through to ping back and forth, and having a healthy sense of how things came to be from a historical and, well, factual standpoint can only help. When learning about a whole new field, a solid foundation of how we got to where we are today is important.

Overall, this coming semester looks like it will have challenges, but web development is a very exciting thing to dive into. After all, I use the internet for 95 percent of my job, so understanding how it works, and how we strive to make it simple is a good starting place.

GitHub profile: https://github.com/savvylee11

Analyzing The Evolution of the Internet

Github profile: https://github.com/ibasco

I found all of our readings very interesting because I never get challenged to learn about the history of the internet or web development. In this increasingly internet-driven world, this is content that will benefit us in the future going forward, especially as a woman who wants to learn how to code.

“How the Internet Works” was a great video because it condensed complex information into content that was easy and useful to understand. When I press “send” on an email, I never realized that computers break down the information into packets to make tweets, websites or photos. I also loved that they mentioned that the Internet is a “wire” — to think something so complicated and ubiquitous as a wire dumbfounded me because I realize the Internet really is something that makes life easier and may not be as complicated as we perceive it to be.

The “timeline of software languages,” and the “timeline of networking and the web,” were fascinating because learning the history of how technology evolved from Telex messaging to the mobile web and Plan Calculus to HTML5 and Heartbleed Bug was fascinating. As a millennial, the internet has always been fast and available to me but learning about its origins made me realize that like anything, technology had a long process before getting to where it is today.

“Computational thinking and journalism” were also fascinating because it got me to realizing how I can apply a background of web development and technology to journalism. How do I improve my audience’s experiences? How can we evolve, grow and reshape our thinking processes? It reminded me why I am still in school — it is essential for me to always be learning, growing and evolving as a reporter and thinker.

I enjoyed looking over the WordPress philosophy because it acknowledges that many WordPress users (including myself) do not consider themselves technically oriented. All they want to do is post content without any problems and not face too many complicated issues. I love that one of their points is to “strive for simplicity” — that is what technology is all about, making tasks easier for our users to get them from Point A to Point B.

I loved that the GNU Operating System outlined four essential freedoms of free software. Again, I never realized technology had so many philosophies and missions because when I use programs, all I think about how to navigate them. I never think about their underlying goal and what the companies’ goals are for creating these programs.

Finally, the Unix Philosophy was one of my favorite articles because it discussed the importance of writing elegant, robust code. It reminded me that no matter what I do, even in a field as fast and instant as technology, that I have to put sufficient time and energy into making something of any respectable quality.

I honestly am thrilled to learn more from “The Zen of Python,” and am excited I get to refer to the “Pragmatic Programmer Quick Reference Guide.” Overall, I am thrilled to take this course and am excited to see where the “doors of technology” will lead me.

Computational Thinking and Open Source Data

I find your comparison of computational thinking and journalism to be very interesting. It seems that computational thinking is just a more modern term and view on analytical thinking that incorporates today’s rapidly changing, technology-focused world. I have always generally thought there were two camps of people: the left brain, logical math and science people, and the right brain, creative writers and artists. Myself being the former. And this is actually partially why I went into communications, to challenge myself and force myself to learn to be more divergent, look outside the box. But we are who we are, and I naturally found patterns to guide my writing and use formulas to generate new ideas. I’m curious to see how this semester shapes my thinking (or my way of thinking shapes how I learn web development?) and whether it changes the way I approach my job in public affairs and future career path. 

I was listening to a TEDtalk podcast recently on open source data and how the concept has changed the world, and will continue to do so. The possibilities are limitless… I particularly liked two talks: one about open sourcing the design and functionality for an underwater diving robot, and the radical notion of an open source democracy where citizens vote on each issue before Congress. The host of the podcast talked about Linus Torvalds and his novel idea to open source his operating system Linux. ‘Free software” leads to new ideas and innovation, but also allows for people all over the world to get more affordable smartphones like the Android. I also heard a talk by Tim Berners-Lee on creating the World Wide Web and his, some would say insane, decision to demand the web be open source for all to use (aka. no charge.) But if he had not chosen that path, the WWW might not exist today, but instead would be millions of databases that don’t talk to each other.

I appreciate the other programming philosophies and guidelines, and look forward to a great semester putting it all to action!

Github Profile – https://github.com/xof88

An eye-opening introduction

GitHub Profile:https://github.com/alliefoard

 

My daily basis is spent wiring about different computer processes, due to working as an account coordinator at a PR agency that specialized in Federal IT programs. Although I am able to create content and understand keywords in the website sphere, I have only been aware of one side of the process. As someone who has no true experience in coding or web development, the assigned readings prior to class have helped illuminate a well-rounded background of all that goes into creating and maintaining websites.

In a world where websites and internet connections have taken over, it is easy to only think of the future instead of thinking about the past and what has brought us to this point. I was amazed while reading the timelines of computer software and computer networking to see how long ago the thinking up and first trials of these processes began. The first modem was created back in 1949, this was the year that segregation in the military was ruled out, to put it into perspective.

I was impressed that only 25 years later, the SABRE system was created for American Airlines. This was the first program that allowed travelers to reserve their airline tickets online. Today there are dozens of apps that allow the buying of flights to happen through phones and other devices, making this seem like a casual everyday thing.

Along with the upbringing of the technology, I was also surprised to find out how many different languages of coding there are. To the untrained person like me, it seems as though all websites would use the same type of coding language. However, this is not the case at all. The different languages create different types of systems and processes.

Overall, I look forward to training myself to see and understand the other side of the website curtain.

Evolution: Coding and Communication

Link to Github profile: https://github.com/amaliaks

It was interesting to see the developments of the computer starting from Konrad Zuse’s first binary code computer to Hopper’s involvement in creating COBOL or moving from numbers to words to control what a computer does. In 50 years, the internet, computers and programming has advanced dramatically. From someone who has not lived without computers and internet, it’s hard to imagine a time when computers and the internet did not rule technology and everyday life. Now, we are dealing with net neutrality laws and internet equality.

As the world of journalism, news cycles, and under the current administration, it is important to constantly be rethinking our thinking. It is no longer viable to be comfortable with your current skillset, you have to evolve, change, and adapt to new technologies and be conscious of societal values. In order to be successful as a communicator, today, I think it’s an important skill to understand the world of coding for professional growth and the success of your clients. I am new to coding and it can be overwhelming to look consider learning a new language and applying that to the work that I do everyday. At the same time, I know I have to rethink the way I approach content and strategy and have a full understanding of the different coding and framework methods to be successful; I hope to get that out of this class.

I have used WordPress in the past, but have never considered the rights or why the site was created. It is another platform to be able to connect people. While posting, it’s important to keep in mind WordPress’s bill of rights or core freedoms: The freedom to run the program, for any purpose.

  • The freedom to study how the program works, and change it to make it do what you wish.
  • The freedom to redistribute.
  • The freedom to distribute copies of your modified versions to others.

Main takeaways from what distinguishes free software from nonfree software:

  • The freedom to run the program as you wish, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Free software is where the world is going—collaborating to create better and more useful for users around the world.

Reading the article “Basics of UNIX Philosophy” left me with the most questions. I am lacking the context of how to apply this philosophy without being able to see it first hand.

Beauty in Simplicity: The Internet, Programming, and Public Perception

My GitHub profile can be found here.

Prior to reading the “Timeline of Software and Languages” and “Timeline of Networking and the Web,” I was unaware of just how many different players and components were involved in forming the basis of the computing technology and internet that we know and use today. I especially enjoyed reading about and seeing the photographs of early computers and their initial applications in performing business functions. While early computers took up the space of an entire room, we now have computers in the form of mobile devices that fit in the palm of our hand and allow us to access information from nearly everywhere in an instant. The “How the Internet Works in 5 Minutes Video” also added to my baseline knowledge of computing and the internet. I found the video’s explanation of routers to be particularly enlightening. A router is something that many of us have in our homes, but I never fully understood how this device worked until watching this simple breakdown.

The two articles about computational thinking and journalism spurred my thinking about the intersections between the fields of programming, journalism, and public relations/communications. Students and professionals in these fields have the ability and opportunity to influence people’s thinking about current events, companies, organizations, and other people. As communications practitioners and journalists—and now as aspiring developers and programmers—what is our role in shaping the thought process of others and in influencing public perception, and how can we use programming language and web development tools to do this? I believe this class will give me the opportunity to explore the intersections and relationships between these fields.

As I read through “The Pragmatic Programmer Quick Reference Guide” and the software and programming philosophies, I noticed that each of these articles espouse several overarching themes that are also reflected in the timelines of programming and the web—ease of use, testing, improvement, and the continued pursuit of knowledge about coding and programming. In the Unix philosophy, one of the sections that stood out to me referred to the need to “encourage a software culture that knows that small is beautiful, that actively resists bloat and complexity: an engineering tradition that puts a high value on simple solutions…” (“Basics of the Unix Philosophy”). This idea that beauty lies in simplicity and ease of use for my target audiences and users will be a policy that guides my work throughout this semester. The WordPress software philosophy and GNU free software philosophy also lend credence to these themes. I am excited to learn how to use WordPress, and I am relieved to know that it has been designed to be easy to use and to adapt and improve for sharing with future users.

The aforementioned themes are important because I will use them as guiding principles for my work throughout this semester. How can I write code and develop a site that is simple, easy to use, and that caters to my audience’s needs while influencing their perception of my client or organization? How will I incorporate constant testing and self-guided learning to improve my programming skills and the look, feel, and user experience of my site? This summer, I look forward to learning as much as I can about the topic of web development, and will refer to the programming philosophies and reference guide as best practices to guide my efforts.