Space Wars: Python Coding Project
Coding is a concept which is used for communicating with computers, which consists of essentially writing code which acts as instructions so computers may perform certain tasks. Just as we can communicate in certain languages as humans, we are able to communicate with computers the same way using programming languages. One of the primary languages in computer coding is python, which is what today's demonstration of my coding project is based on.
Python is one of the world's most popular programming languages, as it is versatile and is used to create a variety of aspects which correlate with real life, including many popular online apps and forms of social media such as Instagram, Netflix, and Google. With the aid of python as the primary programming language for my project, I have developed it. The final result of this project when displayed is a variety of spaceships floating in a scene, and I have demonstrated all the steps I have taken in order to add my spaceships, as well as position and animate them using the python programming language. This project is a larger one, which consists of multiple files including HTML and CSS files, where other code such as keyframes and CSS are written which I will demonstrate in another STEM blog. However, in this coding blog, the primary concepts which have been covered in my demonstration include how I have specifically used python to incorporate aspects such as functions, strings, variables, and Booleans into my code.
By first calling a built-in function, and adding values in it, I was able to both adjust the size and displayed text in my project, which was added using a string. In order to change the size of my spaceships, as well as establish a position, I then created variables which I named shipSize, top, left, isEngineOn, and nameOfShip, giving all of these variables’ values. shipSize represents the size of my spaceships, top represents how many pixels from the top the spaceship will be positioned at, left represents how many pixels from the left the spaceship will be positioned at, nameOfShip is how you identify that all spaceships will be the same in terms of dimensions (given a string of arc) and finally, isEngineOn represents whether the ship will be animated or not (given a Boolean value of true).
By then creating another function to add spaceships (named addSpaceship), I added more spaceships, changing the values of top and left (to change the positioning of each spaceship), keeping all other variables constant for each spaceship added.
Although at times, this may look daunting, do not get discouraged! This is a very easy concept to learn, and there are a lot of great resources which are very helpful and useful! University of Waterloo has a great free course on python programming, which is very easy to follow along- especially for beginners who are getting into coding for the first time! This helpful resource can be found here.
Per usual, if you have any questions regarding my work, STEM topics in general, or requests for other interesting STEM topics you would like to see next, feel free to contact me at Coding For Young Minds Community Organization!
Q ‘I participated in a bridge building contest through my school. My Bridge model was chosen for the final round of the contest and was not able to pass a specific deflection test. I usually utilised the trial and error method to come up with a stronger bridge model. What is the best method to determine and reduce the deflection before building an actual model of a bridge?’
A Thank you, this is a very good question. This topic is very relevant to real bridges used in the world today. In the following video, I have demonstrated a computer aided simulation method used to calculate deflection. Please watch this video I have created, which goes further into depth about this process (new terms such as Section Modulus, Finite Element Analysis, Mesh, Linear Analysis etc. are introduced in this video).
By increasing the section modulus of the cross section, we were able to reduce the resultant deflection roughly by 30% This is an example of a quick first pass analysis.
In real life bridge design scenarios, structural engineers undertake due diligence by investigating all possible failure modes and following many codes to achieve high safety standards. Other failure modes to be aware of may include seismic loads, dynamic loads, resonance, effect of wind and snow loads, corrosion etc.
The idea to take a virtual load testing of a bridge was to see the result in a quick real time environment. In addition, virtual simulation helps to reduce the product development time, improve safety as well as the product performance. Load testing (virtual simulation) is conducted using existing computer aided design data (CAD Data). The first step in this process is to create a model with correct dimensions using a CAD program.
In Finite Element Analysis, meshing is used in the simulation process to break down the structure (existing 3D model) into small elements before calculating the simulation results. When running the simulation, Coding is extensively used in the background to solve the complex mathematical equations and establish a very realistic response to real life situations.
In the completed linear simulation video, we used plain carbon steel as our material. For linear simulation we assume proportional relationship between the applied load and deflection. For metals, linear static analysis is usually undertaken to predict the elastic response until the yield point. For bridges made of wood, simulation should be conducted by considering the direction of the grain (by specifying orthotropic material properties). In real life, non-linear simulation may become essential when simulating the behaviour of certain plastic materials under an applied load because the elastic region is very narrow.
Hope you have learned something new today! Please feel free to contact me if you would like to ask questions regarding specific STEM topics, or if you would like to request for a STEM topic to be covered in the future.
In this step by step instruction video, learn how to solve the system of equations problem when there are two variables, using the methods of substitution and elimination. These are two methods, which can be utilised to derive a solution.
When two equations are given, it is an example of system of equations problem, the aim being to find the values of the variables, which work in both equations in other words, we are looking to determine the combination of numbers that works in both equations. The values of the variables also serve as the coordinates which deem the intersection point of the two equations (represented by linear lines on a graph).
For those of you who also requested a blog on solving a system of equations with three variables, that will also be done in the near future!
As usual, if you have any questions or suggestions on what you would like to learn, please feel free to contact me!
Learn to solve linear equations with fractions algebraically, by finding the LCD (Lowest Common Denominator). In this video, I cover information such as finding the LCD, and the process for eliminating a variable so you can familiarize yourself with solving these kinds of problems.
Solving Linear Equations is an important skill in algebra. We usually need to solve the linear equation to find the unknown variable. Linear equations have many applications in real life. For example, linear equations can be used to indicate earned income over a certain timespan.
As usual if you have any questions feel free to contact me.
VIDEO: HOW TO FACTOR POLYNOMIALS?
In this video, learn how to factor Polynomials when in the form ax^2+bx+c, using the simple method of listing factors. A simple approach for people getting accustomed to these kinds of problems. Please watch the video for a more in-depth explanation, on this topic.
If you have any questions, please feel free to contact me.
Arya Peruma is passionate about making STEM education more inclusive for the underrepresented.