Praxis 5652 Various
superpolynomial time
Doubling the number of steps required each time the input size increases—or more than doubling
Difference between Encoding and Encryption
Encoding transforms data into another format using a scheme that is publicly available so that it can easily be reversed. For maintaining data usability and uses schemes that are publicly available Encryption transforms data into another format in such a way that only specific individual(s) can reverse the transformation. For maintaining data confidentiality and thus the ability to reverse the transformation (keys) are limited to certain people
XML
Extensible Markup Language - Set of rules defined for encoding documents in a format readable by both human and machine
Difference between object oriented programming and procedural programming
Procedural - programming model which is derived from structured programming, based upon the concept of calling procedure. Procedures, also known as routines, subroutines or functions, simply consist of a series of computational steps to be carried out. During a program's execution, any given procedure might be called at any point, including by other procedures or itself. Less Secure Object-Oriented - programming model which is based upon the concept of objects. Objects contain data in the form of attributes and code in the form of methods. More secure
Three paradigms of high level language
Procedural, Functional, Object Oriented
TCP/UDP
Protocols that can transport packets of data from one device to another and check for errors along the way
Put these in order of least to greatest: kilobyte, byte, bit, gigabyte, megabyte
byte, bit, kilobyte, megabyte, gigabyte
char and string
char - single quotes string - double quotes
class vs. object
class- template for a group of objects with similar characteristics object- is a unit of data that represents an abstract or real world entity.
Code style conventions for: Constants, class, method/variable
constants - CAPS class - FirstLetterCapital method/variable - camelCase
Flowchart shape: diamond, rectangle, parallelogram, oval
diamond - decision (boolean) rectangle - process parallelogram - input/ouput oval - start/end
Explain the difference between lossless and lossy compression
lossy - eliminate the data which is not noticeable - A file does not restore or rebuilt in its original form - Data's quality is compromised - reduces the size of data - used in Images, audio, video - has more data-holding capacity - also termed as irreversible compression Lossless - A file can be restored in its original form - does not compromise the data's quality - does not reduce the size of data - used in Text, images, sound - less data-holding capacity than Lossy compression technique - also termed as reversible compression
Explain these types of errors - runtime, syntax, compile, rounding, out of bounds, StackOverflowError
runtime - logic error (produces the wrong output) or memory leak (causes an infinite loop) compile - A program couldn't compile due to errors in the code rounding - difference between a rounded-off numerical value and the actual value out of bounds - trying to access an index value outside the allowed value StackOverflowError - A runtime error in java. When call stack exceeds due to excessive deep or infinite recursion
primitive
stored and accessed directly in memory (boolean, char, float, int)
digital rights management (DRM)
tools that restrict where and how a user can use copyrighted media
Parallel Computing
The simultaneous execution of the same task on multiple processors to obtain results faster.
latency
The time between the sending of a data message and the receiving of that message, measured in milliseconds
URL
Uniform Resource Locator
smart grid
Uses technology to improve how electricity travels from power plants to consumers and to prevent local failures from becoming widespread outages
Explain Virtual memory vs physical memory
Virtual memory is stored on the hard drive. Virtual memory is used when the RAM is filled. Virtual memory is slower than physical memory, so it can decrease the performance of applications. It is self-contained, does not write over other apps memory space. Physical memory are the RAM chips purchased and placed in a slot on the computer motherboard. The RAM is the first memory used when the computer requires memory usage, such as for loading an application or opening a document. Physical memory is limited to the size of the RAM chips installed in the computer. Virtual memory is limited by the size of the hard drive, so virtual memory has the capability for more storage.
UML (Unified Modeling Language)
Visual organizer showing objects and contents
Scatter Plot Graph
Way to visualize the correlation between two sets of numbers
open source license
When a programmer wants to make their code reusable, That license enables other programmers to bring the code into their own projects, as long as their reuse meets the conditions of the license
Linear time
When an algorithm grows in linear time, its number of steps increases in direct proportion to the input size. This time, the loop looks at every item in the list. This exhaustive search is necessary to search for items in an unsorted list, since there's no way to narrow down where a particular item might be. This algorithm will always require at least as many steps as items in the list
Quadratic time
When an algorithm grows in quadratic time, its steps increase in proportion to the input size squared. Several list sorting algorithms run in quadratic time, like selection sort. That algorithm starts from the front of the list, then keeps finding the next smallest value in the list and swapping it with the current value
Exponential time
When an algorithm grows in superpolynomial time, its number of steps increases faster than a polynomial function of the input size. An algorithm often requires superpolynomial time when it must look at every permutation of values
Constant Run Time
When an algorithm runs in constant time, it means that it always takes a fixed number of steps, no matter how large the input size increases
Logarithmic time
When an algorithm runs in logarithmic time, it increases proportionally to the logarithm of the input size (ex: Binary Search)
Public key encryption
It's an asymmetric encryption technique which uses different keys for encryption and decryption, allowing computers over the Internet to securely communicate with each other
Incremental development model
A development lifecycle where a project is broken into a series of increments, each of which delivers a portion of the functionality in the overall project requirements. The requirements are prioritized and delivered in priority order in the appropriate increment. In some (but not all) versions of this lifecycle model, each subproject follows a 'mini V-model' with its own design, coding and testing phases.
What is an NIC (Network Interface Card?)
A hardware component without which a computer cannot be connected over a network. It is a circuit board installed in a computer that provides a dedicated network connection to the computer. It is also called network interface controller, network adapter or LAN adapter
Linked Lists
A linked list is a linear data structure (like arrays) where each element is a separate object. Each element (that is node) of a list is comprising of two items - the data and a reference to the next node.
Data Center Network (DCN)
A network used in data centers where data must be exchanged with very little delay
What are data packets?
A packet is a small amount of data sent over a network, such as a LAN or the Internet. Similar to a real-life package, each packet includes a source and destination as well as the content (or data) being transferred
recursive algorithm vs. nonrecursive algorithm
A program is called recursive when an entity calls itself. Usage of recursion is advantageous in shorter code, but higher time complexity
Define CPU, RAM, ROM, USB
CPU - Central Processing Unit. CPU is considered as the brain of the computer. CPU performs all types of data processing operations. It stores data, intermediate results, and instructions (program). It controls the operation of all parts of the computer. RAM - Random Access Memory. The data stored in RAM can be accessed almost instantly regardless of where in memory it is stored, so it's very fast — milliseconds fast. RAM has a very fast path to the computer's CPU. ROM - Read-Only Memory. ROM is a type of storage medium that permanently stores data on personal computers (PCs) and other electronic devices. It contains the programming needed to start a PC, which is essential for boot-up; it performs major input/output tasks and holds programs or software instructions USB - universal serial bus. USB is a plug and play interface that allows a computer to communicate with peripheral and other devices. USB-connected devices cover a broad range; anything from keyboards and mice, to music players and flash drives
convert to binary - 0101
5
Huffman Coding
A bit compression technique
What is TCP (Transmission Control Protocol)?
A communications standard that enables application programs and computing devices to exchange messages over a network. It is designed to send packets across the internet and ensure the successful delivery of data and messages over networks
Polymorphism
A concept that refers to the ability of a variable, function or object to take on multiple forms.
Queue
A queue or FIFO (first in, first out) is an abstract data type that serves as a collection of elements, with two principal operations: enqueue, the process of adding an element to the collection.(The element is added from the rear side) and dequeue, the process of removing the first element that was added. (The element is removed from the front side). It can be implemented by using both array and linked list.
Scatterplot, Histogram, time series plot
A scatter plot uses dots to represent values for two different numeric variables. The position of each dot on the horizontal and vertical axis indicates values for an individual data point. Scatter plots are used to observe relationships between variables A histogram groups numbers into ranges, using bar heights A time-series plot is a univariate plot: it shows only one variable. It is a 2-dimensional plot in which one axis, the time-axis, shows graduations at an appropriate scale (seconds, minutes, weeks, quarters, years), while the other axis shows the numeric values
TLS
A secure protocol for sending encrypted data so that attackers can't view private information
Malware Protection
A security patch is an update to the code of an application or the entire operating system, and often fixes a bug that's been exploited by malware. A firewall is a system that monitors incoming and outgoing network traffic to a computer or internal network, and determines what traffic to allow.
Agile Process Model
A software development approach based on iterative development. Agile methods break tasks into smaller iterations, or parts do not directly involve long term planning. The project scope and requirements are laid down at the beginning of the development process.
What does a strong typed language mean?
A strongly-typed programming language is one in which each type of data (such as integer, character, hexadecimal, packed decimal, and so forth) is predefined as part of the programming language and all constants or variables defined for a given program must be described with one of the data types
Heuristic
A technique that guides an algorithm to find good choices. When an algorithm uses a heuristic, it no longer needs to exhaustively search every possible solution, so it can find approximate solutions more quickly. A heuristic is a shortcut that sacrifices accuracy and completeness
Types of malware
A trojan horse is a harmful program that masquerades as a legitimate program, and is often downloaded onto computers by unknowing users. Once the user runs the program, it can start inflicting its damage. A virus is self-replicating: it contains code that copies itself into other files on the system. Viruses may hide in the code of a legitimate program A worm is also self-replicating, but it copies itself into entirely different computers within the network. It can travel along networked protocols such as email, file sharing, or instant messaging.
MIT License
Allows for distribution, modification, commercial use, and private use of the code, as long as the copyright and license information are included in the reused code
Fair Use Copyright
Allows limited use of copyrighted materials for purposes like criticism, comment, news reporting, teaching, or research
digital certificate
Also known as a public key certificate or identity certificate, proves the ownership of an encryption key
Geolocation
An HTML5 application programming interface that allows developers to retrieve the geographical location information for a client-side device. Most precise - (GPS) Least precise - (IP-based geolocation)
What is abstraction?
An abstraction is a way to manage complexity. It's taking something that is inherently complex and making it simple to use and work with. Printing something to console is actually a fairly complex task under the hood, but we as developers don't have to worry about that. For us, the process of outputting text to the console is abstracted away from us.
Berne Convention
An international agreement on copyright across borders
Symmetric Encryption
Any technique where the same key is used to both encrypt and decrypt the data
Bubble Plot
Best option for conveying the numerical relationship between three or four sets of values. Dots are sized based on a third dimension of the data
CISC (Complex Instruction Set Computers) vs RISC (Reduced Instruction Set Computer)
CISC - The primary goal is to complete a task in as few lines of assembly as possible. Emphasis on hardware. Memory-to-memory:"LOAD" and "STORE" incorporated in instructions. RISC processors only use simple instructions that can be executed within one clock cycle. Emphasis on software. Register to register:"LOAD" and "STORE" are independent instructions.
Local area network (LAN)
Connects a group of computers in close proximity, such as in an office building, school, or home
Domain Name System (DNS) protocol
Convert a domain name into an IP address
Digital Millennium Copyright Act (DMCA)
Criminalizes the production and distribution of technology that tries to circumvent DRM
Imperative vs. Declarative Programming
Declarative Programming is like asking your friend to draw a landscape. You don't care how they draw it, that's up to them. Imperative Programming is like your friend listening to Bob Ross tell them how to paint a landscape. While good ole Bob Ross isn't exactly commanding, he is giving them step by step directions to get the desired result.
chroma subsampling
Keep the brightness, but reduce the amount of color information
What is latency change?
Latency is a measure of delay. In a network, latency measures the time it takes for some data to get to its destination across the network. It is usually measured as a round trip delay - the time taken for information to get to its destination and back again
What is depth first traversal?
Depth First Traversals: (a) Inorder (Left, Root, Right) : 4 2 5 1 3 (b) Preorder (Root, Left, Right) : 1 2 4 5 3 (c) Postorder (Left, Right, Root) : 4 5 2 3 1 Breadth First or Level Order Traversal : 1 2 3 4 5
What is fair use?
Fair use allows limited use of copyrighted material without permission from the copyright holder for purposes such as criticism, parody, news reporting, research and scholarship, and teaching
Empirical analysis
Find faults in an algorithm. An "empirical" analysis is one based on actual experimentation and observation of the results. In the world of algorithms, that means the algorithm must actually be translated into a programming language and executed on a computer. Empirical analysis can only be used to prove that an implemented algorithm is not correct, by discovering inputs where the output is unexpected. However, it cannot prove that an algorithm is correct
Linear Search
Finds a value in a list. The algorithm looks through each item in the list, checking each one to see if it equals the target value. If it finds the value, it immediately returns the index. If it never finds the value after checking every list item, it returns -1
XOR operation
If two bits are the same, the result is 0. Otherwise, the result is 1
Difference in Input devices, output devices, and storage devices
Input, used to interact with, or send data to the computer (mouse, keyboards, etc.) Output, which provides output to the user from the computer (monitors, printers, etc.) Storage, which stores data processed by the computer (hard drives, flash drives, etc.)
Define Inheritance
It is a mechanism in which one class acquires the property of another class. For example, a child inherits the traits of his/her parents. With inheritance, we can reuse the fields and methods of the existing class. Hence, inheritance facilitates Reusability
Drawbacks to comma-separated values (CSV)
It's a single file, so its size is limited by the computer's hard drive space and by the amount of time it takes to open a large file. It doesn't come with any built-in tools for querying the data, like sorting by a column or calculating the top value of a column. To analyze the data, we need to either open the CSV in a spreadsheets application or write programs that iterate through the data
Creative Commons licenses
License that allows you to keep your copyright, while allowing others to copy and distribute your work under your conditions, without lawyers and expensive fees.
Waterfall Development Model
Linear model that moves in a sequential order. The team moves onto the next phase only when the previous phase is complete. Requirements and analysis phase, design phase, coding, system integration, testing and debugging, delivery, maintenance. Not best suited for code development, but instead constructions projects.
Internet Engineering Task Force (IETF)
Maintains the specifications for the Internet protocols. The IETF is an open standards committee that comes up with refinements to existing protocols and proposes entirely new protocols. The committee is made up of representatives across the Internet industry and is open to participation by anyone who has opinions about how the Internet should work
Spiral Development Model
One of the most important Software Development Life Cycle models, which provides support for Risk Handling. The Radius of the spiral at any point represents the expenses(cost) of the project so far, and the angular dimension represents the progress made so far in the current phase.
fault-tolerant system
One that can experience failure (or multiple failures) in its components, but still continue operating properly
Scalable system
One that remains effective even with a high number of users
Personally Identifiable Information (PII)
PII refers to any data that can help identify you, such as your address or name
network topology
Refers to the geometric arrangement of the actual physical organization of the computers and other network devices) in a network
HyperText Transfer Protocol (HTTP)
Request the webpage contents from that IP address
3 parts to an algorithm
Sequencing: An algorithm is a step-by-step process, and the order of those steps are crucial to ensuring the correctness of an algorithm Selection: Algorithms can use selection to determine a different set of steps to execute based on a Boolean expression Iteration: Algorithms often use repetition to execute steps a certain number of times or until a certain condition is met
Transport Layer Security (TLS) protocol
Serve the website over a secure, encrypted connection.
What is SSO
Single Sign On - a session and user authentication service that permits a user to use one set of login credentials -- for example, a name and password -- to access multiple applications
Explain Spam, Phishing, Hacking, and Robocalls
Spam is unwanted, unsolicited commercial e-mail, along with mail that is misleading Phishing is expressly designed by a malignant actor to harm a company or individual by obtaining sensitive information. It often takes the form of a seemingly legitimate-looking message from a trusted sender Telemarketers and scammers rely on robocalls to send you marketing messages, attempt to get personal info to be used in an attack against you, and to collect your phone number to determine if you're right for future marketing opportunities Hacking - it is the unauthorized access to or control over computer network security systems for some illicit purpose
Wide Area Network (WAN)
Spans a large geographic area such as a state, province, or country
What is encapsulation?
Surrounding something, not just to keep the contents together, but also to protect those contents. Restricts access to the inner workings of a class or any objects based on that class; this is referred to as information hiding or data hiding.
What is DNS (Domain Name System)?
The main function of DNS is to translate domain names into IP Addresses, which computers can understand. It also provides a list of mail servers which accept Emails for each domain name. ... This record is used to point your domain name to an IP address
line coding
The process of turning binary data into a time-based signal
HTTP & DNS
The protocols powering the World Wide Web, what the browser uses every time you load a webpage
Sequential computing
The computer executes each operation of the program in order, one at a time. Computational model that breaks programs into smaller sequential operations and performs those smaller operations in parallel
Transmission Control Protocol (TCP)
The data transport protocol that's most commonly used on top of IP and it includes strategies for packet ordering, retransmission, and data integrity
Explain digital divide
The digital divide refers to the gap between those able to benefit from the digital age and those who are not
Speedup
The ratio of the time taken to run the program sequentially to the time taken to run the parallelized program
Difference between compiled and interpreted language
a compiled language generates a binary file that can be directly executed and distributed. In a compiled language, the target machine directly translates the program. In an interpreted language, the source code is not directly translated by the target machine. Instead, a different program, aka the interpreter, reads and executes the code.
perceptual audio coding
audio compression algorithm to analyze an audio file and discard sounds outside hearing capacity
Two ways to translate high level language - interpret, compile
interpret - line by line compile - translate all, then execute
What kind of data structure are Array, Linked List, Queues, and Stacks?
linear
What is Bytecode
program code that has been compiled from source code into low-level code designed for a software interpreter. It may be executed by a virtual machine (such as a JVM) or further compiled into machine code, which is recognized by the processor
Types of machine learning
reinforcement learning: The algorithm performs actions that will be rewarded the most. Often used by game-playing AI or navigational robots. unsupervised machine learning: The algorithm finds patterns in unlabeled data by clustering and identifying similarities. Popular uses include recommendation systems and targeted advertising. supervised machine learning: The algorithm analyzes labeled data and learns how to map input data to an output label. Often used for classification and prediction