Computer Science

Computing Science is design, software construction, refactoring and re-engineering issues, quality control and maintenance considerations, to database structure and techniques, to data representation to metadata data, to visual representation, to user interface, to human interaction concerns, to meta programming, to figuring out how to do it better next time and faster this time.

All structured instructions are combinations of:

- execution: a simple statement

- selection: choosing which statement to do next (if)

- repetition: loops (while)

Programming is one of the best ways to make sure you understand something. Pseudo code’s the main thing my new students have a hard time with - they're not used to writing instructions with such precision. When they get the hang of it, however, they start seeing the patterns everywhere.

Computer Science is a very broad field, however it's clear that there is a definite shift lately towards the study of parallel processes. A great example of this is Pi calculus, which attempts to do for distributed programs what lambda calculus did for linear computation - formalize and study in an abstract manner. Pi calculus, while a bit tough, might be something to at least bring up briefly when mentioning mathematical methods.

You might also consider amorphous computing (which is on similar lines) as it intersects biological fields quite nicely.

Compression, encryption, and data/knowledge representation are also very interesting issues to bring up... From there things such as automated reasoning and data mining can be discussed, even if only in passing.

First and foremost, however, I tend to believe that C.S. is mostly about how to characterize and solve problems... Things like inductive reasoning, dynamic programming, and novel data structures are interesting and powerful conceptual tools which I believe can help shape an individual's view of the universe and the processes of which it consists.

Most of the confusion about what is Computer Science is that there is not enough differentiation between the science, engineering, and practice of programming. Science looks at the behaviors of programs and try to form theories about it using mathematics. Engineering looks at best practices and try to provide tools for programmers to use; hence patterns and design methodologies. The practice of programming teaches a programming language and/or operating system. It is also how to design and use database. All three teach a certain amount of theory, but their end goals are very different

 

 


Like it on Facebook, Tweet it or share this article on other bookmarking websites.

No comments