In searching for a middle school or high school computer science curriculum for your student here are some points to consider:
1. Does it include a basic history of computers? This should include:
• The first computer programmer – Ada Lovelace (pronounced “Loveless”), a woman, and the daughter of Lord Byron, the poet
• The first computer designer, Charles Babbage and “Babbage's machine”
• At least some brief history of the development of computers through the years.
2. Does it include computer terminology?
• What constitutes a “computer?”
• A definition of computer components:
• Hardware versus software
• Hard copy versus soft copy
• Personal computer versus mainframe and mini-computers
• Closed system versus Open system computers
• Filenames and file extensions
• Central Processing Unit (CPU)
• Graphic Processing Unit (GPU), particularly important for children wanting to be game developers or testers
• Random Access Memory (RAM) – a bonus would be to understand sequential access from a historical perspective
• Read Only Memory (or ROM)
• BIOS (Basic Input / Output System)
• Hard disk and floppy disk
• A brief discussion of SCSI, IDE, SATA devices and the pros and cons of each
• Attaching devices using: USB, Firewire, PCMCIA, and PCI slots
• Operating system – What constitutes an operating system? Examples of modern operating systems such as UNIX, Microsoft® Windows, Apple's iOS, LINUX, Android, and others.
• Understanding office productivity software:
• What is a word processor? Topics should include fonts, styles, margins, page layout, heading, footer, header and body styles, margin justification (left, center, right, and justified or newspaper-style margins), numbered outlines, bulleted text, setting tab stops, inserting tables, using spell checker, thesaurus, and word and character count functions.
• What is a spreadsheet, including terms for rows, columns, and cells? Topics should include functions and formatting for dates, numbers, currency, and text. Ideally, the curriculum will also include some best practices, including using an apostrophe character (') in front of the numerals for a zip code to indicate that it is a text number, not one on which mathematical calculations will be performed.
• What is presentation software?
• What is publishing software?
• Drawing and photo editing software examples should also be included. This should provide information about the various types of images and the pros and cons of each, basic drawing and picture editing terminology, and possibly some more advanced drawing and editing examples and tools. Adobe Photoshop is a really excellent product for creating some more advanced images and budding graphic designers. Learning to create icons is helpful for the budding computer programmer. / web designer. Animation creation and editing software is a great tool for anyone interested in movie making or game development.
• Ideally, the curriculum would give examples of when it is best to use each type of product, along the lines that one could use a screwdriver to beat a nail into a wall, but a hammer is more efficient; however, if one needed to screw a screw into a board, a screwdriver works much better than a hammer.
• Communication protocol, for example:
• DON'T TYPE IN ALL CAPITALS OR THE READER WILL THINK YOU ARE YELLING. I had a customer contact me who was typing her résumé in all capitals. This is a very unprofessional way to create a résumé. Additionally, some spell checkers may not catch mistakes when typing in all capitals, hence the reason the woman called.
• While we are on the topic of résumés, extra large fonts or extra wide margins used to allow one to fill a page when one has little to no work experience is unnecessary.
• Don't use multiple exclamation points!!!
• Do use correct spelling and punctuation, especially in professional communication.
• Networking terminology:
• At a very minimum, modern terminology should be covered to include:
• CAT-5 cable
• MODEM, router, bridge, brouter
• Hubs and switches
• TCP/IP and IP address
• Network Interface Card (NIC)
• Local Area Networks
• Ethernet and WiFi
• Transfer rates
• Dial-up, DSL, Satellite access
• Internet, world wide web, intranet
• Servers and client computers
• Peer-to-peer networks
• There are many other networking terms that could be included, but these are the most important for students at this stage
• Internet access
• Browser and examples of browsers
• Internet safety. This should be a special topic to help your child learn how to protect himself or herself on the Internet. This is a time that would be especially good to reinforce house rules and go over the potential dangers of the Internet. Examples include: Not using last names or creating a pseudonym, do give out phone numbers or addresses, do not tell the name of the city you live in, the name of the teams played on or where they play, the color or number of the jersey worn.
• Viruses, adware, and malware: What are they? What kind of damage can they do, and how do we protect our computer and our information?
• Web sites and types including web page, web logs (aka “blogs”), stores, and search engines
• Electronic mail (e-mail)
• Web hosting
• Hypertext markup language (HTML)
• Dynamic HTML (D-HTML)
• Extensible markup language (XML)
• Style sheets (CSS)
• The curriculum should include examples of each and directions for creating these.
• What you see is what you get (WYSIWIG)
• FIFO and LIFO (First in / first out; last in / first out)
• Graphic User Interface (GUI)
• Computer Programming
Note: Before beginning the computer programming section, your child should have successfully completed the math topic of converting between binary and decimal . If your math curriculum includes converting between binary, decimal, and hexadecimal, that is a bonus.
• Why do we call computer glitches “bugs?”
• What is “machine language?”
• Object-oriented programming
• For Microsoft® Windows programming, one should also have an understanding of the registry and globally unique identifiers (GUIDs).
Following are some options for computer science resources:
Software development web sites to look at:
Compiled versus Interpreted Languages
Visual Basic: Compiled or Interpreted? http://stackoverflow.com/questions/6002955/visual-basic-net-compiled-or-interpreted
Access: Visual / Access Basic is Both a Compiler and an Interprer
Computer Tutorials, specifically Visual Basic tutorial
Visual Basic Tutor