Exam help: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
=Computer hardware=
==Computer hardware==


* Different buses and their uses
===* Different buses and their uses===
In computer architecture, a bus is a communication system that transfers data between components inside a computer, or between computers. This expression covers all related hardware components (wire, optical fiber, etc.) and software, including communication protocols.
In computer architecture, a bus is a communication system that transfers data between components inside a computer, or between computers. This expression covers all related hardware components (wire, optical fiber, etc.) and software, including communication protocols.


Line 8: Line 8:
The external bus, or expansion bus, is made up of the electronic pathways that connect the different external devices, such as printer etc., to the computer.
The external bus, or expansion bus, is made up of the electronic pathways that connect the different external devices, such as printer etc., to the computer.


===Types and uses:===
====Types and uses:====
;USB
;USB
:Universal Serial Bus. Designed for: input devices, digital cameras, printers, media players...
:Universal Serial Bus. Designed for: input devices, digital cameras, printers, media players...
Line 41: Line 41:
* [https://en.wikipedia.org/wiki/Active_matrix Active matrix] vs [https://en.wikipedia.org/wiki/Passive_matrix_addressing passive matrix] in display technology
* [https://en.wikipedia.org/wiki/Active_matrix Active matrix] vs [https://en.wikipedia.org/wiki/Passive_matrix_addressing passive matrix] in display technology


=Storage abstractions=
==Storage abstractions==


* What is a [https://en.wikipedia.org/wiki/Block_%28data_storage%29 block device]?
* What is a [https://en.wikipedia.org/wiki/Block_%28data_storage%29 block device]?
Line 49: Line 49:
* What is [https://en.wikipedia.org/wiki/Journaling_file_system#Write_hazards journaling] in terms of filesystems and what are the benefits? Name some journaled filesystems in use nowadays.
* What is [https://en.wikipedia.org/wiki/Journaling_file_system#Write_hazards journaling] in terms of filesystems and what are the benefits? Name some journaled filesystems in use nowadays.


=Bootloaders, kernels=
==Bootloaders, kernels==


* What is the role of BIOS/UEFI in x86-based machines?
* What is the role of BIOS/UEFI in x86-based machines?
Line 58: Line 58:
* What is the purpose of [https://en.wikipedia.org/wiki/Virtual_memory paged virtual memory]?
* What is the purpose of [https://en.wikipedia.org/wiki/Virtual_memory paged virtual memory]?


=Libraries, frameworks=
==Libraries, frameworks==


=Programming languages=
==Programming languages==


* What are the major steps of compilation?
* What are the major steps of compilation?
Line 66: Line 66:
* What is [https://en.wikipedia.org/wiki/Control_flow control flow]? Loops? Conditional statements?
* What is [https://en.wikipedia.org/wiki/Control_flow control flow]? Loops? Conditional statements?


=Data encoding=
==Data encoding==


* What is bit? Nibble? Byte? Word?
* What is bit? Nibble? Byte? Word?
Line 83: Line 83:
* How are time domain and frequency domain related in terms of signal processing? What is Fourier transform and where it is applied?
* How are time domain and frequency domain related in terms of signal processing? What is Fourier transform and where it is applied?


=Code execution in processor=
==Code execution in processor==


* Given ~10 instructions and their explainations, follow the instructions and elaborate after every step what happened in the processor?
* Given ~10 instructions and their explainations, follow the instructions and elaborate after every step what happened in the processor?


=Microcontrollers=
==Microcontrollers==


* What distinguishes microcontroller from microprocessor?
* What distinguishes microcontroller from microprocessor?
Line 94: Line 94:
* What is an timer?
* What is an timer?


=Introduction to Boole algebra=
==Introduction to Boole algebra==


* Simplify A AND A OR B
* Simplify A AND A OR B
Line 101: Line 101:
* Show multiplication of X and Y in binary
* Show multiplication of X and Y in binary


=Hardware description languages=
==Hardware description languages==


* What are the uses for hardware description languages?
* What are the uses for hardware description languages?
Line 116: Line 116:
* Write the equivalent Boole formula of a circuit diagram.
* Write the equivalent Boole formula of a circuit diagram.


=Publishing work=
==Publishing work==


* What are the major implications of MIT, BSD and GPL licenses?
* What are the major implications of MIT, BSD and GPL licenses?
Line 124: Line 124:
* What would you store in a version control system?
* What would you store in a version control system?


=Algorithms and data structures=
==Algorithms and data structures==


* What is time complexity of algorithm?
* What is time complexity of algorithm?
Line 134: Line 134:
* What's a good algorithm?
* What's a good algorithm?


=History=
==History==


* What is [https://en.wikipedia.org/wiki/Moore's_law Moore's law]? What is [https://en.wikipedia.org/wiki/Rock's_law Rock's law]?
* What is [https://en.wikipedia.org/wiki/Moore's_law Moore's law]? What is [https://en.wikipedia.org/wiki/Rock's_law Rock's law]?

Revision as of 15:26, 11 January 2016

Computer hardware

* Different buses and their uses

In computer architecture, a bus is a communication system that transfers data between components inside a computer, or between computers. This expression covers all related hardware components (wire, optical fiber, etc.) and software, including communication protocols.

The internal bus, also known as internal data bus, memory bus, system bus or Front-Side-Bus, connects all the internal components of a computer, such as CPU and memory, to the motherboard. Internal data buses are also referred to as a local bus, because they are intended to connect to local devices. This bus is typically rather quick and is independent of the rest of the computer operations.

The external bus, or expansion bus, is made up of the electronic pathways that connect the different external devices, such as printer etc., to the computer.

Types and uses:

USB
Universal Serial Bus. Designed for: input devices, digital cameras, printers, media players...
Serial ATA
Used by internal storage devices (hard disk). They replace the old ATA connectors.
PCI
Peripheral Component Interconnect, is a local computer bus for attaching hardware devices in a computer. Attached devices can take either the form of an integrated circuit fitted onto the motherboard itself or an expansion card that fits into a slot. Typical PCI cards used in PCs include: network cards, sound cards, modems, extra ports such as USB or serial, TV tuner cards and disk controllers.
PCI Express
Peripheral Component Interconnect Express (also called PCIe), is a high-speed serial computer expansion bus standard designed to replace the older PCI, PCI-X, and AGP bus standards. PCIe has numerous improvements over the older standards, including higher maximum system bus throughput, lower I/O pin count and smaller physical footprint, better performance scaling for bus devices, a more detailed error detection and reporting mechanism, and native hot-plug functionality. More recent revisions of the PCIe standard provide hardware support for I/O virtualization.
Mini PCIe
It is based on PCI Express technoogy. Main point is its small size and its large variety of connectors makes it used for USB2.0 cards, SIM card, Wifi and Bluetooth cards, 3G and GPS cards.
  • What are the differences between hard disk drive (HDD) and solid state drive (SSD)? [1]
  • What is the purpose of Flash Translation Layer in terms of solid state drives?

HDDs have spinning plates with magnetic coating, while SSDs have no moving parts and instead are filled with flash memory.

Storage abstractions

Bootloaders, kernels

  • What is the role of BIOS/UEFI in x86-based machines?
  • Explain step by step how operating system is booted up, see slides for flowchart.
  • Describe the functionality provided by general purpose operating system. See architecture of Windows NT, Android, OS X.
  • What are the main differences between real mode and protected mode of x86-based processor?
  • What happens during context switch?
  • What is the purpose of paged virtual memory?

Libraries, frameworks

Programming languages

Data encoding

  • What is bit? Nibble? Byte? Word?
  • Write 9375 in binary, hexadecimal?
  • Write 0xDEADBEEF in decimal?
  • What is quantization in terms of signal processing?
  • How are integers stored in binary? What integer range can be described using n bits? How many bits are required to describe integer range from n .. m.
  • How are single precision and double precision floating point numbers stored in binary according to IEEE754 standard? Floating-point multiplication
  • What is the difference between CMYK and RGB color models? How are YUV, HSV and HSL colorspaces related to RGB? What are sRGB and YCbCr and where are they used?
  • How is data encoded on audio CD-s? What is the capacity of an audio CD?
  • What is sampling rate? What is bit depth? What is resolution?
  • What is bitrate?
  • What is lossy/lossless compression?
  • What is JPEG suitable for? Is JPEG lossy or lossless compression method?
  • What is PNG suitable for? Does PNG support compression?
  • How are time domain and frequency domain related in terms of signal processing? What is Fourier transform and where it is applied?

Code execution in processor

  • Given ~10 instructions and their explainations, follow the instructions and elaborate after every step what happened in the processor?

Microcontrollers

  • What distinguishes microcontroller from microprocessor?
  • What are the differences between Hardvard architecture and von Neumann architecture?
  • What is an interrupt?
  • What is an timer?

Introduction to Boole algebra

  • Simplify A AND A OR B
  • Show addition of X and Y in binary
  • Show subtraction of X and Y in binary
  • Show multiplication of X and Y in binary

Hardware description languages

  • What are the uses for hardware description languages?
  • What is latch?
  • What is flip-flop?
  • What is mux (multiplexer)?
  • What is register? Register file?
  • What is ALU?
  • What is floating-point unit?
  • What is a cache?
  • What is a bus?
  • Show the circuit diagram for A OR B AND C, NOT A AND B, <insert some other Boole formula here>?
  • Show the truth table for <insert Boole formula here>?
  • Write the equivalent Boole formula of a circuit diagram.

Publishing work

  • What are the major implications of MIT, BSD and GPL licenses?
  • What are the differences between copyright, trademark, trade secret?
  • Where would you use waterfall software development model? Where would you use agile?
  • What is the purpose of a version control system?
  • What would you store in a version control system?

Algorithms and data structures

  • What is time complexity of algorithm?

In computer science, the time complexity of an algorithm quantifies the amount of time taken by an algorithm to run as a function of the length of the string representing the input. Time complexity is commonly estimated by counting the number of elementary operations performed by the algorithm, where an elementary operation takes a fixed amount of time to perform.

  • What is space complexity of algorithm?

Space complexity is a measure of the amount of working storage an algorithm needs. That means how much memory, in the worst case, is needed at any point in the algorithm. It represents the total amount of memory space that a "normal" physical computer would need to solve a given computational problem with a given algorithm.

  • What's a good algorithm?

History

Moore's law is the observation that the number of transistors in a dense integrated circuit doubles approximately every two years. The observation is named after Gordon E. Moore, the co-founder of Intel and Fairchild Semiconductor, whose 1965 paper described a doubling every year in the number of components per integrated circuit, and projected this rate of growth would continue for at least another decade. In 1975, looking forward to the next decade, he revised the forecast to doubling every two years. Rock's law or Moore's second law, named for Arthur Rock or Gordon Moore, says that the cost of a semiconductor chip fabrication plant doubles every four years. As of 2015, the price had already reached about 14 billion US dollars.

  • What were the major contributing factors for success of Microsoft, Apple, Google, <your favourite company>?
  • What were the major contributing factors to the success of Silicon Valley?