Displacement is the distance moved in a particular direction. It is a vector quantity.
SI unit: m
Velocity is the rate of change of displacement. It is a vector quantity.
Velocity = (change in displacement / change in time)
SI unit: m s-1
Symbol: v or u
Speed is the rate of change of distance. It is a scalar quantity.
Speed = (change in distance / change in time)
SI unit: m s-1
Symbol: v or u
Note that speed and velocity are not the same thing. Velocity has a direction.
Acceleration is the rate of change of velocity. It is a vector quantity.
Acceleration = (change in velocity / change in time)
SI unit: m s-2
Note that acceleration is any change in velocity, meaning an increase or decrease in velocity or a change in direction.
An instantaneous value of speed, velocity or acceleration is one that is at a particular point in time.
An average value of speed, velocity or acceleration is one that is taken over a period of time.
The equations of uniformly accelerated motion can only be under conditions where the acceleration is constant.
The equations of uniformly accelerated motion are as follows:
Table 1.2.1 - Variables used in uniformly accelerated motion equations
Other equations may be derived from these equations.
When we ignore the effect of air resistance on an object falling down to earth due to gravity we say the object is in free fall. Free fall is an example of uniformly accelerated motion as the only force acting on the object is that of gravity.
On the earths surface, the acceleration of an object in free fall is about 9.81 ms-1. We can easily recognise the uniform acceleration in displacement - time, velocity - time and acceleration - time graphs as shown below:
A car accelerates with uniformly from rest. After 10s it has travelled 200 m.
Its average acceleration
S = ut + 1/2 at²
200 = 0 x 10 + 1/2 x a x 10²
200 = 50a
a = 4 m s-2
Its instantaneous speed after 10s
v² = u ² + 2as
= 0 + 2 x 4 x 10
V= 8.9 m s-1
Air resistance eventually affects all objects that are in motion. Due to the effect of air resistance objects can reach terminal velocity. This is a point by which the velocity remains constant and acceleration is zero.
In the absence of air resistance all objects have the same acceleration irrespective of its mass.
Determining its velocity
We know that the gradient of a displacement – time graph gives us its velocity. Therefore for the first 5 seconds the speed is:
After the first 5 s the object is stationary for 3 s. For these 3s its velocity is zero.
After 8s the object starts to return at a faster speed then before. From the graph we find the speed to be:
Figure 2.1.5 – Velocity -Time graph
Determine its acceleration
We know that the gradient of a velocity- Time graph gives us its acceleration. Therefore for the first 5 s the acceleration is:
50/5 =10 ms?²
When the object is at constant speed from 5s to 7s its acceleration is zero. During the last second of the objects journey the object is decelerating at:
50/1 =50 ms?²
Determine its displacement
The area under a velocity-time graph is the displacement. During the first 5 s the object has travelled:
½ x 5 x 50 = 125m
Determine the change in velocity
The area under the acceleration- Time graph gives us the change in velocity
From the graph we find that the change in velocity is 10 x 3 = 30 ms?¹
Note: The gradient of the acceleration - time graph is actually the rate of change of acceleration. However it isn’t often useful.
#1a: annual_salary = float(input('Enter your annual salary: ')) portion_saved = float(input('Enter the percent of your salary to save, as a decimal: ')) total_cost = float(input('Enter the cost of your dream home: ')) current_savings = 0 portion_down_payment = 0.25 down_cost = total_cost * portion_down_payment r = 0.04 monthly_salary = annual_salary/12 num_months = 0 while current_savings < down_cost: current_savings += monthly_salary * portion_saved + current_savings * r/12 num_months += 1 num_years = num_months/12 print('Number of months:', num_months) print('Number of years:',num_years) #1b annual_salary = float(input('Enter your annual salary: ')) portion_saved = float(input('Enter the percent of your salary to save, as a decimal: ')) total_cost = float(input('Enter the cost of your dream home: ')) semi_annual_raise = float(input('Enter the semiannual raise, as a decimal: ')) current_savings = 0 portion_down_payment = 0.25 down_cost = total_cost * portion_down_payment r = 0.04 monthly_salary = annual_salary/12 num_months = 0 while current_savings < down_cost: current_savings += monthly_salary * portion_saved + current_savings * r/12 num_months += 1 if num_months%6 == 0: monthly_salary *= (1 + semi_annual_raise) num_years = num_months/12 print('Number of months:', num_months) print('Number of years:',num_years) #1c def whatrate(): annual_salary = int(input('Enter the starting salary: ')) total_cost = 1000000 semi_annual_raise = 0.07 current_savings = 0 portion_down_payment = 0.25 down_cost = total_cost * portion_down_payment r = 0.04 monthly_salary = annual_salary/12 num_months = 36 high = 10000 low = 0 ans = (high + low)/2 numofsteps = 0 max_savings = 0 for i in range(1,num_months+1): max_savings += monthly_salary + current_savings * r/12 if i%6 == 0: monthly_salary *= (1 + semi_annual_raise) if max_savings < down_cost: return print('It is not possible to pay the down payment in three years.') min_savings = 0 for i in range(1,num_months+1): min_savings += monthly_salary * 0.0001 + current_savings * r/12 if i%6 == 0: monthly_salary *= (1 + semi_annual_raise) if min_savings > down_cost: return print('You don\'t really need to save, mate.') while abs(current_savings - down_cost) > 100: current_savings = 0 monthly_salary = annual_salary/12 numofsteps += 1 for i in range(1,num_months+1): current_savings += monthly_salary * ans/10000 + current_savings * r/12 if i%6 == 0: monthly_salary *= (1 + semi_annual_raise) if current_savings > down_cost: high = ans else: low = ans ans = (high + low)/2 print('Best savings rate:', round(ans/10000,4)) print('Steps in bisection search:', numofsteps)
1. Computational models: optimisation, simulation, statistical
2. Lambda function
3. Optimisation model: optimise with constraints
a. Brute force algorithm
b. Greedy algorithm (doesn't always yield the best result)
Brute force algorithm
1. Left-most and depth-most enumeration
Paused at 13:00
sa_gold = 46
uk_gold = 27
romania_gold = 1
total_gold = usa_gold + uk_gold + romania_gold
romania_gold += 1
total_gold = usa_gold + uk_gold + romania_gold print(total_gold)
Why do we get 75 for the second print?
From John's notes:
# radius = radius +1 is equal to radius += 1
so, romania_gold + = 1 is equal to romania_gold = romania gold + 1
1. Spans a wide range of disciplines
2. We've been shaping how all of us behave as long as we've been social
3. Mythological representation and shamanic transformation
1. Depth psychologist
1. Archetypal stories: we somehow know what makes a story interesting
2. Constituent elements of stories: characters
Welcom to Astrasum
My name is Astra and I'll help you start a joyful and highly effective learning experience with Astrasum!
Before that, let's take a second to reflect a bit on how you learn, shall we?
You will probably find that in order to acquire a skill or some level of expertise on a subject, you take 5 steps that make up your learning behaviour.
Sounds familiar? So what is Astrasum?
Astrasums hacks learning. Astrasum accelerates your learning by helping you become better and better at each one of these steps with our technology and growing community.
As your scroll through the home page, you'll see one window frame after another. That's AstraPath, i.e. a path that you can take to learn something new.
These are free and high-quality learning materials for a wide range of subjects handpicked by the Astrasum team and members of this community.
We encourage you to also share your own AstraPaths in this community.
If you've found an AstraPath you'd like to learn more about, click '•••' and you'll see a few options.
At the top, you'll find a select box 'Filter by subject', through which you can find AstraPaths in a particular subject you're interested in.
If you are already taking a course at school or elsewhere, you're welcome to create an AstraPath of you own and user other features on Astrasum to assist your learning.
Scroll down and find a path (free courses or tutorials)
Click on the image and start learning!
Click '•••' to choose from other options.
astra: This is a brief crash course on Node.js for you to quickly pick up what it is and how you can use it.
astra: This is an AstraPath that dives into coding interview questions from big tech companies.
astra: CS Dojo is an ex-Google software engineer. He explains CS concepts far better most college professors. Check it out if you have a hard time learning data structure and algorithm in school or if you're a self-taught software engineer.
astra: This is a very practical AstraPath that briefly walks you through the fundamentals of the Python language.
kimiswang: This is a software design course by udacity.
astra: This is a very practical AstraPath that's heavily skill-oriented. There isn't much theory but step-to-step guides in learning Python and using Python to achieve a variety of things. If you don't like college-style CS courses, this is your friend. Take a look and take it easy!
astra: Python Django Tutorials. In this series, we will be learning how to build a full-featured Django application for scratch. We will learn how to get started with Django, use templates, create a database, upload pictures, create an authentication system, and much much more.
astra: This is a one of the very best computer science courses for beginners. It teaches you not only Python, but also the logic and computational thinking behind every programming language. Python is a very popular and, in my opinion, elegant language. It has an ever-growing library and an enormous community of developers. As a beginner, you could easily find answers to any questions you would potentially have on the Internet as you learn. CS50 by Harvard is a similar introductory course but teaches the C language instead, which is also a good choice to begin with. Besides the difference in language, arguing about which course is better is like having a fight on whether MIT or Harvard is better. Pick MIT.
astra: This is the continuation of Introduction to Computer Science and Programming in Python (https://astrasum.com/astrapath/1) "It aims to provide students with an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals. "