Assignment 5. INF109 Dataprogrammering for naturvitskap
|
|
- Anabel Powell
- 5 years ago
- Views:
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 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 informationAssignment 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 informationUNIT 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 informationConway 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 informationCellular 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 informationCELLULAR 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 informationAssignment 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 informationMaximum 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 informationGraph 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 informationProblem 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 informationIntroduction 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 informationExtensibility 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 informationCellular 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 informationFall 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 informationIALP 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 informationCPSC 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 informationProgramming 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 information2D 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 informationCritters. 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 informationReview 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 informationA 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 informationUniversity 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 informationMillionaire. 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 informationBasic 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 informationThe 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 informationLecture #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 informationSection 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 informationRandom 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 informationDesign 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 informationJune 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 informationNotebook 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 informationCS 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 informationPointers 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.
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 informationMPI 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 informationSAM 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 informationExcerpt 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 informationMajor 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 informationMathematical 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 informationMORE 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 informationCOS 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 informationCPSC 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 informationChapter 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 informationSupervised 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 informationData 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 informationCMSC 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 informationCprE 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 informationCOMP 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 informationExam 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 informationPacific 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 informationProgramming 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 informationBoardworks 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 informationWhat 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 informationAP 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 Parallel Arrays (1) Often, we'd like to associate the values in one array
More informationCSE 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 informationCS 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 informationErlang: 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 information15-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 informationProblems 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 informationUniversity 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 informationEmil 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 informationNotes 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 informationWe 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 informationRandom 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 informationCellular 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 informationHigh-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 informationFunctional 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 informationUse 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)
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 informationComputer 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 informationCSCI-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 informationChapter 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 informationCritter #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 informationMath 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 informationDrawdown 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 informationa 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 informationConcepts 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 informationSoftware 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 informationSCHOOL 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 informationISY00245 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 informationText 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 information15-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 informationHeffter 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 informationINTRODUCTION 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 informationCS2110 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 information1/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 informationIntegers 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 informationTHE 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 information1. 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 informationLoops. 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 informationCS195H 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 informationTecniche 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 informationInstall 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 informationMultiAgent-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 informationMPI 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 informationAssessment 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 informationCSCI-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 informationAll 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 informationTopic: 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