Category: Articles

  • The von Neumann Architecture

    The von Neumann Architecture

    The von Neumann Architecture

    Introduction

    Have you ever wondered how your computer works? Who decided that we should use keyboards to tell our devices what to do? And who else later decided that touch screens were cooler much of the time. Much of how we think about computing we currently owe to John von Neumann, who developed the current way of thinking about computers.

    The Von Neumann architecture is a model that was developed in the 1940s by John von Neumann, a physicist and mathematician, who was an early computer researcher. During World War 2, cracking secret codes and the development of nuclear weapons led to an increase in public funding for computer research, as machines could do lots of arithmetic quickly and accurately. Von Neumann would go on to outline a model for building any sort of computer in his The First Draft Report on the EDVAC (the EDVAC being a computer he was working on at the time) that has been the standard for all computing devices since.

    In his model, von Neumann illustrates that a computer should have several main components:

    • Arithmetic Unit
    • Control Unit
    • Memory
    • Input
    • Output

    Flexibility of the Model

    This model is relatively flexible – in his paper, von Neumann mentions that different machines could very well have different capabilities while still being built with all of these components in mind. Computers that use the von Neumann architecture range from very simple (such as the one in your microwave) to the massive supercomputers that have dedicated buildings. The wide scope of computers that fall under the von Neumann model are proof that von Neumann achieved his goal when it came to creating a model that was versatile.

    Components and What They Do

    The control unit, as described by von Neumann, is the part of the computer that keeps track of what is supposed to run when. When you turned on your computer, your PC’s control device (most probably inside of a CPU) queued up the correct start up operations. The purpose of the control unit is to allow a computer to run many different kinds of programs, and switch between them when necessary. While this seems trivial now, the first computers were manually operated. If you wanted a computer to do something different than what it was previously doing, you had to go in and change all of the wires yourself. The conception of a control unit allowed the computer to modify its own hardware and software, allowing a great deal of abstraction for users. Computers being able to modify themselves (and other computers) essentially enables modern computing as we know it, the good (high level programming languages, not swapping about the wires in your desktop) and the bad (it would be impossible to hack a pre-von Neumann computer without performing an elaborate heist operation to change around the wiring yourself).

    The arithmetic unit of a computer does the logical processing. Computers were originally designed for doing lots and lots of math, so von Neumann designated an entire component of his model to do that. Despite being called the arithmetic unit, this unit is also responsible for doing logical operations as well. Arithmetic units allow computers to distinguish if two sequences of binary are completely the same (an AND operation), if some of the numbers are the same, or allowing sign flippage.

    The memory component of this model is probably simplest to understand. If we want computers to do work in a useful capacity, they need to be able to remember what we’ve done. Most modern computers have two types of memory. They’ve got long term, slower memory, which is usually kept in the hard drive. Computers also have faster, short term memory. This is typically stored in RAM. Traditionally, RAM memory has been volatile. This means that it is erased when you turn the power off. This is also why you used to lose everything you did on older video games without saving – if you didn’t tell the computer to move your data out of RAM and onto the hard drive, it was just lost.

    The last components of a computer are its input and output components. Input is just how the user puts instructions into a computer. These days, inputs are most often keyboards and/or touch screens, although speakers are becoming more common. Output is how a computer communicates what it’s doing to the user. Most computers have a visual (a screen) and an audio (speakers and/or headphones) component to the output.

    Conclusion

    The von Neumann model for computing has lasted for nearly a century. Pretty much any device that you use will have been built and designed with the von Neumann architecture in mind. That being said, scientists are looking beyond this model for the future. Quantum computing and other innovations may mean we say good bye to the von Neumann architecture.

    References

    Brandl, M. F. (2017). A Quantum von Neumann Architecture for Large-Scale Quantum Computing. (https://arxiv.org/abs/1702.02583)

    Freiberger, P., & Swaine, M. (2016, November 14). Von Neumann machine. Retrieved September 15, 2020, from https://www.britannica.com/technology/von-Neumann-machine

    von Neumann, J. (1945). First draft of a report on the EDVAC. doi:10.5479/sil.538961.39088011475779

     

  • How much do you know about RSA Cryptography?

    How much do you know about RSA Cryptography?

    Whether you’re browsing TikTok, Instagram, or scrolling through random Wikipedia articles, do you ever wonder if your internet browsing is secure? Probably not – but that’s okay! The world can peacefully rely on the wonders of mathematics to keep their data and internet browsing safe from peeking eyes. In fact, the entire safety of the internet primarily relies on a single mathematical algorithm to secure it all, ranging from state secrets in secret government databases – which are probably all about UFOs – to your grandmother’s email account. This algorithm was first developed in 1977; it’s so powerful that it still remains the primary public cryptographic algorithm today! It’s called the Rivest-Shamir-Adleman (RSA) cryptosystem.

    Background

    Developed in 1977 from a paper released by Ron Rivest, Adi Shamir, and Leonard Adleman, while they were at the Massachusetts Institute of Technology, RSA quickly became adapted to securing digital communication because of its robust mathematical properties that makes it virtually impossible to break.

    Interestingly, the actual mathematics behind the RSA cryptosystem is rather simple. It’s based on the idea of prime factorization – it’s really easy to find the prime factors for a small number but becomes much harder as the numbers grow. For example, if I ask you to give me the two prime factors that multiply together to give the number 15, you would probably answer really quickly with “3 and 5”. Easy, right? Now, without a calculator, what if I asked you to give me the prime factorization for the number 414,863? You would answer with “577 and 719” right away, right? Unless you’re a super math genius or a human calculator, probably not.

    Implementation Idea

    The actual RSA algorithm is used in public-key cryptography, which is the process that secures data over the internet. It’s a complicated process but the basic idea is this: if Alice wants to send Bob a secret gift, Bob can send her a padlock that only he has the key to. Then, Alice can put her gift in a box and lock it with Bob’s padlock. Then, when Alice sends her package, if anyone tries to steal the gift, they can’t because only Bob has the key. Once Bob receives his gift, all he has to do is unlock the padlock that he gave to Alice. The padlock that Bob gave to Alice is called Bob’s public key, while the key that only Bob has is his private key.

    In the real world, if my friend wants to send me a message, I will give them my public key (which is basically just a really large number). They can then use my public key to encrypt, or hide, the message. Then, in transit, the message is completely safe because I’m the only person that holds the key that decrypts, or unlocks, the message. The only tricky part about the process is making keys that are not able to be broken.

    The Magic Behind It All

    The RSA algorithm is responsible for creating the public and private keys. To create the actual keys, RSA relies on some basic math: modular arithmetic, Euler’s Theorem, and prime numbers.

    To create my public key that I can give to anyone who wants to send me secrets, I do two things:

    • First, I will choose two very large prime numbers, p and q. The multiplication of these two numbers, x = pq, is the first half of the key. The key take-away in this first portion is that the longer that x is, the more secure your key will be. As of 2020 practices, a length of 4096 bits (or characters) is recommended!
    • Then, I calculate another number y by multiplying from the following: y = (p-1)(q-1). From here, I choose a number that is relatively prime to y and call it e. If you don’t recall what it means for two numbers to be relatively prime, it just means that two numbers have a greatest common divisor of 1. In practice, e is typically chosen to be 65,537 – e then becomes the other half of my public key.

    Now, to create my private key that no one else knows about, I use modular arithmetic. If you’re not familiar with modular arithmetic, think of it as the remainder produced after dividing a small number into a big number – for example, 10 modulo 3 = 1 because 3*3 is 9, which leaves us with 1 left over. To create my private key, I calculate the modular inverse of the second half of my public key with the first half of my public key, e modulo x. That’s it! I have my private key! Now I can share my public key with friends, and they can share juicy, secret memes with me without the fear of someone else seeing!

    Convinced?

    What makes RSA so robust and secure is that, even as computers gain more processing power and become faster, all we have to do is increase the length of the key! Think about how fast and powerful our current computers are: our computers are solving problems in astrophysics, mathematics, and are beginning to become ubiquitous in controlling cars. Even with how advanced technology currently is, if someone uses a 4096-bit RSA key, it would take tens of thousands of years for computer to break the code! And even when that’s broken, all we have to do is increase the number of bits in the RSA key and it’s secure for another few thousand years or so!

    If you’re not convinced by how amazing (and even basic) cryptography is, then I don’t think you’re someone who can be easily impressed!

    The Process in Pictures

    If you prefer pictures, here is a simple illustration of the process above:

    Step 1:

    Step 2:

    Step 3:

    Step 4:

    Step 5:

    Step 6:

  • Trees in Computer Science?!?!

    Trees in Computer Science?!?!

    In computer science, there are many ways to organize data to be used effectively. These many ways are called Data Structures. Of the many data structures, there are data structures that are hierarchical in which the data is organized into a tree-like structure. A specific tree data structure that will be taught is a Binary Search Tree.

    In order to learn draw a Binary Search Tree, one must be able to learn the basic things that will help understand.

    A binary search tree is similar to a family tree in a way. Before we begin, lets learn about the different terms that will be useful in understanding.

    Node – a single place where data is.

    Children – the data linked and below another piece of data

    Root – the highest point of data

    Leaf – the data at the ends

    The nodes, root, leaf nodes, and children in a BST

     

    Now that you know the basics, lets learn specific topics that help understand the different forms of a tree.

     

    Full –every node

    other than the leaves has two children

    Complete – every level, except possibly the last, is completely filled, and all nodes are as far left as possible

    Height- the longest path from the root node to a leaf node

    Depth – number of edges from the specific node from the root node

    These are different forms of a tree.
    This shows the height and depth of a tree

     

    A binary search tree is a binary tree in which the nodes have a value that is greater than all values in its left subtree and smaller than all values in its right subtree.

    This is how a BST looks like

     

    In order to insert to a BST, you start from the root of the tree and check if the value is greater than or less than that value and if it is greater than the value, then you go to the right and check again if it is greater than or less than the value and so on and so forth until you get to the end where you add that value to the tree.

    This is how to insert data into a BST

     

    Deleting a node in BST

    When deleting a node within a BST, there are many considerations to check for. The first thing to check is to see if the specific node has any children.

    • If the node has 0 children
      • In this case, you simply delete the node from the BST
    • If the node has 1 child
      • In this case, you replace the node to delete with the child
    • If the node has 2 children
      • In this case, you must replace the node with either the predecessor or successor
        • A predecessor is the maximum value in the node’s left subtree
        • A successor is the minimum value in the node’s right subtree
    Deleting from BST, if the node to delete has 0 children.
    Deleting from BST, if the node to delete has 1 child.
    Deleting from BST, if the node to delete has 2 children.

     

    Good job! You have now mastered one fundamental aspect within Computer Science and are one step closer to being a programming genius!!!

     

    Citations:

    Binary Trees. (2009). Retrieved from https://www.cs.cmu.edu/~adamchik/15-121/lectures/Trees/trees.html

  • Carbonation and Coca-Cola

    Carbonation and Coca-Cola

    “What is the difference?” I asked the person across from me after they tasted the flat Coca Cola and the carbonated Coca-Cola. While it took them a while to get to their answers, they all followed the lines of “The flat one tastes duller and sweeter, and the bubbly one hits all around your mouth.”
    At our Science Speakeasy Event, I presented a classic name brand: Coca-Cola alongside Robert Kriegel. With my knowledge of carbonation, I believed I had it all thought out, however during this event, I learned as much as I was taught. I do wish I could provide the recipe to Coca-Cola’s iconic taste for more insight, however, most are aware that the recipe is one of the biggest secrets known to man. On their website, it lists their ingredients as carbonated water, high fructose corn syrup, caramel color, phosphoric acid, natural flavors, and caffeine. While the corn syrup, caramel color, flavors, and caffeine make up a large part of what makes coca-cola iconic. I would like to focus on the process of carbonation and why phosphoric acid is involved.

    The process of Carbonation seemed quite simple on the surface, but there was so much more to explain it. I learned from Robert that carbonation was made possible due to the high rates of solubility in carbon and that to carbonate a beverage you had to get specifics correct on the matters or temperature, pressure, and particle size. While you can dissolve other gasses in water, Carbon Dioxide is the best.
    Carbon Dioxide also adds a bit of acidity, lowering the Ph Levels of the soda which gives it that tangy taste when carbonated. Also, it is part of the reason flat Coke tastes so sweet. But the main contributor to the acidity was through phosphoric acidity in the soda. The all-around your throat feeling was due to the sensation of the carbonated bubbles popping and exploding the flavored liquid all over your mouth.
    However, with all of this fun science, Kriegel informed me that the CO2 concentration increases in the environment due to fossil fuel burning is increasing the carbon levels in the ocean causing it to have a small amount of carbonation. He warned me that if the carbon levels continue to increase it would cause harm to animals living in the water.

    Chandrashekar, J., Yarmolinsky, D., Buchholtz, L. von, Oka, Y., Sly, W., Ryba, N. J. P., & Zuker, C. S. (2009, October 16). The Taste of Carbonation. Retrieved from https://science.sciencemag.org/content/326/5951/443?casa_token=0YT4_NgRi7EAAAAA:x7JI6SBLoDbQSOaxFCHj4O5BamvhcFft5U38kTaFDTgOkmj4t9i_Gp4n4uhZN89eiG-C5BIF2dPqUg
    The Editors of Encyclopaedia Britannica. (2020, February 20). Carbon dioxide. Retrieved from https://www.britannica.com/science/carbon-dioxide

  • Origami: Art or Science

    Origami: Art or Science

    “OrIgami Engineering is a thing?

    – JOshua Suber (ME)

    This semester I had the opportunity to join and participating in the Origami Club at the Georgia Institute of Technology. Each Friday, students from all majors, come together and attempt a variety of origami challenges. Our faculty advisor, Glaucio H. Paulino, teaches CEE 4803 Origami Engineering, and would often give insight on various real-world applications of origami. The Origami Engineering course introduces students to the history, art, and applications of origami, and attracts students from every major, much like the club.

    What is origami?

    “Origami has shown To be one of the most natural and effective techniques to teach math?

    – Professor Paulino

    Modern origami is characterized by “open access patterns and sequences” created by a diverse background of individuals. Many origami techniques are even copyrighted and considered intellectual property.

    Although many view Origami as an artful past time, our modern understanding of the craft as evolved past mere paper folding. Our knowledge of origami basis in geometry and mathematics has allowed many researchers to find new and unique applications within complex mechanical and programmable materials. Origami has become the solution to many technological problems. It is truly amazing, when a craft can serve as both a calming afternoon activity, and the foundation to an evolving technological approach.

    Origami Rose

     

    Origami Engineering?

    Much of the recent development in origami research is supported by Professor Pualino. While serving as a program director for the National Science Foundation he introduced the idea of origami engineering as a topic for the NSF’s Emerging Frontiers in Research and Innovation. Professor Paulino’s research focuses on the advancements of material science with the goal to create a positive influence in the world.

    A great example of origami in practice is the Miura-Ori structure. The Miura-Ori is one of the most famous patterns in origami engineering, and is one of the technique Professor Paulino introduced to Origami Club members. It is a compact tube structure that is easily able to transported, combined, and layered. It helps demonstrate many of the key components of origami, while also being easy to fold.

    Professor Paulino, along with Tomohiro Tachi and Evgueni Filipov, have even developed a unique new origami tube structure based on the Miura-Ori pattern.

    Miura-Ori

    I’ve learned so much during my short time at orgami club, and I wanted to share it with you! Hopefully you see the art of origami is a extremely versatile medium. I’m passionate about the intersections of art andtechnology, and the innovations this combination can bring to the world. This also proves there there is always something in STEM that you can find that could interest you!

    Origami Club group picture.

     

    Sources

    (n.d.). Retrieved from https://engineering.nd.edu/spotlights/1BusEng1st20004000TurnerApplicationPackageComplete.pdf

    BETWEEN THE FOLDS | History of Origami | Independent Lens. (n.d.). Retrieved from https://www.pbs.org/independentlens/between-the-folds/history.html

    Purby , T. (n.d.). The Class, The Art, The Future .

     

  • That’s The Tea

    That’s The Tea

     

    Recently, our STEMComm class put on a Sober Science Speakeasy event for Atlanta Science Festival, where our classmates explored the science of drinks. One of our drinks was the science behind the tastes and textures of milk tea boba, which I have depicted in a series of illustrations.

     

     

     

     

    Milk tea is typically made with green tea or black tea. 

    Teas contain polyphenols, which is the chemical responsible for the bitterness of tea.

     

     

     

    Milk contains casein proteins. When milk is mixed with tea, these proteins form a complex in which the polyphenol is encapsulated in the protein, decreasing the bitter taste.

     

     

     

    Added sugars contribute further to the sweetness of the tea as they are easily absorbed in the mouth. These sugars also bond with water molecules to leave room for the casein proteins to form complexes with the polyphenols.

    The tapioca pearls are made of amylose and amylopectin (linear and branched starch molecules). When the boba is boiled, they expand, and the glycosidic linkages (the bonds that join these molecules) create a network that is responsible for the chewy texture of the boba.

    After the boba is cooked, it must be served within a few hours, or else it will harden up again. We place the boba into a solution of 1 part brown sugar, 1 part water. The sugar creates a protective layer around the boba that prolongs the hardening.

    If you want to make your own boba at home, you can easily buy your own bags of dehydrated tapioca pearls on amazon or at a local asian market. Stir them into some black tea and milk with added sugar or other flavors, and voila, you have your own bubble tea!

    Sources:

    Dutfield, S. (2019). The science behind bubble tea. Retrieved 20 April 2020, from https://www.howitworksdaily.com/the-science-behind-bubble-tea/

    Bubble Tea Infographic. Retrieved 20 April 2020, from https://www.clayton.edu/chemistry-physics/News/Infographic-bubble_tea/

  • Drinks and Science: Science Speakeasy

    Drinks and Science: Science Speakeasy

    Design credit: Nadia

    It was the evening of March 12 and the STEMcomm VIP team were in preparation mode for the Science Speakeasy. The Science Speakeasy was an event that was focused on eight different beverages where the science behind each beverage was explained to our fellow guests. Our event took place in the newly built Coda building of the Georgia Tech community. We were all eager to hold this event and have been waiting since 2019. It was an amazing experience to host before Spring break and eventually before we had to move to online courses. My group members consisted of Dr. Greco and Dr. Mendelson and they helped me make Xocolatl. I would like to share the recipe to those interested and hope you like it. 

    Xocolatl

    • Ingredients
      • ⅛ cup Cocoa powder
      • 1 Green chile pepper
      • 2 ¾ cups Water
      • 1 tsp Vanilla extract
      • honey/sugar (for sweetness)
      • cinnamon /cayenne pepper (extra spice)
    • Recipe (summary)
      • ¾ cup of water and sliced green chile pepper (including the seeds) should be brought to a boil → 5-10 minutes
      • After boiled, strain the water to remove the chile pepper and the seeds and put water back in pot
      • Add the rest of the water and bring it to a boil.
      • While it is heating up, whisk the vanilla extract in.
      • Once boiling, add the cocoa powder and keep whisking → about 5 minutes 
      • Froth should be appearing (might be small amount)

    *All done: if bitter add necessary amount of honey or sugar 

    *want more spice, add necessary amount of cinnamon and/or cayenne pepper

     

    This event was an amazing way to close out the shortened spring semester. Being involved in hosting the Sober Science Speakeasy for the Atlanta Science Festival and the Georgia Tech community, was a night to remember. With the help of our faculty advisors: Dr. Leavey, Dr. Evans. Dr. Greco and Dr. Mendelson and our classmates, this event was a success. Shout-out to Nadia and the band, you guys sounded great. Feel free to try out the recipe and hope to see everyone soon. Stay safe.

    • Some pictures from the event