BJC Unit 6

0.0(0)
studied byStudied by 1 person
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/30

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

31 Terms

1
New cards

high level of abstraction to low

software domain, digital domain, analog domain

2
New cards

Layers of abstraction in the software domain

- applications that you write and use

-programing languages that are used to write them

-libraries of useful functions that hide messy details

-operating systems that interface with the hardware

3
New cards

abstraction

a way of thinking about the computer without thinking about how it works

4
New cards

Digital domain abstraction levels

-architecture: instructions that software can send that the hardware will understand

-components: memory, processors, video cards that implement the architecture

-components are made out of integrated circuits (chips)

-integrated circuits are designed around logic gates: fundamental building blocks that implement Boolean functions (logic gates use 1's and 0's) and are made out of transitors

5
New cards

boolean functions

_ and _

_or_

not_

6
New cards

transistors

circuit component with in-between values

ex: "only 23% on"

7
New cards

analog vs digital

Digital and analog are opposites. Digital means information that is represented as ones and zeros. Analog means information that is represented by signals that vary continuously (that is, including in-between values).

8
New cards

data mining

computers can learn to combine information from different sources, to produce surprising results

-combining multiple sources of online info to send specialized ads

9
New cards

machine learning

Computers can be taught to generalize from the information they finds to patterns to predict the future.

-weather
-astronomy

10
New cards

spreadsheets impact

the application that made businesses take computers seriously

11
New cards

special-purpose languages

narrow purposes

-microsoft word - "word macros" -generating data and formatting in a document

12
New cards

general-purpose languages

if an algorithm can be expressed in one language, it can be expressed in all of them.

the only difference between these languages are the levels of abstractions

13
New cards

high level language

includes many built-in abstractions that make it easier to focus on the problem you want to solve rather than on how computer hardware works.

-can produce safer programs (less likely to have bugs)
-ex: snap

14
New cards

low-level language

has fewer abstractions, requiring you to know a lot about your computer's architecture to write a program.

-reason why programmers use this: to write operating systems (like Windows)

15
New cards

garbage collection technique

puts the computer in charge of knowing when a block of memory is no longer in use.

16
New cards

highest order functions

"map"
"keep"
"combine"
"for each"

17
New cards

machine language

A program written in the basic, simple instructions that the computer understands directly.

-ultra low-level language

-compilers and interpreters are used to translate human programming languages into machine language to be run by the computer.

18
New cards

compiler

a program that takes a high- or low-level language program (the source code) as input and produces a machine language program (the object code) as its output. Once produced, the machine language program can be run repeatedly without needing to be compiled again.

19
New cards

interpreter

a program that takes a high- or low-level program as input and carries out machine language instructions as needed to run the program. It does not produce a stand-alone machine language program as output and will have to repeat the process again next time.

20
New cards

parallel programs

programs that can use more than one processor at the same time.

21
New cards

functional programming languages

(languages in which programmers never change the value of a variable) are particularly well suited to parallelism because there's no danger of one processor changing the value of a variable that another processor is using.

22
New cards

library

is a piece of computer code written by another programmer that you can import into your code without having to know any of the details of how it works.

23
New cards

application program interface (API)

is the documentation of what the user of a library needs to know about its contents: a description of their purpose and their inputs and outputs, but not their algorithms. An API allows two software components to communicate.

24
New cards

operating system

the underlying programs that your apps interact with to communicate with the computer.

-phone: android or IOS

25
New cards

kernel

deals directly with hardware (keyboard, mouse, microphone, camera, hard drives, memory, printer, speakers, screen, etc.). It is generally written in a low level language so it can control that hardware.

-scheduling
-security
-input and output

26
New cards

These days, OS kernels are remarkably similar. Of the five systems listed earlier (Linux, macOS, Windows, Android, and iOS), four of them (all but Windows) are based on variants of a single kernel...

unix

27
New cards

hardware

The physical components of a computer.

28
New cards

babbage

gears
-difference engine: used gears to design a complex machine that would compute and print tables of numbers. But these gears needed to be so precise that each one had to be handmade.

analytical engine: based on difference engine but could carry out instructions

-created plans for modern computer

29
New cards

software

a program stored in the computer's memory

-abstraction is software allows computer to be used for multiple different things

30
New cards

architecture

an abstraction, a specification of the machine language. It also tells how the processor connects to the memory. It doesn't specify the circuitry; the same architecture can be built as circuitry in many different ways.

-width of the architecture is measured in bits (# of wires)
-wider computer cab process more data in one instruction

31
New cards

assembly language

a line-by-line equivalent to the actual numeric instruction codes but is slightly more readable.