As Cory enlightened you on mostly hardware, I'll try and extend upon that:
A motherboard is
, in fact, the main part of a computer. Everything plugs in to it and it let's everything communicate with one another. It contains important, built-in chips such as the Northbridge, Southbridge, and Super I/O. It also has controllers for hard drives [40 pin controller (7 pin for serial drives)], floppy drives (34 pin controller), video card(s) (AGP/PCIE), and various devices that can go in PCI slots.
A processor can be thought as a brain, although it's actually an extremely fast and accurate calculator. It goes through 0's and 1's interpreting, factoring, coordinating and such. The 0's and 1's it goes through come from either the hard drive or the RAM. It also accepts input from devices such as the keyboard and mouse, however, onboard chips (Southbride and Super I/O) receive and 'decipher' data from input devices. These devices include: mouse, keyboard, parallel/serial, and USB/FireWire devices. Again, these are handled by the motherboard's onboard chips instead of the processor, however, digital data is sent to the processor so it may be sent to the correct hardware (such as the video card). Oh, and the CPU and processor are technically two different things. The CPU (Central Processing Unit) is a tiny but extremely important part of the processor (usually about 1/3 - 1/4 the size of the processor, itself). The rest of the processor is made up of cache and other jazz that you don't need
to know about.
Eh, that's basically all the technical stuff that Cory didn't cover (I think anyway
Now, software is what is run from the hardware. Normally, when we think of software, we think of programs, but really, software is anything that is purely logical and that can be written/read and created/erased from hardware. This means operating systems (OS) counts as software. So without software, computers could not run (they could, but not like they can with software, and the data would have to be physically embedded into the hardware, but we don't need to get into that.) Now, think of software as this: anything and everything you see on your screen right now is coming from software - from the start menu to the browser, to the background programs you can't see running.
Operating systems and programs are both software, however, they strongly differ in some ways. Operating systems only need compatible hardware to be run (and installed for that matter). Programs and applications (same thing) need a compatible operating system to run. Also, programs run inside
the operating system and the operating system interprets what the program does. Actually, the operating system manages the memory and how programs are run - eh, basically, the OS manages everything
that you click and whatnot on the computer
Programs can also have 'childs' (programs that are created from a 'parent' - usually the OS but sometimes a program) that run in the scope of the 'parent' application - in other words, the program that started another program can have complete control over it. There are different levels of programs: Operating system level (AKA Kernel level)
Program level. Since the operating system communicates directly (pretty much anyway) with the hardware, any application that runs at OS level can control hardware (or some of it). Applications that run at program level have no control over the OS nor the hardware.
All software is linked down to either "machine code" or a certain language which the operating system interprets. A program can be written in one language and compiled and work the exact same way another program works that was written in a different language. However, there are different languages (C, C++, VC++, C#, Java, J++, J#, Basic, VBasic, QBasic, etc.) because there are some advantages of each one. The three most common languages used are (V)C++, Java, and (V)Basic and all are very powerful. An advantage of C++ over the other two, is that the dynamic libraries it's programs commonly require are built into the OS, so after it is compiled and linked into a program, it doesn't need to have extra libraries or a virtual machine to run it. Anyway, you really don't need to know any languages unless you like to program.
I guess that's all for now. I might come up with some more content later.
Computer Lesson #1 from //KiroS