6 Areas of Study that Blend Well with Computer Science
The skills and techniques taught in computer science classes can be applied across nearly every major subject area. In addition, developing strong computational thinking abilities can enhance students’ problem-solving, communication, and data analysis skills for the rest of their lives.
By Jeff Grogan
Programmers, IT professionals and even your internet repair man can be portrayed as niche occupations. So when students show interest in computer science at a young age, they can be discouraged by those who think programming is a distraction from their “real” education. In reality, studying computer science has practical benefits for just about every subject area, not to mention ample career opportunities.
Math and science
At its core, much of computer science is built on mathematical principles; programs move step-by-step to accomplish tasks and are designed to either work or fail — no room for gray areas. Coding also uses variables extensively, and search tools use complicated algorithms to deliver relevant results quickly. These basic searching techniques are often the first steps to learning coding concepts like if/then parameters and recursion sorting.
Computer science has also revolutionized statistical analysis by giving computers the freedom to learn from previous information and scale up to account for massive amounts of data. By teaching programs to gather data, sort it and pick out what’s relevant, students will practice valuable analytical steps that also appear in countless biology, chemistry and physics experiments.
Language arts and history
Coding is a type of storytelling; it involves a beginning, middle and end. When programmers forget a line or put events out of order, their program won’t work. Troubleshooting broken code teaches students to pay careful attention to the progression of events in a concrete way.
Similarly, the heart of learning history is understanding cause and effect relationships. Chaining together character movements in Scratch is a lot like sorting the events that contribute to major discoveries and revolutions. In addition, computational thinking helps students disassemble complicated historical trends into simpler, more manageable parts. It’s a lot easier to grasp the myriad influences of the industrial revolution if you’ve built a web page using several different coded elements.
Research shows kids who write simple programs involving school content will learn that content better than peers who studied it normally. For instance, creating a flashcard app for an upcoming vocabulary test may be all the review a computer science student needs.
Art and design
Although phrases like “computational thinking” and “algorithmic problem-solving” seem to belong exclusively to non-artistic subjects, computer science principles can also improve artists’ creative ability.
Teaching computer science to students relies heavily on having them identify flaws and improve them with code. Artists, especially designers, deal with these same themes every day. Equipping creative minds with analytical power puts real-world relevance in the things they create.
Another misconception about programming is that it stifles self-expression. On the contrary, students and professionals find deep satisfaction in the code they create because it gives them a highly organized place to make their thoughts reality. Take one computer science student study participant, who wrote the following reflection in her research journal:
CompsciStudent kathy = new CompsciStudent();
kathy.studyLikeAManiac(1);
kathy.comeUpWithFinalProjectIdeas();
kathy.goCrazyOverFinalProjectFormatting();
kathy.jumpForJoyBecauseTheButtonsArePrettyColors();
kathy.studyLikeAManiac(2);
kathy.moreFInalProject();
kathy.wowI‟veLearnedLotOfCompsci();
kathy.sixDaysIsNotEnoughtToGetThisDone();
kathy.crapThereIsAQuizTomorrowOnMuchHarderStuffThanMatrices();
kathy.codeWritingforJournalEntries?_wowIHaveAProblem();
System.exit(0);
Finally, consider that most modern animated movies and TV shows involve tons of coding. Computer science is responsible for increasingly realistic physics, human movement, and scenery in both video games and film. If you want to pursue a career in any of these fields, picking up even a basic knowledge of coding will serve you well.
One subject, many applications
Kids who study computer science learn concepts in coding that apply to all areas of their education. Computational thinking skills are practical and enriching, as they equip students to think critically and deeply about how to solve problems. Most importantly, however, kids have fun bringing their ideas to life through code. This excitement empowers them to pursue open-ended problems even when they’re difficult.
Jeff Grogan is a professional freelance writer and editor. He supports Bold Idea because he believes in the unifying, empowering effect programming can have on students. Bold Idea inspires him to work graciously and meet practical needs with the skills he has.
Pair Programming Creates Better Code
The stereotypical computer programmer is often portrayed as an isolated hacker, but professional programmers often work in highly collaborative teams or even in pairs. New models of pair programming emphasize benefits including high-quality code, quick problem solving and deeply satisfied workers.
By Jeff Grogan
When you picture a computer programmer, chances are he or she is hunched over a keyboard in a dark room, chugging energy drinks with one hand and typing furiously with the other. Much more often, though, programmers work in pairs and in clean, well-lit offices.
Programming pairs are made of a "driver" and a "navigator." The driver types code into the computer while the navigator catches typos and suggests additions or changes. Programmers switch roles frequently during a project, which fosters their deep knowledge of the program and allows each partner to practice both skills.
Why not work alone?
Some software engineers still hold onto the superhero (or villain) mantra, "I work alone." To be sure, pair programming has serious trade-offs to consider, but research makes clear this technique has real benefits in many situations.
Someone's watching you
Partners place valuable pair-pressure on one another, since each wants to impress the other with his or her coding and proofreading skills. This pressure helps keep both programmers focused, reducing time following wild goose chases during troubleshooting.
Pair programmers also gain opportunities to teach their partners, which either solidifies their knowledge or corrects their mistakes. Studies also show young programmers who work in pairs show increased persistence when facing a problem. All these factors help equip students with the confidence and skills to take on challenging tasks alongside a constant, supportive peer.
Worth the cost
Common sense would tell employers that hiring two programmers to work on a single project means spending twice as much money as necessary. However, results from a University of Utah experiment reveal otherwise: "Because the pairs worked in tandem, they were able to complete their assignments 40–50% more quickly."
In addition, pairs have been found to produce code with much fewer mistakes than individually written code. The cost of finding and fixing errors makes pair programming at least as efficient — and certainly less of a hassle — than working alone.
More fun with a friend
Pair programming is not only a worthwhile investment, it also helps coders to enjoy their job! The same study at the University of Utah found 96% of professional pair programmers enjoyed their pair-programming tasks more than when they programmed alone.
Young programmers also overwhelmingly enjoy working in pairs. One researcher in the UK found that successful programming partnerships increased middle school students' favorability toward computer science and likelihood of continuing to study the subject.
Immeasurable results
Simply talking to children engaged with computer science can tell you what any number of scientific surveys have struggled to document: Kids who have fun learning at a young age are much more likely to become lifelong learners. Pair programming helps even the most introverted young people express themselves and invent new ideas with their partners and friends.
Jeff Grogan is a professional freelance writer and editor. He supports Bold Idea because he believes in the unifying, empowering effect programming can have on students. Bold Idea inspires him to work graciously and meet practical needs with the skills he has.