Saturday 5 October 2013

UNDERSTANDING SCIENCE AND COMPUTER SCIENCE


COMPUTER SCIENCE AND COMPUTING/ENGINEERING 1. Computer science is a discipline that spans theory and practice. It requires thinking both in abstract terms and concrete terms. The practical side of computing can be seen everywhere. Nowadays, practically everyone is a computer user, and many people are even computer programmers. Getting computers to do what you want them to do requires intensive hands-on experience. But computer science can be seen on a higher level, as a science of problem solving. Computer scientists must be adept at modeling and analyzing problems. They must also be able to design solutions and verify that they are correct. Problem solving requires precision, creativity, and careful reasoning. 2. Computer science also has strong connections to other disciplines. Many problems in science, engineering, health care, business, and other areas can be solved effectively with computers, but finding a solution requires both computer science expertise and knowledge of the particular application domain. Thus, computer scientists often become proficient in other subjects. Finally, computer science has a wide range of specialties. These include computer architecture, software systems, graphics, artificial intelligence, computational science, and software engineering. Drawing from a common core of computer science knowledge, each specialty area focuses on particular challenges. 3. Computer Science is practiced by mathematicians, scientists and engineers. Mathematics, the origins of Computer Science, provides reason and logic. Science provides the methodology for learning and refinement. Engineering provides the techniques for building hardware and software. Finally, and most importantly, computer scientists are computer scientists because it is fun. (Not to mention lucrative career opportunities!) 4. Another definition from http://www.csab.org/comp_sci_profession.html Computer Science: The Profession Computer science is a discipline that involves the understanding and design of computers and computing processes. In its most general form it is concerned with the understanding of information transfer and transformation. Particular interests are placed on making processes efficient and endowing them with some form of intelligence. The discipline ranges from theoretical studies of algorithms to practical problems of implementation in terms of computational hardware and software. i. A central focus is on processes for handling and manipulating information. Thus, the discipline spans both advancing the fundamental understanding of algorithms and information processes in general as well as the practical design of efficient reliable software and hardware to meet given specifications. Computer science is a young discipline that is evolving rapidly from its beginnings in the 1940's. As such it includes theoretical studies, experimental methods, and engineering design all in one discipline. This differs radically from most physical sciences that separate the understanding and advancement of the science from the applications of the science in fields of engineering design and implementation. In computer science there is an inherent intermingling of the theoretical concepts of computability and algorithmic efficiency with the modern practical advancements in electronics that continue to stimulate advances in the discipline. It is this close interaction of the theoretical and design aspects of the field that binds them together into a single discipline. ii. Because of the rapid evolution it is difficult to provide a complete list of computer science areas. Yet it is clear that some of the crucial areas are theory, algorithms and data structures, programming methodology and languages, and computer elements and architecture. Other areas include software engineering, artificial intelligence, computer networking and communication, database systems, parallel computation, distributed computation, computer-human interaction, computer graphics, operating systems, and numerical and symbolic computation. iii. A professional computer scientist must have a firm foundation in the crucial areas of the field and will most likely have an in-depth knowledge in one or more of the other areas of the discipline, depending upon the person's particular area of practice. Thus, a well educated computer scientist should be able to apply the fundamental concepts and techniques of computation, algorithms, and computer design to a specific design problem. The work includes detailing of specifications, analysis of the problem, and provides a design that functions as desired, has satisfactory performance, is reliable and maintainable, and meets desired cost criteria. Clearly, the computer scientist must not only have sufficient training in the computer science areas to be able to accomplish such tasks, but must also have a firm understanding in areas of mathematics and science, as well as abroad education in liberal studies to provide a basis for understanding the societal implications of the work being performed. 5. from Mississippi State University Computer Science is the study of principles, applications, and technologies of computing and computers. It involves the study of data and data structures and the algorithms to process these structures; of principles of computer architecture-both hardware and software; of problem-solving and design methodologies; of computer-related topics such as numerical analysis, operations research, and artificial intelligence; and of language design, structure, and translation technique. Computer Science provides a foundation of knowledge for students with career objectives in a wide range of computing and computer-related professions. 6. From http://www2.cs.unb.ca/Problem solving. The study of efficient and effective software development techniques Teamwork and communication skill An interest in applying technology to solving problems in a wide variety of discipline 7. From the University of Missouri - Rolla http://www.cs.umr.edu/csdept/career/what_is_cs.html Computer Science is concerned with information in much the same sense that physics is concerned with energy; it is devoted to the representation, storage, manipulation and presentation of information. Computer Science is concerned with "the study of symbol-manipulating machines, with communication between man and machine and with the application of these machines". Major areas of Computer Science include: i. Operating Systems--concerned with the development and structure of complex programs which facilitate man-machine communications. ii. Computational Science--the analysis of numerical methods for solving mathematical problems with a computer. iii. Programming Languages--the study of the design and properties of languages by which humans communicate with computers. iv. Architecture--the study and use of mathematical logic to design electronic circuits. v. Intelligent Systems--concerned with means by which computers may perform tasks which might be characterized as "intelligent" if performed by humans. vi. Automate theory--an abstract study of computers and their capabilities. vii. Information Storage and Retrieval--the study of methods for storing a vast amount of data in a computer and methods for searching and retrieving this data. viii. Software Engineering--the study of tools and techniques for software design, development, testing and maintenance. 8. Another way to view any science is to look at the methods used within that science. In some sense these methods are similar in many (most?) sciences, but they can take on different characteristics in each discipline. Four important methods used in the study of computer science are: i. Invention --- formulation of new algorithmic and new architectural paradigms ii. Design --- software engineering uses design principles to build complex systems to solve computational problems iii. Analysis --- certainly a major focus within computer science is the analysis and evaluation of software, algorithms and architecture. iv. Experimenting --- use of experiments to reveal computing principles is an important method of scientific investigation within computer science.