Unit 10: Recursion Flashcards

1
Q

ArrayList

A

A dynamic data structure that allows you to store and manipulate collections of objects. Unlike arrays, ArrayLists can grow or shrink dynamically as needed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Call Stack

A

A data structure that keeps track of function calls in a program. It stores information about the order and location of function calls, allowing the program to keep track of where to return after each function call is completed.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Iterative Code

A

Refers to programming constructs or algorithms that involve repetition using loops. It allows for executing a block of code multiple times until certain conditions are met.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Recursion

A

A programming technique where a function calls itself to solve a problem by breaking it down into smaller, similar subproblems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Traversal

A

Refers to the process of visiting and accessing each element in a data structure, such as an array or a tree, in a specific order.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Arrays.copyOfRange

A

A method in Java that creates and returns a new array containing elements from another array within specified range indexes (start index inclusive and end index exclusive).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Binary Search

A

An efficient algorithm used to locate a target value within a sorted array by repeatedly dividing the search interval in half.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Conquer Step

A

The part of an algorithm where the solutions to smaller subproblems are combined or merged together to solve the original problem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Divide Step

A

A strategy used in problem-solving algorithms where a complex problem is divided into smaller, more manageable subproblems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Factorial

A

Refers to the product of an integer and all the positive integers below it. For example, the factorial of 5 (written as 5!) is equal to 5 x 4 x 3 x 2 x 1.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Merge Sort

A

An efficient, comparison-based sorting algorithm that divides an unsorted list into smaller sublists, sorts those sublists recursively, and then merges them back together to obtain a sorted list.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Sequential Search

A

Another term for linear search, where each element in a list is checked one by one until the target value is found or the end of the list is reached.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

traverseArray

A

Accessing each element of the array one by one, usually in a sequential manner.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Recursive Call

A

When a function calls itself within its own code, allowing for repetitive execution of the same set of instructions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Abstraction/Method Writing

A

The process of simplifying complex systems by breaking them down into smaller, more manageable parts. Method writing refers to defining behaviors or actions that an object can perform.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Algorithm Analysis

A

The process of evaluating the efficiency and performance of an algorithm. It involves analyzing factors such as time complexity, space complexity, and scalability to determine how well an algorithm will perform in different scenarios.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Algorithms

A

Step-by-step procedures or instructions for solving problems or performing tasks. They provide clear instructions on how to solve problems efficiently.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Artificial Intelligence and Machine Learning

A

Refers to the development of computer systems capable of performing tasks that typically require human intelligence, such as speech recognition or decision-making and a subset of AI, that involves training algorithms on large datasets to make predictions or take actions without being explicitly programmed.

19
Q

Control Structures

A

Programming constructs that determine the flow of execution in a program. They allow you to make decisions and repeat actions based on certain conditions.

20
Q

Data Structure

A

A way of organizing and storing data in a computer so that it can be accessed and used efficiently. It provides a systematic way to manage and manipulate data.

21
Q

Data Structures

A

Ways to organize, store, and manipulate data efficiently. They provide different methods of accessing, inserting, deleting, or searching for data elements based on specific requirements.

22
Q

Discrete Math

A

A branch of mathematics that deals with countable and distinct objects. It focuses on topics like sets, logic, relations, functions, and combinatorics.

23
Q

Encapsulation/Class Writing

A

The practice of hiding internal details and providing a public interface for interacting with an object. Class writing involves defining the blueprint or template for creating objects in object-oriented programming.

24
Q

Graphics

A

Involves creating visual representations using computers. It encompasses various techniques such as rendering 2D or 3D images, manipulating pixels, applying transformations, and simulating realistic effects like lighting and shadows.

25
Q

Graphs

A

Data structures that consist of nodes (vertices) and edges, where the edges represent relationships between the nodes. They are used to model connections or relationships between different entities.

26
Q

GUIs (Graphical User Interfaces)

A

GUIs are visual interfaces that allow users to interact with software applications using graphical elements such as buttons, menus, and windows. They provide an intuitive way for users to navigate through an application without needing extensive knowledge of programming languages.

27
Q

Hash maps

A

Data structures that store key-value pairs, where each key is unique. They use a hash function to convert the key into an index in an array, allowing for efficient retrieval and insertion of values.

28
Q

Inheritance

A

A concept in object-oriented programming where a class inherits the properties and behaviors of another class. It allows for code reuse and promotes the creation of hierarchical relationships between classes.

29
Q

Linear Search

A

A simple searching algorithm that sequentially checks each element in a list until it finds the target value or reaches the end of the list.

30
Q

Logic and Proofs

A

Involves the study of formal reasoning, including deductive reasoning, symbolic logic, truth tables, and proof techniques such as direct proof, contrapositive proof, and proof by contradiction.

31
Q

Memory Analysis

A

Refers to the process of examining and understanding the contents of a computer’s memory. It involves analyzing data structures, variables, and other information stored in memory to gain insights into how a program is functioning or to identify potential security vulnerabilities.

32
Q

Memory Usage

A

Refers to the amount of computer memory (RAM) that a program or process requires to run. It is a measure of how much space is occupied by data and instructions in the computer’s memory.

33
Q

Object-oriented programming (OOP)

A

A programming paradigm that organizes code into objects, which are instances of classes. It emphasizes the use of objects to represent real-world entities and their interactions.

34
Q

Polymorphism

A

Refers to the ability of objects to take on multiple forms or have multiple types. In programming, it allows different objects to be treated as instances of a common superclass, enabling flexibility and extensibility.

35
Q

Probability

A

The branch of mathematics that studies uncertainty or randomness. It involves calculating the likelihood or chance that an event will occur based on mathematical models.

36
Q

Programming Language Construction

A

Involves designing and implementing programming languages. It includes creating syntax rules, defining data types, and developing compilers or interpreters that translate code written in a specific language into machine-readable instructions.

37
Q

Runtime Analysis

A

Refers to analyzing the efficiency of an algorithm by measuring its execution time and memory usage. It helps determine how well an algorithm scales with input size.

38
Q

Searching Algorithms

A

Methods used to find specific elements or values within a collection of data.

39
Q

Selection Sort

A

A simple sorting algorithm that repeatedly finds the minimum element from an unsorted portion of the list and swaps it with the first element of that portion until the entire list is sorted.

40
Q

Sets

A

Collections of unique elements with no specific order. They do not allow duplicate values and provide operations like union, intersection, and difference.

41
Q

Sorting Algorithms

A

Techniques used to arrange elements in a specific order (e.g., ascending or descending) within a collection of data.

42
Q

State Machines

A

Computational models that consist of a set of states and transitions between those states. They are used to represent systems that change from one state to another based on inputs or events.

43
Q

Trees

A

Hierarchical data structures consisting of nodes connected by edges. Each node has zero or more child nodes, except for the root node which has no parent. Trees are commonly used for organizing data in a hierarchical manner.

44
Q

Web Development

A

Refers to the process of creating and maintaining websites. It involves designing, coding, and implementing various elements such as web pages, user interfaces, and databases.