In this guide, we're going to talk about computing innovations. All of the Big Ideas focus on how computing innovations work, the effects they have on society, or both. It's an easy but important concept to know from the get-go! We're also going to be talking about collaboration, a vital part of modern computer science.
Computing innovations, according to the College Board, are innovations that use a program as a key part of their function. Put simply, they wouldn't operate without a computer program making them work. If you can use the word "computer" or "coded" when describing this innovation, it's probably a computing innovation.
Another way to identify computing innovations is to think about data. Does the innovation you're thinking of collect data and use it when operating? If so, you've probably got a computing innovation on your hands.
Computing innovations can be both physical and non-physical, and they come in all shapes and sizes.
Physical
- Self-driving cars
- Smart appliances (fridges/watches/toasters)
- Tablets (Kindles/iPads)
- Smart Phones
- Gaming devices (Nintendo Switch/Xbox)
- Robots (Roombas, for instance)
Non-Physical
- Picture Editing Software (Photoshop/Adobe Lightroom)
- Word Processors (Word/Pages/Google Docs)
- Communication platforms (email/text messaging/video conferences)
- Digital video games (Dark Souls/Minecraft/Super Mario Kart)
- Applications (iPhone Apps)
- Even some concepts, like e-commerce or social networking, count
While a lot of code-writing is independent by nature, the computer science field has a lot more collaboration in it than you'd think. Programmers of all sorts have to work with coworkers and bosses when dealing with large projects. They also have to work with their clients to make sure what they're coding meets client needs.
Different people have different backgrounds, perspectives and ways of thinking. Here are some ways such diversity is helpful when creating a computing innovation:
- More hands working on a project can sometimes get it done faster than one person can alone, (despite what the results of your last group project might indicate 😂).
- Thanks to the multiple perspectives on deck, more discoveries can be made.
- Biases can be avoided during the development process, creating a more inclusive innovation.
- Working with users and clients specifically during the development process can ensure that the finished product is one everyone is happy with, saving both time and energy.
Of course, collaboration only works to its fullest when the final product represents all the different ideas and contributions of the people that produced it. This isn't always possible, but it's a goal to shoot for! Especially in AP CSP.
During the creation of a computing innovation, users and developers will communicate with each other. For example, video games will have testers that check the product for bugs and report them to the developers.
Often, this conversation begins even before the product is made. Some companies will conduct market research to determine what features would be best to include in their newest innovations. [link to crowdsourcing]
However, communication doesn't stop there! Even after the product is released, developers will often ask for feedback and offer areas for users to report any problems they may have.
Collaboration between programmers isn't a new concept. The computer science field has several models designed to foster collaboration, such as pair programming.
Image source: Mateus Chagas at Portuguese Wikipedia
Pair programming is a programming model where two people share one computer. One person codes while the other person oversees the work, and the two often switch places.
At the same time, the internet makes collaboration between developers easier. You can see a version of this in your own life: most people today use Google Docs or Slides to work on shared projects.
Here are some examples for programmers:
Project management tools: These tools allow programmers to track tasks, assign work, and manage projects in real-time, with features such as task tracking, project timelines, and collaboration features. Examples include Basecamp and Trello.
Github and
Bitbucket are famous examples of collaborative development websites where multiple people can work on the same project and share documents.
In the AP CSP class, there are times where you'll have to collaborate with others to work on projects in class. The final Create project also gives you the option to work with another person during the development phases of the project.
Here are some tips, AP CSP-style, to make your collaborative team the most successful it can be!
- Create norms such as establishing team roles or policies to help mediate any conflicts that might arise. It's important to have everyone on the same page.
- It's very easy for the stronger coders or more assertive people in a team to take over the whole project, which can make a team unbalanced. Practice consensus building within your team by listening to every member within it and taking their perspectives into consideration.
- A team project is a team effort, and that means everyone in the group needs to have a say. Sometimes, that might mean compromise.