Despite earning a BSEE from a school that combines EE & CS curricula, I don’t know much about CS. After being invited to join the software team at work I decided I should find out. I haven’t been able to stop reading since…
What is computer science?
From: Wikipedia: Computer science
Computer science or computing science (sometimes abbreviated CS) is the study of the theoretical foundations of information and computation, and of practical techniques for their implementation and application in computer systems. It is frequently described as the systematic study of algorithmic processes that create, describe, and transform information. Computer science has many sub-fields; some, such as computer graphics, emphasize the computation of specific results, while others, such as computational complexity theory, study the properties of computational problems. Still others focus on the challenges in implementing computations. For example, programming language theory studies approaches to describe computations, while computer programming applies specific programming languages to solve specific computational problems, and human-computer interaction focuses on the challenges in making computers and computations useful, usable, and universally accessible to people.
The general public sometimes confuses computer science with careers that deal with computers (such as the noun Information Technology), or think that it relates to their own experience of computers, which typically involves activities such as gaming, web-browsing, and word-processing. However, the focus of computer science is more on understanding the properties of the programs used to implement software such as games and web-browsers, and using that understanding to create new programs or improve existing ones.
The Computer Sciences Accreditation Board (CSAB) identifies four areas that it considers crucial to the discipline of computer science: theory of computation, algorithms and data structures, programming methodology and languages, and computer elements and architecture. In addition to these four areas, CSAB also identifies fields such as 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 as being important areas of computer science.
I made this pdf with Visio to better develop visual-relational understanding of the computer science and related fields: Wikipedia-ComputerScience.pdf
Where can I learn computer science?
If you want to know more about computer science you’re in luck. It’s one of the most internet-accessible subject areas and likely always will be. I’d start at Wikipedia and if you’re still interested head to MIT Open Courseware. Always remember, autdidacticism will take you only as far as you take yourself so keep it fun. Write yourself some software, build a gaming computer for a friend, or write a website from scratch to keep things interesting.
Wikipedia: Computer science
MIT Open Courseware: Electrical Engineering and Computer Science
“I have found the MIT Open Courseware to be a great resource for free computer science college courses. Every software engineer should be required to take the Structure and Interpretation of Computer Programs class. Berkeley and Carnegie Mellon also provide some great online courses.” (Stack Overflow)
Free Science and Video Lectures Online does a great job of grouping classes to allow you to target your interest area: Free Computer Science Video Lecture Courses
And if that isn’t enough to keep you occupied, here’s a list of 45 Free Online Computer Science Courses from ProgrammerFish complete with helpful descriptions of each course.
Other related fields?
From: Wikipedia: Computer science
The broader field of theoretical computer science encompasses both the classical theory of computation and a wide range of other topics that focus on the more abstract, logical, and mathematical aspects of computing.