Unveiling the Computer Science Education Landscape


Teres George and Vineeth Paleri Department of Computer Science and Engineering, National Institute of Technology Calicut

From supercomputers to our intimate smartphones, computer technology has had an immense influence on human life like no other modern technology ever has. A budding student will be perplexed by several branches and a wide variety of options to choose from. This article is a broad study of a practical classification of disciplines in the computer science field for budding students and educators in the field.

Although this article draws its basic concept from Computer science programs 2005the report of the professional orders, including the Association for Computing Machines (https://www.acm.org/binaries/content/assets/education/curricula-recommendations/cc2005-march06final.pdf), the opinions expressed by the authors in this article are their own.

Need for classification

Unlike many other disciplines, computer science disciplines encompass a broad area spanning science, engineering, and application in every conceivable field of knowledge. IT disciplines are so broad that it is impossible for one person to master all the knowledge within them. Therefore, it is essential to categorize related knowledge and skills in different disciplines to enable an individual to be an expert in the chosen field.

The field of computing disciplines

We give a graphical representation of the field of computer science in the figure for better understanding. The vertical axis examines the domain in terms of Software and Material aspects. The software is further divided into application software and system software. System software acts as an interface between hardware and application software, enabling convenient and efficient use of computing resources. System software includes essential media such as operating systems, compilers, and database management systems. Application software is the application software in a specific domain.

The horizontal axis divides the domain into Theory, Design & Development, and Maintenance. The the theory part refers to the theoretical aspects of computers and computer science, which includes the creation of new knowledge and the identification of new methods of development. The design and development Aspect refers to the development of software or hardware using established theory and methods. The maintenance refers to keeping the computer system, i.e. hardware and software, functional and up-to-date.

professional names sscientific and eengineer correspond to the theory and pattern respectively horizontal axis. IIt’s hard to draw a hard line between the roles of a scientist and an engineer. A rule of thumb for differentiating between the roles of a scientist and an engineer is: a scientist builds to learn, while an engineer learns to build.

Let’s see now the graphic representation of the knowledge and skills that characterize each discipline. The overlaps between disciplines suggest that a professional will do well to understand a little about other disciplines while still focusing on their field.

Note that the marked area for each discipline indicates an ideal scenario. For example, the time and cost involved in maintenance is a large part of software today, which is expected to decrease significantly as the discipline of software engineering matures.

Engineering computer Science

This discipline deals with the theory, design and development of computers. A computer engineer fundamentally focuses on hardware. The computer engineer can specify the interface between hardware and software of a device so that a software engineer can develop software for that device independently.

Computer science

This discipline is more widely known, even in academic circles, as Computing, which is a misnomer. Since the discipline of computer engineering deals with the hardware of a computer system, it would be more appropriate name the discipline Computer science rather than Computing. The computer scientist must develop the theory, that is to say the principles and methods, on all aspects of computer science, mainly the reliability and efficiency of software. The important roles of a computer scientist can be categorized according to different aspects of computer science:

Reliability: Create the theory and methods needed to develop reliable software that meets user-specified requirements.

Efficiency: Find effective solutions to problems. They must evaluate the effectiveness of each solution and decide on the best solution among them.

New ways to calculate: In search of innovations to make computing more user-friendly. Distributed computing has opened up a new field of study in computer networking and security.

The roles of the computer scientist determine the basic knowledge that characterizes the discipline. The reliability aspect requires knowledge including, Logic & proof, programming principles, programming language concepts, and Type systems. The effectiveness aspect of the solution to a problem requires knowledge in the Computation theory, Data structures, and Algorithms & Complexity. Search for new methods of calculation, leads to the conceptualization, realization and development of Operating systems, compilers, database management systems, computer architectureand Computer networks.

Software engineering

Software engineering is the discipline of developing reliable and efficient software that is affordable to build and maintain and that satisfies all the requirements that customers have specified for them. Software engineers typically work in the development of large software. A software engineer must develop software products with a warranty like in other engineering disciplines. The discipline has not yet matured in this respect.

Computer science

Information technology (IT) specialists must be able to assess the hardware and software requirements of an organization, select them according to the requirements, deploy them and finally maintain them; see figure. A computer specialist should be well versed in current hardware and software trends.

The path to follow

New IT fields like Information systems and bioinformatics continue to evolve as we realize the benefit of applying computers to new areas.

KDomain knowledge of computer-related disciplines is an absolute necessity for educators designing the curriculum and programs of all degree programs in the field. Educational programs without the necessary cohesive body of knowledge can mislead the researcher as to the intent of the program, causing harm to society in terms of the poor service provided, namely, the software engineers of the time producing software without the expected warranty.


Comments are closed.