Thursday, April 21, 2016

Computer Architecture Notes


  • Input Devices
    • Keyboard
    • Mouse
    • Track Pad
    • Touch Screen
    • Camera
    • Microphone
    • Scanner
    • Barcode Reader
    • Joystick
    • Gamepad
    • Trackballs
    • Pen input
    • Magnetic Keycards
  • Output Devices
    • Monitor
    • Speaker
    • Printer
    • Projector
    • Radio
  • Both Input and Output
    • Modems
    • Network Cards
    • Touch Screen
    • Headsets
    • Fax
    • Audio Cards
    • USB
  • RAM (Random Access Memory)
    • Volatile Memory - erases everything when power is switched off
    • Stores current programs and data
  • CPU (Central Processing Unit)
    • ALU (Arithmetic Logic Unit)
      • Performs arithmetic operations and evaluates logical statements to true or false
    • CU (Control Unit)
      • Oversees execution of the program statement after statement

Thursday, April 14, 2016

Computer Architecture Diagram



Fundamentals of Computer Architecture

  • What gives to life to a computer
    • Electricity
    • 0 is for off; 1 is for on - power button - binary system because there are two states
      • 0 & 1 are called bits
      • Combination of 8 bits = 1 byte
      • Unit of computer memory = byte
      • Every symbol on the keyboard is called a character
        • Each character is made up of a sequence of 8 bits - 1 byte
  • High Level Languages
    • Ex: Java, C, C++
    • Kind of like English
    • Has grammatical rules
    • Gives out error messages
  • Complier
    • A systems program that goes through source code and points out any errors and when source code is correct, it will convert the entire source code into binary code
  • Interpreter
    • A systems program that goes through source code and points out any errors and when source code is correct, it will convert the source code statement after statement into binary code
  • Source Code --> Compiler/Interpreter --> Object Code
    • Source Code = HLL (High Level Languages)
    • Object Code = binary code/language, machine code/language - 01010011
  • Systems program
    • Cannot be changed by user
    • Ex: driver
  • Application Program
    • Made for specific application
    • Ex: hospital management, banking system

Thursday, March 3, 2016

Software approach, Top down design

One way of coding is to simply have a rough idea of what you want to do and then start typing a way to produce one huge source file.

This is a very bad idea.

The resulting code is likely to have many issues with it that include

  • Poorly documented code, so very hard to maintain and update
  • 'Spaghetti code' - which means a tangled mess of jumps and loops all over the code, very hard for someone to understand. Even by the original coder a few days later!
  • Duplication of code, so wasting memory and running speed
  • Very hard to develop by more than one person as there is only one file
  • Very hard to debug - the file either works or it doesn't
Here are more issues, but hopefully the list shows that it is best to have a methodical, professional approach to coding which this mini-web will cover

Systems Thinking

What comes to your mind when you hear the word, system? What is a system? How does it work?

A system is multiple things working together to accomplish a goal. A small change in a subsystem can affect everything. It works by one thing helping another and then another or pieces from each thing coming together. Examples, a factory, a company, organization system, computer programming, school, kitchen

Thursday, February 25, 2016

Name Card - Mission Reflection

1) Why is each step required?
Empathize was needed so that I could know what the user wanted from the namecard.
Define was needed so that I could give myself a theme as a starting point for ideas of my namecard and know what challenge I should focus on.
Ideate was need so that I could sort out my ideas and pinpoint a final one that I wanted to make.
Prototype was needed so that I could actually make the product.
Test was needed so that I could get final feedback on my product and know what I could improve as a whole.

2) I learnt that what I was imagining for a name card was different from what the user wanted so I had to change my thinking to his and her thinking and I learnt that I needed to keep asking for feedback so that I could get exactly what the user wanted.

3) My name card is disruptive because it does not show the boring things that people want but the interesting details that the user actually wants.

Name Card - Prototype/Test

Feedback:

Kenneth: It looks cool. I like the font of your name and the hummingbird.
Delaney: It looks really good.