Tuesday, May 17, 2016

Difference between for & while

Difference between For Loop and While Loop

For Loop
- a fixed repetition loop
- will run the given number of times no matter how the body of for loop code changes the values of the variables

If you have a constant (eg. Max students), you can run the For Loop for that many times. You can change the value of the constant. Every year you can change the value of Max students.

The counter value increases or decreases depending upon the for loop min, max, incremented or decremented values automatically as stated per requirement-no separate statement is made within the body of for loop.

A separate variable is needed most times to run a For Loop.

A For Loop can also start with a maximum value and decrease each time the body of the loop is executed.

While Loop

While loop can have various conditions and they can be joined (AND OR). The control enters the loop body only when the condition is met. If the condition is not met, the control goes to the statement following the end of the while loop body. A statement within the while loop changes the criteria and that actually moves the control out and to the statements that are following the end of the while loop body.

Wednesday, April 13, 2016

Computer Architecture Notes

Input Devices
Graphics Tablets
Cameras
Video Capture Hardware
Trackballs
Barcode Reader
Digital Camera
Gamepad
Joystick
Keyboard
Microphone
MIDI keyboard
Mouse (pointing device)
Scanner
Webcam
Touchpads
Pen Input
Electronic Whiteboard
Magnetic Key Cards

Output Devices

Monitor
Printers (all types)
Plotters
Projector
LCD Projection Panels
Computer Output Microfilm (COM)
Speaker(s)
Radio

Both Input-Output Devices:
Modems
Network cards
Touch Screen
Headsets (consisting of speakers and microphone)
facsimile (FAX) - has scanner to scan document and also printer to print the document)
audio cards/sound card
USB

Volatile Programming: stored in RAM
- the data used from the programs is stored in RAM

CPU - central processing unit
   -2 components
      - Control Unit  (executes the program line-by-line and works as an interface between input/output devices, ALU, and RAM)
      - Arithmetic Logic Unit (performs arithmetical calculations and evaluates logical statements)

Computer Architecture Diagram


Wednesday, April 6, 2016

Fundamentals of Computer Architecture

Computers do not react to anything except for being either on or off - everything else is programmed by a human.
   0 - OFF
   1 - ON
(states => binary)
0 bit
1 bit

EVERY SYMBOL on your keyboard is called a character - including the space bar, A-Z, a-z, 0-9, special symbols (!@#$%, etc.)

8 bits = 1 byte (ex. 01010010 = A)
   Every character on the keyboard is represented by a byte.

The operating system does resource management - already stored in machine - helps computer wake up, shut down, connect to printers, keyboard, mouse, etc.

When a person types out any character on the keyboard, electrical pulses are either sent in or NOT sent in based on the combination of bits used for the character.

A compiler takes in the high level language from the user (ex. java program), checks it for any errors, displays them to the user to correct them, and then converts the ENTIRE program into object code/binary code/machine code once everything is corrected.

interpreter is a program that takes in the high level language and coverts it instantly LINE BY LINE into machine language. It shows errors in the input as soon as it is typed.

Source Code --> Compiler/Interpreter --> Object Code 1010011...

(Object Code: Binary Code/Lang, Machine Code/Lang executable)

High Level Lang: Java, C++, Python, etc.

Application Software & System Software

application software: software that applies only to that application (ex. banking system, hospital management system, etc.)

system software: (ex. operating system, compiler, drivers, etc.) designed to run a computer's hardware and application programs

Operating System:

booting: system checks whether everything is working










Wednesday, March 9, 2016

Points to Consider for Presentation

Some points I would consider to keep my audience engaged during the presentation:

  • public speaking skills (eye contact, volume, changing pitch)
  • fun pictures and slides
  • jokes, humor
  • interesting information
  • look interested in the information yourself
Guy Kawasaki's 10 20 30 rule:
  • keep a maximum of about 10 slides for the whole presentation
  • use around 20 minutes to present the whole presentation
  • use (at least) 30 point font
    • bigger font makes you write less
    • get to know your actual content

Wednesday, March 2, 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 away 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 - te

Systems Thinking

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

When I hear "system," technology like computer programs comes to mind, and the ecosystem in nature. I think systems are the technology that run programs. We write in the computer's language to tell the programs what to accomplish and how to function. In a system, all components are connected to run a program.

  • system-working together to function (ex. computer)
  • have same names for same data (ex. FName/LName, FirstName/LastName)

Wednesday, February 24, 2016

Name Card-Mission Reflection

1. Each step of the Design-Thinking Process is required because they all come together in order to create the best prototype. Empathize is to find out what exactly is needed for the prototype. Define is to discover what problems must be solved using the product. Ideate is finding solutions to the problem. Prototype is making the actual product, and Test is to see if the product created is effective.
2. I learned that finding, solving, and improving questions and solutions to them is not as easy as I thought, but making a product for a person is fulfilling and fun.
3. I implemented the use of both black and white, and colored images. For example, I sketched in black and white for the earbuds and jazz shoes, but color for the Southwest and Warriors logos.

Name Card Prototype

Feedback:
-Color for sketches
-neater, less fuzzy lines





Wednesday, February 3, 2016

Name Card Ideate



Feedback
Add airplanes, elaborate on Warriors sports theme, express Harry Potter movie theme more.

Name Card Define

Digging Deeper
  • Vacation
  • Sport
  • Color
  • Movie
  • Apple Product
  • Airplane
  • Sports team
Theme - Movie
challenge - I don't like sports very much, don't like apple products


Name Card Empathize

I am making a name card for Sahil Jain.

The name card will have my information.
  1. Vacation
  2. Book
  3. Sport
  4. Movie
  5. # of siblings
  6. Hobby
  7. Disliked Food
  8. Do I like school?
  9. Apple product
  10. Sports team
  11. Birthday Party
  12. Color
  13. Airplane
Digging Deeper
  • Vacation
  • Sport
  • Color
  • Movie
  • Apple Product
  • Airplane
  • Sports team

Wednesday, January 27, 2016

Software Development Lifecycle and Design Thinking Process

Software Development Life Cycle
  • Systems 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 step two are found and any specific user proposals are used to prepare the specifications.
  • Systems 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.

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.

Wednesday, January 20, 2016

My perspective on Computer Science

What is computer science?

Computer science is the study and use of technology, primarily computers. One uses programming languages to give commands to technology.

What do I know?

I know a little bit about Python and Java from the past two years of computer science, and also that programming involves a lot of problem solving and logic.

What do I expect to learn?

I expect to learn the basics of computer programming and possibly how to program basic things like games.