By Jenny Kim
With the current pandemic impacting the world, many students are staying at home and therefore have more free time on their hands. For many high school students, this can be a great time to pick up some technical skills in engineering at home. Several websites provide online courses for different engineering disciplines.
Linkengineering provides tutorials for design and engineering projects such as designing a bicycle helmet, investigating insulation materials, or building a psychrometer. This website is designed for students in kindergarten to twelfth grade. By providing in-depth tutorials and explanation guides, this resource helps students explore their creative sides and gain a greater understanding of what the engineering fields have to offer. It describes the differences between electrical engineering, chemical engineering, and other disciplines which can be especially helpful for high school seniors applying to colleges.
NBC Science has a large array of news and videos to help students learn about new developments in the science and technology world. The site consists of videos and articles that cover topics such as DNA, robotics, and new updates regarding the coronavirus. It is especially helpful for visual learners as the website consists of more images and videos about space and the environment than articles.
Last but not least, PBS Learning Media’s Engineering and Technology page provides students with projects and resources that lead to engineering design. This website provides lessons for each grade level. It also includes a section for possible career options that give in-depth explanations of engineering fields which can help older students choose a major and career.
Overall, these websites are great resources for students who are interested in expanding their knowledge of engineering. They provide great beginner to advanced design projects to work on. Additionally, they are useful for high school students who need assistance in choosing their major.
Photo by Florian Olivo on Unsplash
By Manasi Patel
As a result of quarantine, people are turning to online alternatives for work, daily tasks, and entertainment. This includes competitive programming, which involves solving problems that require fundamental algorithms and data structures. Within the algorithm subdivision, quick sort is an important algorithm that can be used to solve many problems.
Quick sort is an example of a sorting algorithm and divide and conquer algorithm. With divide and conquer, a problem is repeatedly broken down into smaller problems until those sub-problems become easier to solve. It breaks down the problems recursively so that the original problem is broken down however many times required to make it simpler to solve. This makes quick sort an effective sorting problem, especially when working with a large set of data. Once the quick sort algorithm is used, there will be a sorted array.
The quick sort process begins by choosing a pivot. The element you choose as your pivot can vary; it could be the center, rightmost, or leftmost element. Following the pivot, the next step is partitioning. After completing both of these steps, the pivot should be in its correct place within the array and all the elements to its left should be smaller than it and the elements to the right should be greater than the pivot. The following link shows an example of choosing a pivot and the partitioning process using numbered cups to follow along with: https://www.youtube.com/watch?v=MZaf_9IZCrc.
While this algorithm is fast, the worst time scenario is 0(n2). 0(n2) represents the amount of time the algorithm takes. This occurs when the pivot is the smallest or largest element in the array, which will result in two unbalanced subdivisions. The worst time scenario will take longer when implementing the algorithm as well as create an unbalanced partition. In order to avoid this from happening, make sure to choose a reasonable pivot. On the other hand, the best time scenario is 0(log(n)). 0(log(n)) represents the time the algorithm takes in this scenario. In this situation, the pivot creates two equal divisions within the array and the pivot chosen is the middle element. These two cases, 0(n2) and 0(log(n)), occur due to the pivot chosen in that particular array. For the 0(n2) scenario, the pivot chosen is usually the leftmost or rightmost element and the array is sorted in the same order, reverse order, or the elements are the same. In the best case scenario, the array has an odd number of elements and thus the pivot becomes the middle value. It can also occur in an array with an even number of elements, with each partition having at most n/2 elements, n being the number of elements.
While the quick sort process is a computer algorithm, it can be done with playing cards or any other item to arrange. Practicing this procedure with daily items can help you understand how this algorithm works and applies to computer science. By numbering each item, for example, using the cards ace through seven, and going through the quick sort process, you will be able to see how to choose a pivot and partition. Overall, quick sort is a fundamental algorithm that can be used in competitive coding problems. This algorithm is effective in organizing large sets of data or elements as well as efficient, as it is faster than merge sort, another sorting algorithm. To access examples and problems, check out programming websites like GeeksForGeeks.
Websites to practice competitive programming: