Why Maths and Physics are useful in Computer Science. Jim Mussared

Similar documents
Quick Tricks for Multiplication

SIMS 255 Foundations of Software Design. Complexity and NP-completeness

CS 3719 (Theory of Computation and Algorithms) Lecture 4

Data Structures. Chapter 8

How To Get 100 Free Visitors Every Day To Any Website You Want With Only 10 Minutes Work A Day Or Less!

How To Understand General Relativity

Understanding the Math of Roth IRA Conversions

Computer Algorithms. NP-Complete Problems. CISC 4080 Yanjun Li

Full and Complete Binary Trees

Multiplication Rules! Tips to help your child learn their times tables

The $200 A Day Cash Machine System

Copyrights PPC Bully (MyAdWise Ltd.) - Page 1 of 13

The Union-Find Problem Kruskal s algorithm for finding an MST presented us with a problem in data-structure design. As we looked at each edge,

Advanced Programming with LEGO NXT MindStorms

Mathematical goals. Starting points. Materials required. Time needed

1. The RSA algorithm In this chapter, we ll learn how the RSA algorithm works.

Everything you wanted to know about using Hexadecimal and Octal Numbers in Visual Basic 6

Colleen s Interview With Ivan Kolev

CAs and Turing Machines. The Basis for Universal Computation

Ian Stewart on Minesweeper

COMPUTER SCIENCE TRIPOS

ALGEBRA. sequence, term, nth term, consecutive, rule, relationship, generate, predict, continue increase, decrease finite, infinite

Process / Operation Symbols

Note: A WebFOCUS Developer Studio license is required for each developer.

Phases of the Moon. Preliminaries:

THE SME S GUIDE TO COST-EFFECTIVE WEBSITE MARKETING

It starts like this...

Scheduling. Getting Started. Scheduling 79

LSP 121. LSP 121 Math and Tech Literacy II. Simple Databases. Today s Topics. Database Class Schedule. Simple Databases

The Top 5 Lessons Every Small Business Owner Needs to Learn to be Successful in Today s Unforgiving Business Climate TOP

South Carolina Academic/Career Development Integration Activity (DRAFT)

CONTENTS. Please note:

Regular Languages and Finite Automata

Count the Dots Binary Numbers

Mathematical Induction. Mary Barnes Sue Gordon

Visual Basic 6 Error Handling

Sequence of Mathematics Courses

BBC Learning English Talk about English Academic Listening Part 1 - English for Academic Purposes: Introduction

Local Search Results Success

Learn How I Steal All Of The Website Traffic I Can Get My Greedy Little Hands On And Why There Is Nothing They Can Legally Do To Make Me Stop!

Principles of Modeling: Real World - Model World

Secrets From OfflineBiz.com Copyright 2010 Andrew Cavanagh all rights reserved

Lesson 2. Operations with Integers. Objectives

CHAPTER 3. Methods of Proofs. 1. Logical Arguments and Formal Proofs

Page 18. Using Software To Make More Money With Surveys. Visit us on the web at:

6.080 / Great Ideas in Theoretical Computer Science Spring 2008

CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team

Binary Search Trees CMPSC 122

0.8 Rational Expressions and Equations

New trend in Russian informatics curricula: integration of math and informatics

Introduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps

Geometry Solve real life and mathematical problems involving angle measure, area, surface area and volume.

Genealogy apps for Android phones & tablets

Clock Arithmetic and Modular Systems Clock Arithmetic The introduction to Chapter 4 described a mathematical system

A Comparison of Programming Languages for Graphical User Interface Programming

FOR ABSOLUTE BEGINNERS!

1. I have 4 sides. My opposite sides are equal. I have 4 right angles. Which shape am I?

Best Practice Search Engine Optimisation

Chapter 1. Computation theory

Regular Expressions and Automata using Haskell

Using a Mil Based Scope - Easy Transition

MODULE 1 AFFILIATE MARKETING MASTERY BLUEPRINT

The theory of the six stages of learning with integers (Published in Mathematics in Schools, Volume 29, Number 2, March 2000) Stage 1

Google Lead Generation For Attorneys - Leverage The Power Of Adwords To Grow Your Law Business FAST. The Foundation of Google AdWords

Adwords The Life Coaches Money Maker

Steps to PCB design using Orcad.

Lecture 3. Linear Programming. 3B1B Optimization Michaelmas 2015 A. Zisserman. Extreme solutions. Simplex method. Interior point method

Oxford Cambridge and RSA Examinations

Chapter 2. Making Shapes

NO 1 IN SMART HOUSE AND HIGH TECH BUILDING TECHNOLOGIES

Computing exponents modulo a number: Repeated squaring

Jared Roberts (PelotonU)

SolidWorks Implementation Guides. Sketching Concepts

BBBT Podcast Transcript

Module 6.3 Client Catcher The Sequence (Already Buying Leads)

Properties of Real Numbers

"Breakthrough New Software Automates The Optimization Process To Get You A #1 Ranking - All With The Single Click Of A Button!"

Page 1. CSCE 310J Data Structures & Algorithms. CSCE 310J Data Structures & Algorithms. P, NP, and NP-Complete. Polynomial-Time Algorithms

Getting Started with WebSite Tonight

UF EDGE brings the classroom to you with online, worldwide course delivery!

JavaScript For Cats. An introduction for new programmers. Table of contents. Don't be a scaredy-cat. So easy your human companion could do it too!

Creating a Database using Access 2007

Demystifying Quality Score with Brad Geddes

Problem of the Month: Fair Games

Subject knowledge requirements for entry into computer science teacher training. Expert group s recommendations

The Taxman Game. Robert K. Moniot September 5, 2003

Let s explore the content and skills assessed by Heart of Algebra questions.

The Power Loader GUI

Federation and a CMDB

Google Lead Generation for Attorneys

A Conversation with Chris Denninger RIT Director of Public Safety Facilitated by Luke Auburn

Jenesis Software - Podcast Episode 2

Introduction to Fractions, Equivalent and Simplifying (1-2 days)

Chunking? Sounds like psychobabble!

The Secret to Playing Your Favourite Music By Ear

Becoming a Pilot. Questions Answered by a Professional Pilot.

bitmedia Access 2007 Basics Entry test Database Basics Entry test Basic database terms What is Access 2007? Tables and indexes

Click on the links below to jump directly to the relevant section

Transcription:

Why Maths and Physics are useful in Computer Science Jim Mussared

Are Maths and Physics important? "I know that CS theory requires more maths than you can chew, but when working on an actual software project, how often do you encounter maths stuff?" "From what I know, understanding of maths is good, but there mostly isn't any application of maths." "What in particular do you use that kind of mathematics for, and what kinds of theories are most important when you do need it?" "Because nobody has been able to give me an answer and I don't get why I would need physics." Source: NCSS Challenge "Industry Mentors" forum, 2012

Discrete Mathematics Discrete maths involves individual (discrete) things, as opposed to other areas of maths which can deal with infinitely divisible things. In discrete maths, things happen or they don't, they're included in the set or not, etc. This is highly relevant to computers because everything in a computer is a binary yes/no.

Discrete Mathematics - Combinatorics n C r and n P r. This pops up all over the place in programming, any time you've got some sort of queueing system or load balancing or partitioning. At Google: I have X webservers, and Y databases, each webserver sends three queries to the database. What distribution of queries do I expect at the database? Or a simpler example, I need to find the right re-arrangement of these letters, how do I generate all the possible re-arrangements? "Stirling numbers of the second kind" - the number of ways to partition a set of n objects into k non-empty subsets.

Discrete Mathematics - Information theory This is useful in things like compression algorithms (like JPEG, ZIP), and also shows up in building efficient digital radios (like your mobile phone, WiFi, etc).

Discrete Mathematics - Algebra A good example is boolean algebra, for example De Morgan's laws. If you have: not(a and b) it is always logically equivalent to: (not a or not b) and vice versa. This can be useful for making your if statements easier to read, or sometimes faster.

Discrete Mathematics - Number Theory Keeping your credit card details safe on the internet revolves around the magic of number theory. The RSA algorithm is probably the most famous example and allows two parties to exchange a "secret key" via an untrusted channel.

Discrete Mathematics - Graph Theory This is a branch of mathematics to do with processing things that are "graphs". A graph is a collection of vertices and edges (not to be confused with the sort of graph you draw on graph paper). Perhaps the vertices represent cities and the edges represent roads. You want to find the shortest path between two cities. Perhaps they were power lines instead, and you want to know the minimum total distance of power lines you can use to connect all the cities together. Famous example: the Travelling Salesman problem.

Discrete Mathematics - Theoretical Computer Science This is about what can and can't be computed. Famous examples include The Turing Machine, the Halting Problem and Gödel's incompleteness theorems. They are amazing and counterintuitive results with some pretty profound implications for what computing and mathematics really are.

Discrete Mathematics - Probability A lot of software is written to make predictions. The stock market, whether users will click on ads on a webpage, congestion in a road traffic network, weather and climate. Probability is everywhere.

Discrete Mathematics - Game theory Artifical intelligence & machine learning. Not just for games!

Discrete Mathematics - Operations Research This is about using computers to come up with more efficient ways of doing things. This can save millions of dollars for a business by reducing overheads or wasted costs.

Physics Physics turns up a lot in computing. Computers are just applied electronic engineering, which is a great skill to have if you're ever trying to understand how computers work, or interface anything to the real world.

Physics - Forces & Motion Mechanics, kinematics and ballistics (i.e. traditional physics, forces, energy, etc) is absolutely critical to any sort of game programming, robotics, physical modelling, etc. You're writing a computer game that involves a character (let's call him Mario) jumping between platforms. When he jumps he falls back to the group with gravity. That's forces and acceleration (which is just calculus). F = ma s = ut + 0.5 a t 2

Physics - Circular motion Lets say you wanted to draw a button on the screen with rounded corners. And your computer only supports integers (i.e. no floating point numbers). How do you calculate the pixels that you need to draw? The midpoint circle algorithm.

Physics - Inverse kinematics You're writing the software to control a robot arm manufacturing car parts. You need to move the arm to a certain position, then grab something, then move it at a constant speed to another point. Figure out the commands to send to the motors. This is some seriously heavy duty physics & mathematics known as inverse kinematics

Physics - Special effects and digital images You're writing the software to render special effects for a movie. You're given the information about a scene (objects, textures, positions, lighting, etc) and have to generate the resulting image. There's all sorts of physics there, especially optics, and a lot of maths (mainly geometry).

Physics is just useful Every day, I'm grateful for the physics I learnt in high school and university. Just knowing how things work, understanding forces and energy, etc is really wonderful. And this isn't just because I'm a huge nerd, it's actually useful a lot of the time too.

It is important to know this stuff! No one person is expected to be an expert in all of these things, but most programmers will come across most of these topics at some point and be able to recognise the different types of problems. At Google, we have teams of people that specialise in each of these areas, so whenever we run into something we know who to ask!