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.


Thursday, February 4, 2016

Name Card - Ideate

Ideate Feedback:

Delaney: It's good.
Kenneth: It's looks great.

Name Card - Define

Theme: Water and Nature

Challenge: Expressing the horoscope and what it means

Thursday, January 28, 2016

Name Card - Empathize

I am making a name card for Kenneth and Delaney.
My name card will have my information.

Favorite color?
Favorite sport?
How old are we?
Dream vacation spot?
Name?
Favorite activity?
Favorite Animal?
Favorite band?
Horoscope?
Favorite movie?
Which of the elements are you?
Spirit animal?
Favorite book?


Digging Deeper:
Name?
Vacation Spot?
Color?
Favorite band?
Horoscope?
Which of the elements are you?
Spirit animal?

Software Development Life Cycle and Design Thinking Process


Software Development Life Cycle:
  • System Analysis, requirements gathering: Defines project goals into defined functions and operation with the objective in mind. It is the process of gathering user requirements, diagnosing problems and recommending improvements to the future system.
    • A series of steps followed by the developer are:
      • 1) Gathering Facts: End user requirements are obtained through documentation, client interviews, observation and questionnaires - asking what the user is currently doing and if there are any specific improvements they want or prefer.
      • 2) Scrutiny of the existing system: Identify pros and cons of the current system-in-place, so as to carry forward the pros and avoid the cons in the new system.
      • 3) Analyzing the proposed system: Solutions to the shortcomings in the step two are found and any specific user proposals are used to prepare the specifications.
  • System Design: Describes desired features and operations in detail, including screen layouts, rules, guidelines, process (data flow and entity relation) diagrams, pseudocode and other documentation.
  • Development: The real code is written here.
  • Integration and testing: Brings all the modules (pieces) together into a special testing environment, then checks for errors, bugs and interoperability.
  • Maintenance: During the maintenance stage of the SDLC, the system is assessed to ensure it does not become obsolete. This is also where updates are made to the initial software. It involves continuous evaluation of the system in terms of its performance and completing the change requests based on the feedback.

Design Thinking Process:
User submitted image
Empathize: Work to fully understand the experience of the user for whom you are designing. Do this through observation, interaction, and immersing yourself in their experiences.

Define: Process and synthesize the findings from your empathy work in order to form a user point of view that you will address with your design.

Ideate: Explore a wide variety of possible solutions through generating a large quantity of diverse possible solutions, allowing you to step beyond the obvious and explore a range of ideas.

Prototype: Transform your ideas into a physical form so that you can experience and interact with them and, in the process, learn and develop more empathy.

Test: Try out high-resolution products and use observations and feedback to refine prototypes, learn more about the user, and refine your original point of view.

Help me remember someone's name

1) Ask their name
2) Remember appearance and where and why I met them to correlate with the name
3) Use their name often when talking to them
4) If you put the contact in your phone, put a picture and notes in the contact
5) Get information about them so the person seems like more of a person than just a name.

Thursday, January 21, 2016

Empathize - Questions for the user

1) What is your favorite color?
2) How old are you?
3) What kind of music do you like?
4) Do you play any sports?
5) What is your dream vacation spot?
6) What are your hobbies?
7) Do you have any siblings?
8) What are your favorite movies?
9) Who is your favorite celebrity?
10) What are your life dreams?
11) How is your personality?
12) Favorite food?
13) Dreamer or Realist?
14) Culture?
15) Sweet or sour or salty?