Assignment 5. INF109 Dataprogrammering for naturvitskap

Size: px
Start display at page:

Download "Assignment 5. INF109 Dataprogrammering for naturvitskap"

Transcription

1 Assignment 5 INF109 Dataprogrammering for naturvitskap This is the fifth of seven assignments. You can get a total of 15 points for this task. Friday, 8. April, Submit the report as a single.py file. Submit the report on the course website at MiSide. The tasks should be submitted individually, i.e. it should be your own work. However some cooperation and discussion is allowed. 1 Game of Life In this task, you will implement the well-known game called Game of Life. The game is a board game that has a few very simple rules, and we shall implement these rules and simulate the game graphically. (a) Bikube (b) Blokk (c) Båt (d) Brød Figure 1: examples 1.1 The game Usually, the Game of Life is played on an infinite plane but, for simplicity, we implement a version that plays on a board of finite size. As with games like pacman, we play on the topology of a torus or a so-called unfolded donut, i.e. if you leave from one side of the board then you return from the other side. Neighbourhood. The board we play on is divided into squares as shown in the examples above. Each square is called a cell and a cell is either dead or alive. In the pictures above the black cells are alive and the white cells are dead. We define the neighbourhood of the cell with coordinates (x, y), being the eight different positions as shown below. Top 1: (x 1, y + 1) Top 2: (x, y + 1) Top 3: (x + 1, y + 1) Middle 1: (x 1, y) Middle 2: (x + 1, y) Bottom 1: (x 1, y 1) Bottom 2: (x, y 1) Bottom 3: (x + 1, y 1) 1

2 Iteration. The game comprises iterations or rounds. Between each round, we update the status of a cell, being the number of live neighbouring cells it has. If a cell has too many living neighbours, we say that it dies because of over-population, and if too few living neighbours, we say that it dies due to under-population and if a cell that is currently dead has exactly three live neighbouring cells, it is brought back to life, i.e. revived for reproduction. 1.2 Rules For each cell on the board, we now explain the rules that determine whether the cell is living or dead in the next iteration: Rule 1. A live cell with fewer than two live neighbours dies. Rule 2. A live cell with two or three live neighbours survives to the next round. Rule 3. A living cell with more than three live neighbours dies. Rule 4. A dead cell with exactly three live neighbours comes to life. These rules were developed by the British mathematician John Horton Conway in 1970 after an idea by John von Neumann. Conway later proved that the Game of Life is Turing-complete, meaning that this game can simulate any computation a (classical) computer can do. 2 Algorithms and data structures In Python a matrix is a list of lists in the same way that, in mathematics, a matrix is a vector of vectors. However, in Python we often put all kinds of weird objects into a vector whilst, in mathematics, it is usual that the vectors contain just numbers. We can represent a list of lists of Boolean values, as follows: >>> board = [[ False, False, False ], [ False, False, False ], [ False, False, False ]] This python code describes a Game of Life board by a 3 3 matrix with False entries. For simplicity, we always assume that the boards are square, in which case, if we say that the size of the board is n, then we are referring to an n n grid of cells. We shall always have a variable called board, that records the status of the cells (i.e. whether the cells are dead or alive), but in addition, we have an equally large matrix called rectangles, which contains graphical Rectangle-objects that we use to update the color to display whether the cells are dead or not. def size (): """ Returns the size of the board. """ return 3 2

3 2.1 Counting live neighbours The entire rule set for the Game of Life is based on how many neighbouring living cells a given cell has. Therefore, it is very natural to make the following function, which has the task to count precisely this. Remember that a cell always has eight neighbours, and each of them can be alive or dead. This also means that when a cell is along an edge or corner, some of the neighbouring cells are on the opposite side of the board - we shall use modular arithmetic to take care of this situation. def living_neighbors (x,y, board ): """ Counts the number of living neighbors of the cell in the given coordinate (x, y). If either coordinate is on the edge, we wrap : i. e. we re living on a torus. Finally, we return the number of neighbors. """ neighbors = 0 # put stuff here # Be on the lookout for values greater than size () # and smaller than 0. return neighbors Here is a hint. We are given a matrix board and a coordinate (x, y). As described above, the neighbours have coordinates (x 1, y 1), (x, y 1),... and it is not difficult to count them. The problem occurs when we encounter a value v = 0 or v = size() 1. But this can be easily solved by using modular arithmetic: (x + 1) % size() is always less than size(), and provides the values we are looking for: If we have the value size() 1, then (size() 1 + 1) % size() = 0, and we get the coordinate of the cell on the other side of the board. 2.2 Iteration The main action of the game is the function iterate(board), which takes in a board (an n n matrix of Boolean values) and returns a new board for the next iteration. def iterate ( board ): """ Does one iteration, returns the next generation of cells. Returns the tuple ( living, board ), where living is the number of alive cells and board is a matrix of boolean values corresponding to the liveness of each cell. """ new_board = [] for i in range ( size ()): row = [] for j in range ( size ()): row. append ( False ) new_board. append ( row ) # put your code here return ( living, new_board ) 3

4 2.3 Graphics The first program calls a function initiate(), which returns a pair, (board, rectangles), which are both matrices of size size() size(). The matrix board contains a random configuration of True and False. A random boolean value can most easily be obtained as follows: from random import choice def random_bit (): """ Returns a random value of True or False. """ return choice ([ True, False ]) Then the rectangles are populated with Rectangle objects. In position x, y we create an object Rectangle(Point(x,y),Point(x+1,y+1)). Remember to set the coordinate system of the window, with setcoords, to (0,0,size(),size()). Now that you have board and rectangles, it is a simple task to set the colour of each rectangle as desired: def update_color (x,y, board, rectangles ): """ Sets colour in rectangles [x, y] to correct value according to the status of its corresponding cell in board. """ if ( board [x][y]): rectangles [x][y]. setfill (" red4 ") else : rectangles [x][y]. setfill (" gray3 ") 3 Speed If everything works as it should, you should then implement the following speed-up. Let the function iterate do one additional thing. It should now return (living, board, changes), where the new variable is a list of coordinates that have changed. This will be used to update the colour of only those cells that have changed status. 4

5 4 Task 1 Task 1 is to have a working implementation of the Game of Life. When the program starts, a window of size n n is created, where you decide the value of n. In the initial phase you create a random distribution of living cells. Then you have a while(true) loop that realises the iterations, until you manually enter something to interrupt the program. If you want the updates to be slower, use sleep(r) to allow the program to sleep for r seconds where r is some floating point number. But remember that you must first import sleep from the environment time, using the line from time import sleep. 5 Task 2 Now you shall enhance your application so as to have the following functionality: a text field (Entry) and a start button, a clear button, a randomize button, a load and a save button, a quit button. In the text field, the user of the program enters the desired number iterations to be performed, and when the start button is pressed, the program runs for the desired number of iterations. Both before and after the start button has been pressed, the user should be able to access cells to switch them between living and dead. If the clear button is pressed, all cells of the board become dead and if randomize is pressed, the cells are assigned, randomly, and independently, to dead or alive states. The buttons load and save should be used to save and load patterns (you can assume that the pattern can be accomodated by the size of your current board). Button quit will close the program. Hint. If you set the coordinate system to be (0,-3,size(),size()), you can represent the buttons using y-coordinates. Remember to create a function is inside(rectangle, point) that returns True if and only if Point is inside the rectangle, and use this to determine if the user pressed a button or not. 5

6 6 Submission Save your program in a.py file called oblig5-abc123.py, where abc123 should be replaced with your username and your assignment on the student portal Mi Side. Innleveringsmappe Vurderingsmappe Innlevering5. 7 Marking/assessment For this task, you can get a maximum of 15 points. The distribution of points is as follows. The program works as expected 12 (ca ) The program is well documented, clear, and with comments 2 Naming 1 15 The program works as expected. Here you will lose marks if your program prints the wrong data or in the wrong format (differs from the example), crashes in any manner, or if function names are not as stated. The program is well documented, clear, and with comments. You will lose marks if your program is not commented sufficiently, but also if there are too many comments. You can also lose marks if the program is unclear, meaning that it is difficult for another person to familiarize themselves with the program s functionality. Naming It is required that the names of variables and functions are sensibly chosen and that the naming used is consistent: either mixedcase or with underscore. 1 The tasks will be marked within one week of submission and the score and any comments will be posted in the assessment portfolio under comments. Questions or complaints on the marking can be directed to one of the group leaders. 1 mixedcase refers to variables such as innlestdata, and underscore refers to variables entered like innlest data. Choose one of these two and stick to that. Never start with a capital letter, e.g. InnlestData or similar, as these are reserved for class names, which are partially outside of the curriculum for this course. 6

Assignment 6. INF109 Dataprogrammering for naturvitskap

Assignment 6. INF109 Dataprogrammering for naturvitskap Assignment 6 INF109 Dataprogrammering for naturvitskap This is the sixth of seven assignments. You can get a total of 15 points for this task. Deadline is Friday, 15 April, 23.59. Submit the report as

More information

Assignment 3. INF109 Dataprogrammering for naturvitskap

Assignment 3. INF109 Dataprogrammering for naturvitskap Assignment 3 INF109 Dataprogrammering for naturvitskap This is the third of seven assignments. You can get a total of 15 points for this task. Deadline is Friday, 4. march, 23.59. Submit the report as

More information

UNIT 9C Randomness in Computation: Cellular Automata Principles of Computing, Carnegie Mellon University

UNIT 9C Randomness in Computation: Cellular Automata Principles of Computing, Carnegie Mellon University UNIT 9C Randomness in Computation: Cellular Automata 1 Exam locations: Announcements 2:30 Exam: Sections A, B, C, D, E go to Rashid (GHC 4401) Sections F, G go to PH 125C. 3:30 Exam: All sections go to

More information

Conway s Game of Life Wang An Aloysius & Koh Shang Hui

Conway s Game of Life Wang An Aloysius & Koh Shang Hui Wang An Aloysius & Koh Shang Hui Winner of Foo Kean Pew Memorial Prize and Gold Award Singapore Mathematics Project Festival 2014 Abstract Conway s Game of Life is a cellular automaton devised by the British

More information

Cellular Automata. Cellular Automata contains three modes: 1. One Dimensional, 2. Two Dimensional, and 3. Life

Cellular Automata. Cellular Automata contains three modes: 1. One Dimensional, 2. Two Dimensional, and 3. Life Cellular Automata Cellular Automata is a program that explores the dynamics of cellular automata. As described in Chapter 9 of Peak and Frame, a cellular automaton is determined by four features: The state

More information

CELLULAR AUTOMATA IN MATHEMATICAL MODELING JOSH KANTOR. 1. History

CELLULAR AUTOMATA IN MATHEMATICAL MODELING JOSH KANTOR. 1. History CELLULAR AUTOMATA IN MATHEMATICAL MODELING JOSH KANTOR 1. History Cellular automata were initially conceived of in 1948 by John von Neumann who was searching for ways of modeling evolution. He was trying

More information

Assignment 4. Aggregate Objects, Command-Line Arguments, ArrayLists. COMP-202B, Winter 2011, All Sections. Due: Tuesday, March 22, 2011 (13:00)

Assignment 4. Aggregate Objects, Command-Line Arguments, ArrayLists. COMP-202B, Winter 2011, All Sections. Due: Tuesday, March 22, 2011 (13:00) Assignment 4 Aggregate Objects, Command-Line Arguments, ArrayLists COMP-202B, Winter 2011, All Sections Due: Tuesday, March 22, 2011 (13:00) You MUST do this assignment individually and, unless otherwise

More information

Maximum Density Still Life

Maximum Density Still Life The Hebrew University of Jerusalem Computer Science department Maximum Density Still Life Project in course AI 67842 Mohammad Moamen Table of Contents Problem description:... 3 Description:... 3 Objective

More information

Graph Adjacency Matrix Automata Joshua Abbott, Phyllis Z. Chinn, Tyler Evans, Allen J. Stewart Humboldt State University, Arcata, California

Graph Adjacency Matrix Automata Joshua Abbott, Phyllis Z. Chinn, Tyler Evans, Allen J. Stewart Humboldt State University, Arcata, California Graph Adjacency Matrix Automata Joshua Abbott, Phyllis Z. Chinn, Tyler Evans, Allen J. Stewart Humboldt State University, Arcata, California Abstract We define a graph adjacency matrix automaton (GAMA)

More information

Problem 3. (12 points):

Problem 3. (12 points): Problem 3. (12 points): This problem tests your understanding of basic cache operations. Harry Q. Bovik has written the mother of all game-of-life programs. The Game-of-life is a computer game that was

More information

Introduction To Python

Introduction To Python Introduction To Python Week 7: Program Dev: Conway's Game of Life Dr. Jim Lupo Asst Dir Computational Enablement LSU Center for Computation & Technology 9 Jul 2015, Page 1 of 33 Overview Look at a helpful

More information

Extensibility Patterns: Extension Access

Extensibility Patterns: Extension Access Design Patterns and Frameworks Dipl.-Inf. Florian Heidenreich INF 2080 http://st.inf.tu-dresden.de/teaching/dpf Exercise Sheet No. 5 Software Technology Group Institute for Software and Multimedia Technology

More information

Cellular Automata on the Micron Automata Processor

Cellular Automata on the Micron Automata Processor Cellular Automata on the Micron Automata Processor Ke Wang Department of Computer Science University of Virginia Charlottesville, VA kewang@virginia.edu Kevin Skadron Department of Computer Science University

More information

Fall CSE 633 Parallel Algorithms. Cellular Automata. Nils Wisiol 11/13/12

Fall CSE 633 Parallel Algorithms. Cellular Automata. Nils Wisiol 11/13/12 Fall 2012 CSE 633 Parallel Algorithms Cellular Automata Nils Wisiol 11/13/12 Simple Automaton: Conway s Game of Life Simple Automaton: Conway s Game of Life John H. Conway Simple Automaton: Conway s Game

More information

IALP Algorithms

IALP Algorithms IALP 2011 - Algorithms P. Stallinga MIEET 1º ano Algorithms are general descriptions to solve a problem. Imagine we want to find the greatest common divisor of two integer numbers. (The GCD of two numbers

More information

CPSC 217 Assignment 3

CPSC 217 Assignment 3 CPSC 217 Assignment 3 Due: Monday November 23, 2015 at 12:00 noon Weight: 7% Sample Solution Length: 135 lines, including some comments (not including the provided code) Individual Work: All assignments

More information

Programming Project: Game of Life

Programming Project: Game of Life Programming Project: Game of Life Collaboration Solo: All work must be your own with optional help from UofA section leaders The Game of Life was invented by John Conway to simulate the birth and death

More information

2D Arrays. Lecture 25

2D Arrays. Lecture 25 2D Arrays Lecture 25 Apply to be a COMP110 UTA Applications are open at http://comp110.com/become-a-uta/ Due December 6 th at 11:59pm LDOC Hiring committee is made of 8 elected UTAs 2D Arrays 0 1 2 Easy

More information

Critters. Critter #2 Attack.ROAR Attack.POUNCE Attack.SCRATCH. Critter #1

Critters. Critter #2 Attack.ROAR Attack.POUNCE Attack.SCRATCH. Critter #1 Critters This assignment was co-created by Stuart Reges and Marty Stepp. This program focuses on classes, objects, and inheritance. You will write the following files: Ant.java, Bird.java, Crab.java, FireAnt.java,

More information

Review Sheet for Midterm #1 COMPSCI 119 Professor William T. Verts

Review Sheet for Midterm #1 COMPSCI 119 Professor William T. Verts Review Sheet for Midterm #1 COMPSCI 119 Professor William T. Verts Simple Data Types There are a number of data types that are considered primitive in that they contain only a single value. These data

More information

A simple problem that has a solution that is far deeper than expected!

A simple problem that has a solution that is far deeper than expected! The Water, Gas, Electricity Problem A simple problem that has a solution that is far deeper than expected! Consider the diagram below of three houses and three utilities: water, gas, and electricity. Each

More information

University of Manitoba Open Programming Contest September 22, General Instructions:

University of Manitoba Open Programming Contest September 22, General Instructions: University of Manitoba Open Programming Contest September 22, 2012 General Instructions: 1. Submit solutions using the PC^2 software. 2. The questions are not listed in order of difficulty. Some questions

More information

Millionaire. Input. Output. Problem limit seconds

Millionaire. Input. Output. Problem limit seconds Millionaire Congratulations! You were selected to take part in the TV game show Who Wants to Be a Millionaire! Like most people, you are somewhat risk-averse, so you might rather take $250,000 than a 50%

More information

Basic Computer Programming (Processing)

Basic Computer Programming (Processing) Contents 1. Basic Concepts (Page 2) 2. Processing (Page 2) 3. Statements and Comments (Page 6) 4. Variables (Page 7) 5. Setup and Draw (Page 8) 6. Data Types (Page 9) 7. Mouse Function (Page 10) 8. Keyboard

More information

The Big Python Guide

The Big Python Guide The Big Python Guide Big Python Guide - Page 1 Contents Input, Output and Variables........ 3 Selection (if...then)......... 4 Iteration (for loops)......... 5 Iteration (while loops)........ 6 String

More information

Lecture #13: More Sequences and Strings. Last modified: Tue Mar 18 16:17: CS61A: Lecture #13 1

Lecture #13: More Sequences and Strings. Last modified: Tue Mar 18 16:17: CS61A: Lecture #13 1 Lecture #13: More Sequences and Strings Last modified: Tue Mar 18 16:17:54 2014 CS61A: Lecture #13 1 Odds and Ends: Multi-Argument Map Python s built-in map function actually applies a function to one

More information

Section A Arithmetic ( 5) Exercise A

Section A Arithmetic ( 5) Exercise A Section A Arithmetic In the non-calculator section of the examination there might be times when you need to work with quite awkward numbers quickly and accurately. In particular you must be very familiar

More information

Random Walks & Cellular Automata

Random Walks & Cellular Automata Random Walks & Cellular Automata 1 Particle Movements basic version of the simulation vectorized implementation 2 Cellular Automata pictures of matrices an animation of matrix plots the game of life of

More information

Design Programming DECO2011

Design Programming DECO2011 Design Programming DECO2011 Rob Saunders web: http://www.arch.usyd.edu.au/~rob e-mail: rob@arch.usyd.edu.au office: Room 274, Wilkinson Building Data, Variables and Flow Control What is a Variable? Computers

More information

June 10, 2014 Scientific computing in practice Aalto University

June 10, 2014 Scientific computing in practice Aalto University Jussi Enkovaara import sys, os try: from Bio.PDB import PDBParser biopython_installed = True except ImportError: biopython_installed = False Exercises for Python in Scientific Computing June 10, 2014 Scientific

More information

Notebook Assignments

Notebook Assignments Notebook Assignments These six assignments are a notebook using techniques from class in the single concrete context of graph theory. This is supplemental to your usual assignments, and is designed for

More information

CS 100 Programming I Project 2

CS 100 Programming I Project 2 CS 100 Programming I Project 2 Revision Date: January 8, 2017 Preamble This is your third Python assignment. You may develop your code on your USB-stick (or anywhere else), but you must ensure it runs

More information

Pointers and Terminal Control

Pointers and Terminal Control Division of Mathematics and Computer Science Maryville College Outline 1 2 3 Outline 1 2 3 A Primer on Computer Memory Memory is a large list. Typically, each BYTE of memory has an address. Memory can

More information

//If target was found, then //found == true and a[index] == target.

//If target was found, then //found == true and a[index] == target. 230 CHAPTER 5 Arrays //If target was found, then //found == true and a[index] == target. } if (found) where = index; return found; 20. 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 21. int a[4][5]; int index1, index2;

More information

MPI introduction - exercises -

MPI introduction - exercises - MPI introduction - exercises - Introduction to Parallel Computing with MPI and OpenMP P. Ramieri May 2015 Hello world! (Fortran) As an ice breaking activity try to compile and run the Helloprogram, either

More information

SAM Animation: Troubleshooting

SAM Animation: Troubleshooting SAM Animation: Troubleshooting SAM Shortcuts 59 Troubleshooting - What do I do if SAM recognizes the wrong camera? - Why can t I add a frame in the middle of my animation? - How do I change the frame used

More information

Excerpt from "Art of Problem Solving Volume 1: the Basics" 2014 AoPS Inc.

Excerpt from Art of Problem Solving Volume 1: the Basics 2014 AoPS Inc. Chapter 5 Using the Integers In spite of their being a rather restricted class of numbers, the integers have a lot of interesting properties and uses. Math which involves the properties of integers is

More information

Major Assignment: Pacman Game

Major Assignment: Pacman Game Major Assignment: Pacman Game 300580 Programming Fundamentals Week 10 Assignment The major assignment involves producing a Pacman style game with Clara using the Greenfoot files that are given to you.

More information

Mathematical Operations

Mathematical Operations CHAPTER 10 Mathematical Operations The basic approach for the problems of this type is more or less similar to that of coding and decoding. One has to study the symbols or the geometrical figures and their

More information

MORE ARRAYS: THE GAME OF LIFE CITS1001

MORE ARRAYS: THE GAME OF LIFE CITS1001 MORE ARRAYS: THE GAME OF LIFE CITS1001 2 Scope of this lecture The Game of Life Implementation Performance Issues References: http://www.bitstorm.org/gameoflife/ (and hundreds of other websites) 3 Game

More information

COS 126 Midterm 2 Programming Exam Fall 2012

COS 126 Midterm 2 Programming Exam Fall 2012 NAME:!! login id:!!! Precept: COS 126 Midterm 2 Programming Exam Fall 2012 is part of your exam is like a mini-programming assignment. You will create two programs, compile them, and run them on your laptop,

More information

CPSC 121: Models of Computation Assignment #5

CPSC 121: Models of Computation Assignment #5 CPSC 2: Models of Computation Assignment #5 Due: Monday, November 27, 27 at 4:pm Total Marks: 27 Submission Instructions-- read carefully We strongly recommend that assignments be done in groups of 2.

More information

Chapter 1. Data types. Data types. In this chapter you will: learn about data types. learn about tuples, lists and dictionaries

Chapter 1. Data types. Data types. In this chapter you will: learn about data types. learn about tuples, lists and dictionaries Chapter 1 Data types In this chapter you will: learn about data types learn about tuples, lists and dictionaries make a magic card trick app. Data types In Python Basics you were introduced to strings

More information

Supervised vs.unsupervised Learning

Supervised vs.unsupervised Learning Supervised vs.unsupervised Learning In supervised learning we train algorithms with predefined concepts and functions based on labeled data D = { ( x, y ) x X, y {yes,no}. In unsupervised learning we are

More information

Data Types primitive, arrays, objects Java overview Primitive data types in Java

Data Types primitive, arrays, objects Java overview Primitive data types in Java Data Types primitive, arrays, objects Java overview Primitive data types in Java 46 Recap Day 2! Lessons Learned:! Sample run vs. pseudocode! Java program structure: set-up, then real statements, decent

More information

CMSC 201 Spring 2018 Project 3 Minesweeper

CMSC 201 Spring 2018 Project 3 Minesweeper CMSC 201 Spring 2018 Project 3 Minesweeper Assignment: Project 3 Minesweeper Due Date: Design Document: Friday, May 4th, 2018 by 8:59:59 PM Project: Friday, May 11th, 2018 by 8:59:59 PM Value: 80 points

More information

CprE 281: Digital Logic

CprE 281: Digital Logic CprE 28: Digital Logic Instructor: Alexander Stoytchev http://www.ece.iastate.edu/~alexs/classes/ Minimization CprE 28: Digital Logic Iowa State University, Ames, IA Copyright Alexander Stoytchev Administrative

More information

COMP Logic for Computer Scientists. Lecture 25

COMP Logic for Computer Scientists. Lecture 25 COMP 1002 Logic for Computer Scientists Lecture 25 B 5 2 J Admin stuff Assignment 4 is posted. Due March 23 rd. Monday March 20 th office hours From 2:30pm to 3:30pm I need to attend something 2-2:30pm.

More information

Exam 1 Format, Concepts, What you should be able to do, and Sample Problems

Exam 1 Format, Concepts, What you should be able to do, and Sample Problems CSSE 120 Introduction to Software Development Exam 1 Format, Concepts, What you should be able to do, and Sample Problems Page 1 of 6 Format: The exam will have two sections: Part 1: Paper-and-Pencil o

More information

Pacific Northwest Region Programming Contest Division 2

Pacific Northwest Region Programming Contest Division 2 Pacific Northwest Region Programming Contest Division 2 November 14th, 2015 Reminders For all problems, read the input data from standard input and write the results to standard output. In general, when

More information

Programming assignment #1. Multicore Systems

Programming assignment #1. Multicore Systems Programming assignment #1 Multicore Systems Game of Life John Conway s game of life Cellular automation Universe Infinite 2D orthogonal grid of square cells Cell is one of two states: LIVE or DEAD Each

More information

Boardworks Ltd KS3 Mathematics. S1 Lines and Angles

Boardworks Ltd KS3 Mathematics. S1 Lines and Angles 1 KS3 Mathematics S1 Lines and Angles 2 Contents S1 Lines and angles S1.1 Labelling lines and angles S1.2 Parallel and perpendicular lines S1.3 Calculating angles S1.4 Angles in polygons 3 Lines In Mathematics,

More information

What computers just cannot do. COS 116: 2/28/2008 Sanjeev Arora

What computers just cannot do. COS 116: 2/28/2008 Sanjeev Arora What computers just cannot do. COS 116: 2/28/2008 Sanjeev Arora Administrivia In class midterm in midterms week; Thurs Mar 13 (closed book;? No lab in midterms week; review session instead. What computers

More information

AP Computer Science Unit 3. Programs

AP Computer Science Unit 3. Programs AP Computer Science Unit 3. Programs For most of these programs I m asking that you to limit what you print to the screen. This will help me in quickly running some tests on your code once you submit them

More information

(9-1) Arrays IV Parallel and H&K Chapter 7. Instructor - Andrew S. O Fallon CptS 121 (March 5, 2018) Washington State University

(9-1) Arrays IV Parallel and H&K Chapter 7. Instructor - Andrew S. O Fallon CptS 121 (March 5, 2018) Washington State University (9-1) Arrays IV Parallel and H&K Chapter 7 Instructor - Andrew S. O Fallon CptS 121 (March 5, 2018) Washington State University Parallel Arrays (1) Often, we'd like to associate the values in one array

More information

CSE 142, Autumn 2018 Programming Assignment #9: Critters (20 points) Due Tuesday, December 4th, 9:00 PM

CSE 142, Autumn 2018 Programming Assignment #9: Critters (20 points) Due Tuesday, December 4th, 9:00 PM CSE 142, Autumn 2018 Programming Assignment #9: Critters (20 points) Due Tuesday, December 4th, 9:00 PM This assignment focuses on classes and objects. Turn in Ant.java, Bird.java, Hippo.java, Vulture.java,

More information

CS 112: Intro to Comp Prog

CS 112: Intro to Comp Prog CS 112: Intro to Comp Prog Importing modules Branching Loops Program Planning Arithmetic Program Lab Assignment #2 Upcoming Assignment #1 Solution CODE: # lab1.py # Student Name: John Noname # Assignment:

More information

Erlang: concurrent programming. Johan Montelius. October 2, 2016

Erlang: concurrent programming. Johan Montelius. October 2, 2016 Introduction Erlang: concurrent programming Johan Montelius October 2, 2016 In this assignment you should implement the game of life, a very simple simulation with surprising results. You will implement

More information

15-110: Principles of Computing, Spring 2018

15-110: Principles of Computing, Spring 2018 5-: Principles of Computing, Spring 28 Problem Set 8 (PS8) Due: Friday, March 3 by 2:3PM via Gradescope Hand-in HANDIN INSTRUCTIONS Download a copy of this PDF file. You have two ways to fill in your answers:.

More information

Problems for Op 2017

Problems for Op 2017 Problems for Op 2017 By Eric Durant, PhD, MBA, PE Friday 17 November 2017 Copyright 2017 MSOE Note: Unless a problem specifies otherwise, you may assume that all user inputs are valid.

More information

University of California San Diego Department of Electrical and Computer Engineering. ECE 15 Final Exam

University of California San Diego Department of Electrical and Computer Engineering. ECE 15 Final Exam University of California San Diego Department of Electrical and Computer Engineering ECE 15 Final Exam Tuesday, March 21, 2017 3:00 p.m. 6:00 p.m. Room 109, Pepper Canyon Hall Name Class Account: ee15w

More information

Emil Sekerinski, McMaster University, Winter Term 16/17 COMP SCI 1MD3 Introduction to Programming

Emil Sekerinski, McMaster University, Winter Term 16/17 COMP SCI 1MD3 Introduction to Programming Emil Sekerinski, McMaster University, Winter Term 16/17 COMP SCI 1MD3 Introduction to Programming Consider flooding a valley (dam break, tides, spring): what is the water level at specific points in the

More information

Notes on Turing s Theorem and Computability

Notes on Turing s Theorem and Computability Notes on Turing s Theorem and Computability Walter Neumann About 60 years ago there was a revolution in mathematics and philosophy. First Gödel and then Turing showed that there are impossible problems

More information

We have written lots of code so far It has all been inside of the main() method What about a big program? The main() method is going to get really

We have written lots of code so far It has all been inside of the main() method What about a big program? The main() method is going to get really Week 9: Methods 1 We have written lots of code so far It has all been inside of the main() method What about a big program? The main() method is going to get really long and hard to read Sometimes you

More information

Random Walks & Cellular Automata

Random Walks & Cellular Automata Random Walks & Cellular Automata 1 Particle Movements basic version of the simulation vectorized implementation 2 Cellular Automata pictures of matrices an animation of matrix plots the game of life of

More information

Cellular Automata. Nicholas Geis. January 22, 2015

Cellular Automata. Nicholas Geis. January 22, 2015 Cellular Automata Nicholas Geis January 22, 2015 In Stephen Wolfram s book, A New Kind of Science, he postulates that the world as we know it and all its complexities is just a simple Sequential Dynamical

More information

High-Performance Computing

High-Performance Computing Informatik und Angewandte Kognitionswissenschaft Lehrstuhl für Hochleistungsrechnen Rainer Schlönvoigt Thomas Fogal Prof. Dr. Jens Krüger High-Performance Computing http://hpc.uni-duisburg-essen.de/teaching/wt2013/pp-nbody.html

More information

Functional Programming in Haskell for A level teachers

Functional Programming in Haskell for A level teachers Functional Programming in Haskell for A level teachers About this document Functional Programming is now part of the A level curriculum. This document is intended to get those who already have some programming

More information

Use lists. Use loops. Use conditionals. Define and use functions. Create and use code modules

Use lists. Use loops. Use conditionals. Define and use functions. Create and use code modules Hunt the Wumpus Objectives Use lists Use loops Use conditionals Define and use functions Create and use code modules Assignment Hunt the Wumpus is a game that has been around in computing for over 40 years.

More information

(Refer Slide Time 6:48)

(Refer Slide Time 6:48) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology Madras Lecture - 8 Karnaugh Map Minimization using Maxterms We have been taking about

More information

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14 Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14 Scan Converting Lines, Circles and Ellipses Hello everybody, welcome again

More information

CSCI-1200 Data Structures Spring 2017 Lecture 15 Problem Solving Techniques, Continued

CSCI-1200 Data Structures Spring 2017 Lecture 15 Problem Solving Techniques, Continued CSCI-1200 Data Structures Spring 2017 Lecture 15 Problem Solving Techniques, Continued Review of Lecture 14 General Problem Solving Techniques: 1. Generating and Evaluating Ideas 2. Mapping Ideas into

More information

Chapter 8 SETS AND DICTIONARIES

Chapter 8 SETS AND DICTIONARIES Chapter 8 SETS AND DICTIONARIES Chapter Goals To build and use a set container To learn common set operations for processing data To build and use a dictionary container To work with a dictionary for table

More information

Critter #1 Attack.ROAR random winner #2 wins #1 wins Attack.POUNCE #1 wins random winner #2 wins Attack.SCRATCH #2 wins #1 wins random winner

Critter #1 Attack.ROAR random winner #2 wins #1 wins Attack.POUNCE #1 wins random winner #2 wins Attack.SCRATCH #2 wins #1 wins random winner CSE 142, Winter 2016 Programming Assignment #8: Critters (40 points) Due: Tuesday, March 8, 2016, 11:30 PM (Husky must be submitted on time to be in tournament in class on Friday, March 11) This assignment

More information

Math 6, Unit 8 Notes: Geometric Relationships

Math 6, Unit 8 Notes: Geometric Relationships Math 6, Unit 8 Notes: Geometric Relationships Points, Lines and Planes; Line Segments and Rays As we begin any new topic, we have to familiarize ourselves with the language and notation to be successful.

More information

Drawdown Automata, Part 1: Basic Concepts

Drawdown Automata, Part 1: Basic Concepts Drawdown Automata, Part 1: Basic Concepts Cellular Automata A cellular automaton is an array of identical, interacting cells. There are many possible geometries for cellular automata; the most commonly

More information

a b c d a b c d e 5 e 7

a b c d a b c d e 5 e 7 COMPSCI 230 Homework 9 Due on April 5, 2016 Work on this assignment either alone or in pairs. You may work with different partners on different assignments, but you can only have up to one partner for

More information

Concepts Review. 2. A program is the implementation of an algorithm in a particular computer language, like C and C++.

Concepts Review. 2. A program is the implementation of an algorithm in a particular computer language, like C and C++. Concepts Review 1. An algorithm is a sequence of steps to solve a problem. 2. A program is the implementation of an algorithm in a particular computer language, like C and C++. 3. A flowchart is the graphical

More information

Software and Hardware

Software and Hardware Software and Hardware Numbers At the most fundamental level, a computer manipulates electricity according to specific rules To make those rules produce something useful, we need to associate the electrical

More information

SCHOOL OF ENGINEERING & BUILT ENVIRONMENT. Mathematics. Numbers & Number Systems

SCHOOL OF ENGINEERING & BUILT ENVIRONMENT. Mathematics. Numbers & Number Systems SCHOOL OF ENGINEERING & BUILT ENVIRONMENT Mathematics Numbers & Number Systems Introduction Numbers and Their Properties Multiples and Factors The Division Algorithm Prime and Composite Numbers Prime Factors

More information

ISY00245 Principles of Programming. Module 7

ISY00245 Principles of Programming. Module 7 ISY00245 Principles of Programming Module 7 Module 7 Loops and Arrays Introduction This week we have gone through some of the concepts in your lecture, and will be putting them in to practice (as well

More information

Text Input and Conditionals

Text Input and Conditionals Text Input and Conditionals Text Input Many programs allow the user to enter information, like a username and password. Python makes taking input from the user seamless with a single line of code: input()

More information

15-110: Principles of Computing, Spring 2018

15-110: Principles of Computing, Spring 2018 15-110: Principles of Computing, Spring 2018 Problem Set 5 (PS5) Due: Friday, February 23 by 2:30PM via Gradescope Hand-in HANDIN INSTRUCTIONS Download a copy of this PDF file. You have two ways to fill

More information

Heffter Arrays: Biembeddings of Cycle Systems on Surfaces

Heffter Arrays: Biembeddings of Cycle Systems on Surfaces Heffter Arrays: Biembeddings of Cycle Systems on Surfaces by Jeff Dinitz* University of Vermont and Dan Archdeacon (University of Vermont) Tom Boothby (Simon Fraser University) Our goal is to embed the

More information

INTRODUCTION TO MICROSOFT EXCEL: DATA ENTRY AND FORMULAS

INTRODUCTION TO MICROSOFT EXCEL: DATA ENTRY AND FORMULAS P a g e 1 INTRODUCTION TO MICROSOFT EXCEL: DATA ENTRY AND FORMULAS MARGERT E HEGGAN FREE PUBLIC LIBRARY SECTION ONE: WHAT IS MICROSOFT EXCEL MICROSOFT EXCEL is a SPREADSHEET program used for organizing

More information

CS2110 Assignment 2 Lists, Induction, Recursion and Parsing, Summer

CS2110 Assignment 2 Lists, Induction, Recursion and Parsing, Summer CS2110 Assignment 2 Lists, Induction, Recursion and Parsing, Summer 2008 Due Thursday July 3, 2008, 6:00PM 0 General Instructions 0.1 Purpose This assignment will help you solidify your knowledge of Java

More information

1/15 2/19 3/23 4/28 5/12 6/23 Total/120 % Please do not write in the spaces above.

1/15 2/19 3/23 4/28 5/12 6/23 Total/120 % Please do not write in the spaces above. 1/15 2/19 3/23 4/28 5/12 6/23 Total/120 % Please do not write in the spaces above. Directions: You have 50 minutes in which to complete this exam. Please make sure that you read through this entire exam

More information

Integers and the Coordinate Plane

Integers and the Coordinate Plane Name Date Class 9A Dear Family, A Family Letter: Understanding Integers The student will begin the study of an important set of numbers called integers. Integers are the set of numbers that include all

More information

THE RELATIONSHIP BETWEEN PROCEDURAL GENERATION TECHNIQUES: CELLULAR AUTOMATA AND NOISE JESSE HIGNITE. Advisor DANIEL PLANTE

THE RELATIONSHIP BETWEEN PROCEDURAL GENERATION TECHNIQUES: CELLULAR AUTOMATA AND NOISE JESSE HIGNITE. Advisor DANIEL PLANTE THE RELATIONSHIP BETWEEN PROCEDURAL GENERATION TECHNIQUES: CELLULAR AUTOMATA AND NOISE by JESSE HIGNITE Advisor DANIEL PLANTE A senior research proposal submitted in partial fulfillment of the requirements

More information

1. Alicia tosses 3 fair coins. What is the probability that she gets at 1. least 1 head? Express your answer as a common fraction.

1. Alicia tosses 3 fair coins. What is the probability that she gets at 1. least 1 head? Express your answer as a common fraction. Blitz, Page 1 1. Alicia tosses 3 fair coins. What is the probability that she gets at 1. least 1 head? Express your answer as a common fraction. 2. It took Anita 2.25 hours to walk 12.5 km. At this rate,

More information

Loops. GEEN163 Introduction to Computer Programming

Loops. GEEN163 Introduction to Computer Programming Loops GEEN163 Introduction to Computer Programming Simplicity is prerequisite for reliability. Edsger W. Dijkstra Programming Assignment A new programming assignment has been posted on Blackboard for this

More information

CS195H Homework 1 Grid homotopies and free groups. Due: February 5, 2015, before class

CS195H Homework 1 Grid homotopies and free groups. Due: February 5, 2015, before class CS195H Homework 1 Grid homotopies and free groups This second homework is almost all about grid homotopies and grid curves, but with a little math in the middle. This homework, last year, took people about

More information

Tecniche di Progettazione: Design Patterns

Tecniche di Progettazione: Design Patterns Tecniche di Progettazione: Design Patterns GoF: Visitor 1 Polymorphism reminded: overriding and dynamic binding 2 Polymorphism reminded: overloading and static dispatch 3 Polymorphism reminded: overloading

More information

Install RStudio from - use the standard installation.

Install RStudio from   - use the standard installation. Session 1: Reading in Data Before you begin: Install RStudio from http://www.rstudio.com/ide/download/ - use the standard installation. Go to the course website; http://faculty.washington.edu/kenrice/rintro/

More information

MultiAgent-based Simulation

MultiAgent-based Simulation MultiAgent-based Simulation Repast Simphony Recursive Porous Agent Simulation Toolkit Argonne National Laboratory University of Chicago http://repast.sourceforge.net/ mirror : https://seafile.emse.fr/d/0a454872c8/

More information

MPI Case Study. Fabio Affinito. April 24, 2012

MPI Case Study. Fabio Affinito. April 24, 2012 MPI Case Study Fabio Affinito April 24, 2012 In this case study you will (hopefully..) learn how to Use a master-slave model Perform a domain decomposition using ghost-zones Implementing a message passing

More information

Assessment Data Online for Parents: Quick Start Guide

Assessment Data Online for Parents: Quick Start Guide Assessment Data Online for Parents: Quick Start Guide Welcome, Parents, to the Assessment Data Online website. This Quick Start Guide is intended to help you become familiar with the application, provide

More information

CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques

CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques Review from Lecture 12 Rules for writing recursive functions: 1. Handle the base case(s). 2. Define the problem solution in terms

More information

All programs can be represented in terms of sequence, selection and iteration.

All programs can be represented in terms of sequence, selection and iteration. Python Lesson 3 Lists, for loops and while loops Suffolk One, Ipswich, 4:30 to 6:00 Tuesday Jan 28 Nicky Hughes All programs can be represented in terms of sequence, selection and iteration. 1 Computational

More information

Topic: 1-One to Five

Topic: 1-One to Five Mathematics Curriculum Kindergarten Suggested Blocks of Instruction: 12 days /September Topic: 1-One to Five Know number names and the count sequence. K.CC.3. Write numbers from 0 to 20. Represent a number

More information