1.1+Computer+basics

=Computer basics=

//Before you begin//: Lessons are based on community-based, continually updated online sources such as [|Wikipedia]. Relevant terms for this lesson are listed under Topics and presented in a narrative format in the Read about sections. Click on each of the linked items and visit the Wikipedia article to get the most out of the lesson, and then hit the Back button on your browser to return to the lesson.

toc

=Goals=
 * Basic**
 * To achieve a working knowledge of computers, their organization, components and limitations.
 * To understand the central role of the computer in the modern laboratory.
 * Advanced**
 * To understand the computer components involved in determining system performance in the pathology laboratory
 * To identify components important for determining compatibility with future hardware and software
 * To be able to outline the advantages and disadvantages of distributed versus central processing

=Topics= [|computer], [|computer science], [|hardware], [|software], [|CPU], [|megahertz], [|RAM], [|ROM], [|hard disk drive], [|RAID](redundant array of independent/ inexpensive disks), [|CD-ROM], [|CD-RW], [|DVD], [|tape drive], [|floppy disk], [|microfiche], [|bus], [|card], [|peripheral], [|microcomputer], [|minicomputer], [|mainframe computer], [|multiuser]system, [|terminal server], [|"dumb" terminal], [|personal digital assistant](PDA), [|operating system], [|BIOS], [|graphical user interface](GUI), [|application], [|program], [|programming language], [|device driver], [|terminal emulator], [|word processor], [|spreadsheet], [|presentation graphics], [|database], [|e-mail](electronic mail), [|license] , [|open source], [|information system]

=Read about= [|Computers] are made to process data, using physical equipment (i.e. [|hardware] ) to follow instructions from programs (i.e. [|software] ). Computers can transform data using mathematical calculations, copy and move data, and compare data to other data. To support these functions, computer components can be considered in terms of their functions in: **processing, storage,** and **input/output.**

Processing

 * The working unit of a computer that processes data is the [|central processing unit] (CPU). Most of the functions of a CPU is performed by a single integrated circuit known as a [|microprocessor], made up of [|transistors] (transistors have been referred to as the greatest invention of the 20th century). **


 * A computer follows instructions in its native language, also known as [|machine code] . Machine code can be directly abstracted into [|assembly language] (which can be written by humans), and can further be abstracted into a human-friendly [|high-level programming language] . Translation between these types of languages can be performed by an [|assembler] (i.e. assembly language into machine code), [|compiler] (i.e. high-level language into assembly language or machine code), or an [|interpreter] (i.e. translates program statement into machine language and executes). There are numerous examples of [|programming languages by category] . **

Programs designed for one type of CPU architecture and/or operating system may not work in another due to variations in performance, features, etc. Manufacturers of computers try to overcome this obstacle by making their machines [|compatible] so that they behave, in effect, much the same as the reference product.

Any data processed by a computer must first be loaded into working memory storage cells, or [|random access memory] (RAM). Increased RAM is better for speed and multitasking. Data in RAM is lost when the power to a computer is lost. [|Read-only memory] (ROM) chips stores "permanent" data even in the absence of power, and usually contains machine code for basic computer routines (i.e. [|firmware] ) from the time of manufacture that cannot be modified (or at least, not easily). For example, [|BIOS] ( basic input/output system) instructions are usually incorporated into ROM, and takes care of the “behind-the-scenes” tasks such as letting the computer know how many [|device drivers] are present and where they are, and what type of processor is installed. The BIOS may need to be occasionally updated in order to work with newer (and more advanced) [|peripheral devices].

[|Computer performance] relates partly to clock rate. [|Clock rate] refers to the number of computer work cycles that occur per second (measured in [|hertz] ). For example, a computer working at 50 megahertz (MHz) will generally be twice as fast as a computer running at 25 MHz, given the same architecture with the CPU, memory and display. However, the same comparison cannot be made of computers using different microprocessors, as the amount of work performed during one cycle may vary among computer models (see the [|Megahertz myth] ).

There are many other factors to consider when determining the performance of computers. The [|bus] connects various computer components to one another via electronic pathways, and has a “speed limit,” which may also affect performance. Increasing the amount of [|cache] memory also improves processing performance, as it places data in an easy-to-access location to allow high-speed access.

Storage
When selecting a computer system, it is important to consider //both// performance and storage capacity. RAM and processing power is critical to access, process, and use data, but it is also important to remember that modern pathology laboratories generate enormous amounts of data every year that need to be securely stored.

The [|hard drive] is the most common storage medium, but other important types include [|flash hard drives], [|floppy disk]drives, optical storage drives ( [|CD-ROM] , [|CD-RW] , [|DVD] ), [|RAID] (redundant array of independent/ inexpensive disks), [|tape drive] , [|microfiche].

Input-Output
An [|operating system] is software that allows users to interact with the computer hardware, usually through a [|graphical user interface] (GUI). Examples of operating systems include [|Microsoft Windows], [|Linux] , [|Mac OS] , and [|others]. The operating system also supports various [|application] programs (aka [|productivity software]), such as [|word processor], [|spreadsheet], [|presentation], [|database], and [|e-mail] (electronic mail) applications.

[|Peripheral] devices interact with the user for input and output of data (e.g. keyboard, mouse, monitor, printer, modem, network interface card), and communicate with the computer via [|ports] (hardware) and [|drivers] (software). Expansion [|cards] may be added to the computer to add additional functionality for features such as sound, graphics, etc.

Control
One distinction in computer software is by [|licensing], which defines the rights of users and/or redistributors of the software. The two general types are [|free] or [|open source] software versus proprietary or [|closed source] software. The differences can be considered in both philosophic and economic terms. Practically speaking, many common applications have both free/open source and commercial alternatives that have very similar functions and minimal differences in quality (with major open source projects often producing excellent stable software).

Categories
[|Common types] of computers include the laptop, [|personal digital assistant] (PDA), server, among others, and vary in their hardware components and organization according to their purpose.
 * 1) The personal computer is an example of a “[|microcomputer]” because it uses one microprocessor (one processor that fits on a single chip), and is designed for a single user.
 * 2) Large computer systems having multiple microprocessors are known as “[|mainframe]” computers, and may have multiple users.
 * 3) The “[|minicomputer]” is actually in-between both the “micro-“ and “mainframe” computers in size and support multiple users; these were “mini” compared to the first mainframe computers that would take up a whole room. An example of a minicomputer is a server.

Laboratory computer systems must be able to accommodate large numbers of users (e.g. technologists, residents, staff, etc.), and there are a number of ways to distribute processing power. Laboratory computer systems that use centralized processing are supported on relatively large minicomputers or mainframes. Users interact with [|"dumb" terminals] which merely take in information and show results, with the actual bulk of processing performed in the central computer.

In distributed processing, users interact with microcomputers which may run their own programs and do local data processing, while still communicating with the central computer ([|"smart" terminal] ) for the integration of results from a number of microcomputers and/or instruments. A [|client-server] architecture separates the workload between a server and its clients (which may be [|"fat"] or [|"thin"] depending on their relative processing power and applications software). [|Terminal servers] are the counter-parts to thin clients.

Several operating systems are available for laboratory computer systems supporting [|multi-users]. When choosing an operating system for the laboratory, an operating system that can work with many different machine languages is to be preferred, in order that a variety of hardware systems from different vendors may be used. [|Terminal emulators] may be used to access decades-old software applications on mainframe computers that are no longer compatible with newer hardware specifications.

=Activities=

#1: The autopsy of a computer
You have just graduated from your pathology residency program and have landed a job at Hamburger University Hospital. The chair of the pathology department comes to you on your first day of work with a task. Apparently, by an accounting fluke, there is a budget surplus this year and the residents are going to get those new computers the department has been promising for years. The chair wants to get as much mileage as possible out of the extra funds, and has heard that it’s cheaper to build a computer from scratch than getting one that’s ready-made. The chair asks you, as the youngest staff member and therefore, the one closest to “all this new technology,” to take this task as your first assignment for the department. Satisfied that your stunned silence means yes, the chair leaves some papers on your desk and closes the door.

A few hours of agonizing later, you try to think back to an informatics course you took during residency where they talked about computer parts. The most memorable part of the lecture was when the attending pulled off the top of a computer and showed you the inside of the machine. There were a lot of wires and metal pieces sticking out…

If you don't have ready access to a discarded computer that you can take apart, take a look at these [|computer pictures] here and see what parts you can identify.
 * Materials:** discarded or old computer parts.


 * Task**: Identify and name the functions of as many parts of the computer as you can.

**Review**
 * How to build your own computer – see if these articles make sense to you now: **
 * []
 * []

#2: Applied knowledge

 * 1) List the hardware platforms and operating systems in use in your laboratory.
 * 2) List the 3 most important determinants of computer hardware system performance and explain their interrelationship.
 * 3) Describe how machine language, operating systems, and programming languages relate to compatibility with hardware and/or software.

=Additional resources=
 * Sinard, JH. [|Introduction to Pathology Informatics] (powerpoint). APIII Conference: October 2008
 * The [|History of Computing project]:
 * [|PC Hardware]:
 * [|Hardware tutorial]
 * [|How stuff works: computer]
 * Henricks WH, Boyer PJ, Harrison JH, Tuthill JM, Healy JC. [|Informatics training in pathology residency programs: proposed learning objectives and skill sets for the new millennium] . Arch Pathol Lab Med. 2003 Aug;127(8):1009-18.
 * Cowan, DF. Chapter 6: Computer Basics. Cowan, DF, ed. [|Informatics for the clinical laboratory: a practical guide] . 2005. Springer-Verlag, New York. p. 98-124. (ISBN: 978-0-387-24449-5)

=Questions= Hardware or software?
 * 1) terminal emulator
 * 2) DVD
 * 3) device driver
 * 4) CPU
 * 5) GUI
 * 6) RAIDs
 * 7) word processor
 * 8) bus
 * 9) hard disk drive
 * 10) operating system

=Advanced courses=
 * Thomas Malone. Course materials for 15.561 [|Information Technology Essentials, Spring 2005] . MIT OpenCourseWare, Massachusetts Institute of Technology.
 * Steve Ward, Chris Terman, Gill Pratt. Course materials for 6.004 [|Computation Structures, Fall 2002]. MIT OpenCourseWare, Massachusetts Institute of Technology.
 * Eric Grimson, Trevor Darrell, Peter Szolovits. Course materials for 6.001 [|Structure and Interpretation of Computer Programs, Spring 2005]. MIT OpenCourseWare, Massachusetts Institute of Technology.
 * Anant Agarwal. Course materials for 6.002 [|Circuits and Electronics, Spring 2007]. MIT OpenCourseWare, Massachusetts Institute of Technology.
 * Aziz Boxwala, Omolola Ogunyemi, Qing Zeng. Course materials for HST.952 [|Computing for Biomedical Scientists, Fall 2002]. MIT OpenCourseWare, Massachusetts Institute of Technology.

=Expert corner= Help with Wikipedia articles

flat This page was last modified by user:{$revisioneditor} on {$revisiondate}.