##
Description

i need help replying to classmates discussions:

**Topic: Jupyter**

1.

I did not have any trouble downloading Jupyter and I cannot tell which one I like better yet. I am still struggling with the coding so I am not really thinking about the functionality of the different programs.

An example of a NumPy application is using it with SciPy which has high level mathematical formulas and functions. The capabilities of this application I expect to be useful in the field of Cyber Security. A significant portion of cyber security is trying to detect an intruder after they have already penetrated the network or system and are operating in a way that they look like normal traffic. Defense programs using NumPy and SciPy can analyze system traffic and activity to look for outliers that can only be seen when comparing system data from different time periods. The math required to do this work is immensely difficult so only through sophisticated program coding can this activity be done.

2.

After using Jupyter for some time I believe I like Spyder better but I have not encountered any issues though. An example of a Numpy application is machine learning. Numpy provides array-related functionality and is widely used for numerical computation. In Numpy, you can perform mathematical operations on large data sets, which are essential for many machine learning algorithms. In my future career, I would use NumPy for machine learning and data analysis

**Topic: heaps**

1.

Heap: “This data structure allows us to perform both insertions and removals in logarith- mic time, which is a significant improvement over the list-based implementations discussed in Section 8.2.” (Michael T. Goodrich). The way this is done is by not storing elements and keys in a list but instead in a binary tree.

There is a selection and an insertion sort. The difference in the two is that selection an algorithm that reaching fast speeds in the first phase but slow speeds in the second and the insertion sort is the *complete* opposite. Using both of them together in order to run both a decent speeds is why we use a priority queue which is called a Heap.

Heaps binary tree from what I gather is a *complete* binary tree. Which means each level of the tree except the very bottom level are completely filled and if they are not completely filled then you will start from left to right when filling them.

Priority queue is a queue data structure with a priority function that acts like a queue. A heap is a priority queue and can get the highest priority when represented by using arrays.

2.

A priority que is an ADT consisting of two main operations, insert and delete. A priority que can be implemented by using a binary heap structure. A binary heap structure is a binary tree represented by an array. Heap sort is a comparison-based sorting technique based on the aforementioned binary heap structure. Together these tools can assist with sorting arrays or lists of elements. This is a common and effective process used in software engineering. However heapsort is not stable because operations on the heap can change the relative order of equal items thus making quicksort an often preferred method.