Computer Science Curriculum

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?”
    An understanding of different types of programming languages and types. This should include the difference between compiled and run-time, or interpreted, languages, the pros and cons of each, and examples of each type of language, not necessarily between the programming languages themselves. An example of a compiled language is C++. Examples of interpreted languages include script languages such as JavaScript and VBScript. An example of a programming language that is both a compiled and interpreted includes Visual Basic as it compiles to an intermediate language (IL), then converts the intermediate language to machine language at run-time.
    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?

Access: Visual / Access Basic is Both a Compiler and an Interprer

Computer Tutorials, specifically Visual Basic tutorial

Visual Basic Tutor

XML Introduction

No comments:

Post a Comment