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 – http://www.csunplugged.org – also see – http://www.ncwit.org/resources/computer-science-box-unplug-your-curriculum 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