Critical thinking can be defined as the way in which a person approaches problems and makes decisions. Critical thinking can also be viewed as the ability to solve problems with intellect, accuracy, precision and logic. In every profession, critical thinking people have to learn new skills and be able to think critically. Thinking critically is evaluating a person’s reasoning behind a given decision. Evaluation means examining the outcome of thoughts for both positive and negative attributes. Critical thinking involves problem solving, decision-making, logical reasoning and creative thinking.
This paper will examine the role of critical thinking in computer science and how it essential in the software development profession. The focus will be on the design and implementation of computer programs.
A software engineer is required to bring out thoughts in a form that a computer can compute to develop a program that may solve a given problem. Designing a program involves complex operations. Firstly before writing the code for a given program, a software engineer must understand what the program is supposed to accomplish in English, and then decide how to translate the objectives into a machine readable language like Java. In determining how the program will work, the engineer considers which programming language will best accomplish the intended objectives. When choosing an appropriate language the developer considers the syntax, semantics and framework. The developer must also interview the intended users of the system to try and understand what is needed. The developer compares the acquired information with his understanding of the expected outcome and decides on how best the software program will be implemented.
Besides the general critical description, logic is another key factor in software development. Programs contain conditional structures “if-else”,” do- while” among other control structures. When designing a program the developer uses logic to translate English sentences into computer code, For example, using loops to repeat a certain function like computing the factorial of a number. Most programs employ the object oriented paradigm which also requires critical thinking when dealing with objects and classes. For computer programs that require the use of databases, the developer considers the relationships of how the tables are connected. These relationships are often designed using an E-R model, which is a schema representation of how databases are structured. Designing the E-R model requires the developer to evaluate how each relationship will be connected. In databases, developers also interact with the structured query language (SQL) which is derived from relational algebra and calculus.
Critical thinking for developers involves viewing each problem from a different perspective to determine the best method. For example in determining the programming language to use, a developer must consider the advantages and disadvantages of various languages. Before making any decision, developers should consult other developers who have designed similar programs. Open source codes are available to provide a platform on which to build other programs.
Critical thinking is vital in any profession including in software engineering. This is because it helps a software developer understand the logical connection between ideas, construct and evaluate arguments.
While developing computer programs, a developer uses critical thinking to detect inconsistencies in his reasoning and corrects the mistakes accordingly. Finally, critical thinking allows a developer to develop programs in a systematically especially when using the object oriented paradigms.