21.1. Creativity¶
Learning Objectives:
Apply a creative development process when creating computational artifacts.
Create a computational artifact for creative expression.
Create a computational artifact using computing tools and techniques to solve a problem.
Create a new computational artifact by combining or modifying existing artifacts.
Collaborate in the creation of computational artifacts.
Analyze the correctness, usability, functionality, and suitability of computational artifacts.
Use computing tools and techniques for creative expression.
Computer Science combines your logical and creative problem solving abilities to develop original solutions. Thinking outside the box has enabled computer scientists to connect rural areas in Africa using cell phones due to lack of internet access. Music producers and animation creators use code to make your favorite songs and movies come to life. Building software itself is a very creative process. Design is essential when turning an idea into an app, software, or website.
After coming up with an innovative idea, most people already have a vision of the layout of the application. User Interface (UI) design and User Experience (UX) design ensure that the application is user friendly. Simply put, the UI determines the look and the UX determines the feel of the app - the application should be accessible and aesthetically pleasing. Design is not only important for an application’s appearance, but also for its functionality. Writing clean and effective code is part of the design process as well.
Additionally, a novel idea will result in unique code. Unique code means you can’t just import an existing program as a library or use an established application. You should also keep in mind that the initial solution to a problem will probably not be the one you end up using. Programming involves constant consideration of alternate ways to improve your program. A perfect solution does not exist, but some methods will work better than others. With every line of code, you must decide how to efficiently utilize time and resources.
Thankfully, you don’t have to work on your projects alone. Software development is a social activity. Developing creative ways to work efficiently and leverage your team’s strengths will ensure smooth collaboration. In this chapter, you are encouraged to use your imagination to develop a creative and fun program! Always remember…everything is possible with code.