Computer Science Theory

Key Concepts and Caveats to Computer Science:

  • There is a natural environment, the primary focus of science; a built environment, the primary focus of engineering; and a virtual environment, the focus of computer science and software engineering (some would say it is a subset of the built environment).

  • A computer is a machine that executes instructions. Those instructions are a program. Long sets of instructions are written in languages of limited vocabulary and defined syntax to ease the human/computer interface, thus avoiding programming by on/off switches.
  • Computer science is more than programming.
  • Historically, that "limited vocabulary and defined syntax" made a need for rigorous attention to detail which has been culturally translated to a somewhat false difficulty level. Modern programming interfaces have dealt with this to some extent. Many programming interfaces for kids are icon-based drag and drop.
  • Programming needs pretty good problem definition, a bit of logic, some task-breakdown skills (e.g. what you want to do better match up with your icons), and stepwise thinking–but it does not need to be saved for kids who've had algebra.
  • Round up of K-8 Computer Science/Technology Concepts/Caveats/Resources by Jo Oshiro, September 2011

Some Jargon and Technical Details of Computer Science:

  • IDE (Integrated Development Environment) – a software package that helps a human through writing the code (typing, dragging and dropping it) and translating it and packaging it to be run on the computer by a click of a button or icon. Some of the tools you will look at will be more explicit about these processes, some will keep them a bit more covered up.
  • CS (Computer Science) – including programming, development and analysis of algorithms (procedures, rules, stepwise processes to solve a problem), optimization of algorithms and processing (split across how many processors?), what is amenable to computable solutions.
  • CT (Computational Thinking)
  • Software Engineering – how do you reasonably put together and maintain usable, efficient software systems, including management of the human/computer interface?
  • Complier – the part of an IDE which translates from the language to a lower-level computer-friendly language.
  • Interpreter – complies a line at a time, which creates some inefficiencies but also has some advantages.
  • Editor – a word processor for programs which does not have all those nifty hidden formatting features. A lot of people use Notepad or a similar .txt processor for editing programs or scripts.
  • Script – a program in a scripting language, which is like a programming language but may not be able to reach quite as far into the guts of the computer to stuff and extract data.

Some Computer Science Links:

  • Great Principles of Computing, Denning (high level discussion intended to frame undergrad+curriculum development, may be somewhat relevant or inspiring for this group's CE-21 discussions) and by the same author, a little reality check, Beyond Computational Thinking.
  • Scratch is a great tool to help students begin to learn about animation and game creation. Created by students at MIT, Scratch has all the tools to help a person of any age get started in creating computer games, graphics, cartoons, and animated stories. Advanced animation favorite:
  • Computer science offers some definitely disciplined thinking without needing a wet lab or lots of equipment/materials, and many concepts can be presented without the use of computers – – also see – for a nicely packaged, downloadable kit for Computer Science Unplugged. There's a PSU professor who does Computer Science Unplugged outreach if you want that contact.
  • The Institute for Mathematics and Computer Science (IMACS) is an independent teaching and educational research institute headquartered in Plantation, Florida, USA. In addition to full-time curriculum development and publishing divisions, IMACS operates teaching facilities for above average to talented elementary and secondary school students. Useful for their online course material.
  • Ron Eglash's work including Culturally Situated Design Tools
  • NSF Exploring Computer Science curriculum, designed to articulate with the new (in-process, 2012) AP Compute Science