Scripting in Python Laborations and projects

Size: px
Start display at page:

Download "Scripting in Python Laborations and projects"

Transcription

1 Scripting in Python Laborations and projects 1 Introduction There are two possibilities for the scripting labs in the compiler course, either implementing a self-selected project or implementing the proposed lab project specified here. In both cases, the goal is to get a basic understanding of Python and to understand how Python can be integrated with C or C Common Requirements These are the requirements and guidelines common to both the predefined labs and the projects. You should implement the boids algorithm which simulates flocking behavior (see Section 4) The implementation should be written in mixed Python/C/C++ You should implement the project individually or two by two The game must run on hardware available at the university Examination You should present your lab- or project implementation on the third lab. If you are not ready by then, you should book a time with me (ska@bth.se), but you should really try to be finished soon after the third lab. You should also write a post mortem page about the lab on the BTH game programming wiki (spel.bth.se). 2 Project 2.1 Requirements for the Project Those that want to make their own project need to supply a project proposal which has to be accepted. The requirements and guidelines are: A written proposal (sent in as a PDF) describing what you plan to do needs to be submitted and accepted You are allowed to reuse your own existing code from older projects and are allowed to reuse code from the lab project You do not need to implement menus, high score etc. 1

2 2.2 Example Project: Commando/SDL As an example of a project, you could implement a more modern version of the old vertically scrolling shoot-em-up Commando game. The story in Commando is As the crack shot Commando, your mission is to move forward into enemy territory. You must destroy the enemy and their base by passing through the Iron Walls. (taken from the Wikipedia article on the Commando game 1 ). version of the commando game can be seen below. A screenshot from the C64 One of the problems with the original commando game was that it was quite easy to walk through since the enemies behave stupidly. In a new version, the enemies could at least try to look more intelligent, through a boid-style flocking algorithm. 3 Lab Project The goal of the lab project is to implement boids-style flocking behavior for a number of s (non-player characters) in a small game. The boids should be implemented in Python and use functions implemented in C. 3.1 Requirements for the Lab Project You should implement boids-style flocking behavior. The code handed out to you is based on the A* laboration got before. You should therefore also add follow the leader behavior with the flock following a leader that in turn walks a path to somewhere. You can use either your own A* implementation or the dummy path finder implementation provided. A suggestion is to define the HostAPI using Swig. You are allowed to start the game either from C (the supplied main.c file) or from Python. 3.2 Suggested Schedule Lab 1: Good understanding of Python, initializing Python support from C 1 2

3 Lab 2: Calling Python code from C and C code from Python, started with the game implementation Lab 3: Finished the game implementation 3.3 API The handed out source code has an API to talk to game objects, i.e., non-player characters etc, which is defined in objs.h. An example (in C) of an object can be found in scripts/obj_c.c. More thorough documentation is in the html directory. int obj_allocate(surface_img_dir): Allocate a new object with sprites in surface img dir. Look in gfx/sprites/bruce for an example of a sprite directory. This function returns an object identifier which are used for the other functions. obj_free(obj_id): Free object obj id again. obj_set_callback(obj_id, run_frame): Set the function to call for each frame of the game play. The function run frame is passed an object pointer and a double value which represents the number of seconds since last frame (e.g., 0.10 means that 100ms has passed since last frame). obj_draw(obj_id, anim_frame, x, y): Draw the object at (x, y). anim frame specifies the sprite frame to draw. The idea with this structure is that the object is called on each frame of game play and then itself updates the position and draws itself. See the example written in C in scripts/obj_c.c. Also see game_init in game.c for an example on how to add an object to the game. Since C code cannot directly call Python functions, a tip for the Python implementation is to write a small C wrapper function to pass to the obj set callback function which simply forwards the call to a Python function that knows the mapping from obj id to Python objects. 3.4 Suggested HostAPI The suggested HostAPI for the lab is to wrap the API for objs, i.e., allow objects to be created, updated and drawn from Python code. It is probably a good idea to start with this interface, which allows you to get going with the implementation. In order to support a leader following a path, it is also advisable to include a call that gets a path to follow (e.g., something like get_path(sx, sy, dx, dy) which returns a path). If you want to start the game from a Python script, you can also export the start game function. If you are using Swig, you can define the interface in a host_api.i-file. 4 Boids A good description of behavior (and boids) is the book Programming Game AI by example by Mat Buckland, which forms the basis of the behavior patterns described here. The traditional boid behavior is the Separation, Alignment and Cohesion described below. 3

4 Forces 4.1 Steering forces We will work with vectors describing the heading and velocity of an (boid). To avoid writing code outside of the course scope, there is a Python vector class in scripts/lib/vector.py in the environment source code. Note that both the position and the heading can be represented as vectors, an example of vector use is given in the 06.classes/classes.py example, which also shows how to update the position of the boid. For all these steering forces, the output is a vector. To get the final steering force, e.g., the boid-behavior, just add these vectors together. You can also weigh the different vectors if you want, e.g., separation to be more important than cohesion (generally a good idea) Seek Seek behavior causes an to steer towards target. In the figure below, the vector a shows the current velocity of the, vector b shows the wanted heading and velocity to get to the target and vector c shows the direction to add to the current velocity to turn towards the target. target a b c The formula to calculate vector c is then c = Normalize(target pos pos ) MaxSpeed a In the discussion below, N refers to the neighbors of an, i.e., all boids within a certain distance of the, but not including the itself Separation Separation tries to keep an at a certain distance from its neighbors. Separation sums the normalized distance between the and its neighbors, i.e., the sum Normalize( pos n pos ) n N 4

5 4.1.3 Alignment Alignment tries to keep an aligned with it s neighbors, i.e., facing the same direction as the others. The alignment is then the sum of the heading of all neighbors, i.e., the sum for each neighbor Normalize(n vel ) n N Cohesion Cohesion tries to keep the flock together. Therefore, each tries to head towards the average position of the flock. Therefore, cohesion is a vector from the directed towards the average position of the flock. I.e, sum the position of all neighbors and then divide the position by the number of neighbors. Finally, use the seek steering behavior to move the towards the center, or n N n pos N 5

Traffic/Flocking/Crowd AI. Gregory Miranda

Traffic/Flocking/Crowd AI. Gregory Miranda Traffic/Flocking/Crowd AI Gregory Miranda Introduction What is Flocking? Coordinated animal motion such as bird flocks and fish schools Initially described by Craig Reynolds Created boids in 1986, generic

More information

Python Scripting for Computational Science

Python Scripting for Computational Science Hans Petter Langtangen Python Scripting for Computational Science Third Edition With 62 Figures 43 Springer Table of Contents 1 Introduction... 1 1.1 Scripting versus Traditional Programming... 1 1.1.1

More information

Python Scripting for Computational Science

Python Scripting for Computational Science Hans Petter Langtangen Python Scripting for Computational Science Third Edition With 62 Figures Sprin ger Table of Contents 1 Introduction 1 1.1 Scripting versus Traditional Programming 1 1.1.1 Why Scripting

More information

Navigation Mesh based Pathfinding for large crowds

Navigation Mesh based Pathfinding for large crowds Navigation Mesh based Pathfinding for large crowds Robert Lindner Introduction This paper is about methods that can be used to get as much performance as possible while simulating the pathfinding of large

More information

Scratch. Creative Computing

Scratch. Creative Computing Scratch Creative Computing Section 1 INTRODUCTION TO SCRATCH Scratch Browser based Created at MIT Creative Computing Using a tool to easily create a computer program. Typically a drag-and-drop tool. Emphasizes

More information

Project #1: Tracing, System Calls, and Processes

Project #1: Tracing, System Calls, and Processes Project #1: Tracing, System Calls, and Processes Objectives In this project, you will learn about system calls, process control and several different techniques for tracing and instrumenting process behaviors.

More information

Chapter Objectives 1 of 2. Chapter 3. The Operating System. Chapter Objectives 2 of 2. The Operating System. The Operating System

Chapter Objectives 1 of 2. Chapter 3. The Operating System. Chapter Objectives 2 of 2. The Operating System. The Operating System Teachers Discovering Computers Integrating Technology and Digital Media in the Classroom 6 th Edition Chapter 3 Application Productivity Tools for Educators Chapter Objectives 1 of 2 Explain the role of

More information

Computer Graphics - Treasure Hunter

Computer Graphics - Treasure Hunter Computer Graphics - Treasure Hunter CS 4830 Dr. Mihail September 16, 2015 1 Introduction In this assignment you will implement an old technique to simulate 3D scenes called billboarding, sometimes referred

More information

CS 170 Java Programming 1. Week 10: Loops and Arrays

CS 170 Java Programming 1. Week 10: Loops and Arrays CS 170 Java Programming 1 Week 10: Loops and Arrays What s the Plan? Topic 1: A Little Review Use a counted loop to create graphical objects Write programs that use events and animation Topic 2: Advanced

More information

The City School. Prep Section. ICTech. 2 nd Term. PAF Chapter. Class 8. Worksheets for Intervention Classes

The City School. Prep Section. ICTech. 2 nd Term. PAF Chapter. Class 8. Worksheets for Intervention Classes The City School PAF Chapter Prep Section ICTech Class 8 2 nd Term Worksheets for Intervention Classes Name: Topic: Flowchart Date: Q. Write the name and description of the following symbol. Symbol Name

More information

The City School. Prep Section. ICTech. 2 nd Term. PAF Chapter. Class 7. Worksheets for Intervention Classes

The City School. Prep Section. ICTech. 2 nd Term. PAF Chapter. Class 7. Worksheets for Intervention Classes The City School PAF Chapter Prep Section ICTech Class 7 2 nd Term Worksheets for Intervention Classes Name: Topic: Scratch Date: Q.1: Label the diagram 1 2 3 4 5 6 7 12 8 9 11 10 1. 2. 3. 4. 5. 6. 7. 8.

More information

12/15/2008. All about Game Maker. Integrated Development Environment for 2D games Global idea

12/15/2008. All about Game Maker. Integrated Development Environment for 2D games Global idea Game Design 2008 Lecture 09 All about Game Maker Which is required for last assignment Integrated Development Environment for 2D games Global idea Simple to use, using drag-and-drop Still considerable

More information

How to add support for DJVU file format on M$ Windows, Mac, GNU / Linux and FreeBSD

How to add support for DJVU file format on M$ Windows, Mac, GNU / Linux and FreeBSD How to add support for DJVU file format on M$ Windows, Mac, GNU / Linux and FreeBSD Author : admin By default there is no way to see what is inside a DJVU formatted document on both Windows and Linux OS

More information

Laboratory Assignment #3. Extending scull, a char pseudo-device

Laboratory Assignment #3. Extending scull, a char pseudo-device Laboratory Assignment #3 Extending scull, a char pseudo-device Value: (See the Grading section of the Syllabus.) Due Date and Time: (See the Course Calendar.) Summary: This is your first exercise that

More information

Manual Vba Access 2010 Close Form Without Saving Record

Manual Vba Access 2010 Close Form Without Saving Record Manual Vba Access 2010 Close Form Without Saving Record I have an Access 2010 database which is using a form frmtimekeeper to keep Then when the database is closed the close sub writes to that same record

More information

Under the Guidance of

Under the Guidance of Presented by Linga Venkatesh (10305085) Deepak Jayanth (10305913) Under the Guidance of Prof. Parag Chaudhuri Flocking/Swarming/Schooling Nature Phenomenon Collective Behaviour by animals of same size

More information

Graphs, Search, Pathfinding (behavior involving where to go) Steering, Flocking, Formations (behavior involving how to go)

Graphs, Search, Pathfinding (behavior involving where to go) Steering, Flocking, Formations (behavior involving how to go) Graphs, Search, Pathfinding (behavior involving where to go) Steering, Flocking, Formations (behavior involving how to go) Class N-2 1. What are some benefits of path networks? 2. Cons of path networks?

More information

Lecture 3. Functions & Modules

Lecture 3. Functions & Modules Lecture 3 Functions & Modules Labs this Week Lab 1 is due at the beginning of your lab If it is not yet by then, you cannot get credit Only exception is for students who added late (Those students should

More information

IMGD 4000 Technical Game Development II Scripting

IMGD 4000 Technical Game Development II Scripting IMGD 4000 Technical Game Development II Scripting Robert W. Lindeman Associate Professor Human Interaction in Virtual Environments (HIVE) Lab Department of Computer Science Worcester Polytechnic Institute

More information

CSE : Python Programming

CSE : Python Programming CSE 399-004: Python Programming Lecture 2: Data, Classes, and Modules January 22, 2007 http://www.seas.upenn.edu/~cse39904/ Administrative things Teaching assistant Brian Summa (bsumma @ seas.upenn.edu)

More information

CS210 Project 5 (Kd-Trees) Swami Iyer

CS210 Project 5 (Kd-Trees) Swami Iyer The purpose of this assignment is to create a symbol table data type whose keys are two-dimensional points. We ll use a 2d-tree to support efficient range search (find all the points contained in a query

More information

Lecture 3. Functions & Modules

Lecture 3. Functions & Modules Lecture 3 Functions & Modules Labs this Week Lab 1 is due at the beginning of your lab If it is not yet by then, you cannot get credit Only exception is for students who added late (Those students should

More information

Desktop Publishing. Desirable Features. Key Stages 1 & 2. Pupils should: Level. Level 2. Level 3. Level 4. Level 5

Desktop Publishing. Desirable Features. Key Stages 1 & 2. Pupils should: Level. Level 2. Level 3. Level 4. Level 5 Desktop Publishing 1 find, select and import text or a familiar image into appropriate software with some help from the teacher; and create a simple phrase or sentence to accompany the image. find and

More information

Standards for Test Automation

Standards for Test Automation Standards for Test Automation Brian Tervo Windows XP Automation Applications Compatibility Test Lead Microsoft Corporation Overview Over the last five years, I ve had the opportunity to work in a group

More information

Interactive Media CTAG Alignments

Interactive Media CTAG Alignments Interactive Media CTAG Alignments This document contains information about eight Career-Technical Articulation Numbers (CTANs) for the Media Arts Career-Technical Assurance Guide (CTAG). The CTANs are:

More information

Software Coding Specs

Software Coding Specs Software Coding Specs Team members: Alper Akbal (developer) Farid Harhad (developer & team lead) Sean O Connell (developer) Andrew Staley (developer) Tarik Teksen Tutal (developer) Instructors: Dr. Jason

More information

AN INTRODUCTION TO SCRATCH (2) PROGRAMMING

AN INTRODUCTION TO SCRATCH (2) PROGRAMMING AN INTRODUCTION TO SCRATCH (2) PROGRAMMING Document Version 2 (04/10/2014) INTRODUCTION SCRATCH is a visual programming environment and language. It was launched by the MIT Media Lab in 2007 in an effort

More information

PTN-202: Advanced Python Programming Course Description. Course Outline

PTN-202: Advanced Python Programming Course Description. Course Outline PTN-202: Advanced Python Programming Course Description This 4-day course picks up where Python I leaves off, covering some topics in more detail, and adding many new ones, with a focus on enterprise development.

More information

MyGraphicsLab ADOBE INDESIGN CC COURSE FOR PRINT & DIGITAL MEDIA PUBLICATION Curriculum Mapping to ACA Objectives

MyGraphicsLab ADOBE INDESIGN CC COURSE FOR PRINT & DIGITAL MEDIA PUBLICATION Curriculum Mapping to ACA Objectives ADOBE INDESIGN CC COURSE FOR PRINT & DIGITAL MEDIA PUBLICATION Curriculum Mapping to ACA Domain Domain 1.0 Setting Project Requirements 1.1 Identify the purpose, audience, and audience needs for preparing

More information

Teacher Cheat Sheet - Game Coding Challenges

Teacher Cheat Sheet - Game Coding Challenges Teacher Cheat Sheet - Game Coding Challenges Challenge #1 Movement: Make your sprite move across the screen. When it hits the walls, it must bounce off and keep moving. 1. The When Flag is clicked is your

More information

Pacman. you want to see how the maze was created, open the file named unity_pacman_create_maze.

Pacman. you want to see how the maze was created, open the file named unity_pacman_create_maze. Pacman Note: I have started this exercise for you so you do not have to make all of the box colliders. If you want to see how the maze was created, open the file named unity_pacman_create_maze. Adding

More information

Line Spacing and Double Spacing...24 Finding and Replacing Text...24 Inserting or Linking Graphics...25 Wrapping Text Around Graphics...

Line Spacing and Double Spacing...24 Finding and Replacing Text...24 Inserting or Linking Graphics...25 Wrapping Text Around Graphics... Table of Contents Introduction...1 OpenOffice.org Features and Market Context...1 Purpose of this Book...4 How is OpenOffice.org Related to StarOffice?...4 Migrating from Microsoft Office to OpenOffice.org...4

More information

Computing Long Term Plan

Computing Long Term Plan Beebot Virtual 2Go or Daisy Dino on ipad Give and follow instructions, which include straight and turning commands, one at a time. Explore outcomes when instructions are given in a sequence Give a simple

More information

Shared Memory Programming With OpenMP Exercise Instructions

Shared Memory Programming With OpenMP Exercise Instructions Shared Memory Programming With OpenMP Exercise Instructions John Burkardt Interdisciplinary Center for Applied Mathematics & Information Technology Department Virginia Tech... Advanced Computational Science

More information

15-213/18-213/15-513, Fall 2017 C Programming Lab: Assessing Your C Programming Skills

15-213/18-213/15-513, Fall 2017 C Programming Lab: Assessing Your C Programming Skills 15-213/18-213/15-513, Fall 2017 C Programming Lab: Assessing Your C Programming Skills 1 Logistics Assigned: Tues., Aug. 29, 2017 Due: Thurs., Sept. 7, 11:59 pm Last possible hand in: Tues., Sept. 7, 11:59

More information

CS 134 Programming Exercise 9:

CS 134 Programming Exercise 9: CS 134 Programming Exercise 9: Nibbles Objective: To gain experience working with 2 dimensional arrays. The Problem Nibbles is a snake. Nibbles moves around a field, looking for food. Unfortunately, Nibbles

More information

Scratch Lesson 2: Movies Made From Scratch Lesson Framework

Scratch Lesson 2: Movies Made From Scratch Lesson Framework Scratch Lesson 2: Movies Made From Scratch Lesson Framework Scratch makes it easy to program your own interactive stories, games, and animations and share your creations on the web. As you create and share

More information

Technical Game Development II IMGD 4000 (D 11) 1. having agents follow pre-set actions rather than choosing them dynamically

Technical Game Development II IMGD 4000 (D 11) 1. having agents follow pre-set actions rather than choosing them dynamically Scripting Technical Game Development II Professor Charles Rich Computer Science Department rich@wpi.edu References: Buckland, Chapter 6 IMGD 4000 (D 11) 1 Scripting Two senses of the word scripted behavior

More information

Mac Application Development By Example Beginner's Guide Pdf

Mac Application Development By Example Beginner's Guide Pdf Mac Application Development By Example Beginner's Guide Pdf running a Mac app, Xcode launches it directly on your Mac. To explore the Xcode features described in this guide on your Mac, obtain Xcode independently

More information

Scratch Programming In Easy Steps

Scratch Programming In Easy Steps In Easy Steps Free PDF ebook Download: In Easy Steps Download or Read Online ebook scratch programming in easy steps in PDF Format From The Best User Guide Database " is a new programming language that

More information

Text. Text metrics. There are some important metrics that we must consider when working with text. Figure 4-1 shows the basics.

Text. Text metrics. There are some important metrics that we must consider when working with text. Figure 4-1 shows the basics. Text Drawing text has some special properties and thus is treated in a separate chapter. We first need to talk about the sizing of text. Then we discuss fonts and how text is actually drawn. There is then

More information

BXG BLUX Game Engine Getting Started BXG Getting Started

BXG BLUX Game Engine Getting Started BXG Getting Started BXG Getting Started 1. Setup... 2 1.1. General Tools... 2 1.2. Downloading BXG SDK... 3 1.3. Downloading Sample Games... 6 2. Step-by-Step Example of Game Source Writing... 9 2.1. Constructing Game working

More information

Plone 4 User Manual Pdf

Plone 4 User Manual Pdf Plone 4 User Manual Pdf Home Download & Extend Documentation Get Involved Plone Foundation Migrate old Plone or Google Sites content to current Plone 4 PDFNode is Zope tool to help creating aggregated

More information

CS12020 for CGVG. Practical 2. Jim Finnis

CS12020 for CGVG. Practical 2. Jim Finnis CS12020 for CGVG Practical 2 Jim Finnis (jcf1@aber.ac.uk) This week Solution to last week and discussion Global variables and the model The Main Loop pattern States and the State Machine pattern Random

More information

Object-Oriented Language Development Company

Object-Oriented Language Development Company Object-Oriented Language Development Company The OLD Co Pong Game: Executive Summary The Object-Oriented Language Development Company (OLD Co.) has begun development of a radically new computer game, with

More information

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014

Lesson 10A OOP Fundamentals. By John B. Owen All rights reserved 2011, revised 2014 Lesson 10A OOP Fundamentals By John B. Owen All rights reserved 2011, revised 2014 Table of Contents Objectives Definition Pointers vs containers Object vs primitives Constructors Methods Object class

More information

Make an ebook in an Afternoon

Make an ebook in an Afternoon Make an ebook in an Afternoon How to make ebooks in the epub and MOBI (KF8 compatible) formats using free software. These instructions are intended as a how-to guide for making ebooks using free and widely

More information

This is a set of tiles I made for a mobile game (a long time ago). You can download it here:

This is a set of tiles I made for a mobile game (a long time ago). You can download it here: Programming in C++ / FASTTRACK TUTORIALS Introduction PART 11: Tiles It is time to introduce you to a great concept for 2D graphics in C++, that you will find very useful and easy to use: tilemaps. Have

More information

CS 378: Computer Game Technology

CS 378: Computer Game Technology CS 378: Computer Game Technology Dynamic Path Planning, Flocking Spring 2012 University of Texas at Austin CS 378 Game Technology Don Fussell Dynamic Path Planning! What happens when the environment changes

More information

Learning to Provide Modern Solutions

Learning to Provide Modern Solutions 1 Learning to Provide Modern Solutions Over the course of this book, you will learn to enhance your existing applications to modernize the output of the system. To do this, we ll take advantage of the

More information

CS 354 R Game Technology

CS 354 R Game Technology CS 354 R Game Technology Particles and Flocking Behavior Fall 2017 Particle Effects 2 General Particle Systems Objects are considered point masses with orientation Simple rules control how the particles

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

Collaboration policies!

Collaboration policies! Tic is over! Collaboration policies! How was the signup process? Were they helpful? Would you rather have more TA hours instead? Design checks You can run demos! cs195n_demo tac2 zdavis cs195n_demo tic

More information

WW.IT-IQ Training & Solutions (PTY) LTD

WW.IT-IQ Training & Solutions (PTY) LTD GAMES DEVELOPMENT COURSE OUTLINES DURATION: 4 YEARS Course Modules Prerequisite Prerequisite Completing the Fundamentals of Programming Course Completing the Object Oriented Programming Course Initialization

More information

Shared Memory Programming With OpenMP Computer Lab Exercises

Shared Memory Programming With OpenMP Computer Lab Exercises Shared Memory Programming With OpenMP Computer Lab Exercises Advanced Computational Science II John Burkardt Department of Scientific Computing Florida State University http://people.sc.fsu.edu/ jburkardt/presentations/fsu

More information

When Brunel s ship the SS Great Britain was launched into the River Thames, it made such a splash that several spectators on the opposite bank were

When Brunel s ship the SS Great Britain was launched into the River Thames, it made such a splash that several spectators on the opposite bank were C. A. R. Hoare Emeritus Professor of Computing at the University of Oxford and is now a senior researcher at Microsoft Research in Cambridge, England. He received the 1980 ACM Turing Award for his fundamental

More information

OPERATING SYSTEMS ASSIGNMENT 3 MEMORY MANAGEMENT

OPERATING SYSTEMS ASSIGNMENT 3 MEMORY MANAGEMENT OPERATING SYSTEMS ASSIGNMENT 3 MEMORY MANAGEMENT Introduction Memory management and memory abstraction is one of the most important features of any operating system. In this assignment we will examine

More information

Using Terminal Window Graphics in CS1

Using Terminal Window Graphics in CS1 Using in CS1 CCSCE 2008 Using in CS1 Using in CS1 The problem We have many goals for CS1, sometimes conflicting: Make it simple Many students come in with no prior programming experience Make it rigorous

More information

1 Getting started with Processing

1 Getting started with Processing cis3.5, spring 2009, lab II.1 / prof sklar. 1 Getting started with Processing Processing is a sketch programming tool designed for use by non-technical people (e.g., artists, designers, musicians). For

More information

University of Kelaniya Sri Lanka

University of Kelaniya Sri Lanka University of Kelaniya Sri Lanka Scope, Lifetime and Storage Class of a Variable COSC 12533/ COST 12533 SACHINTHA PITIGALA 2017 - Sachintha Pitigala < 1 What is Scope? Scope of Identifier: The scope of

More information

Your message in Outlook will look something like the illustration below. Begin by right-clicking on the name of the attachment.

Your  message in Outlook will look something like the illustration below. Begin by right-clicking on the name of the attachment. Page 1 of 11 Dear Teacher, Tutor or Program Coordinator, The deadline for entries to this year s edition of To Open Your Mind is just a month away February 16! Please try to get your entries in as soon

More information

CS 106 Winter Lab 03: Input and Output

CS 106 Winter Lab 03: Input and Output CS 106 Winter 2019 Lab 03: Input and Output Due: Wednesday, January 23th, 11:59pm Summary This lab will allow you to practice input and output. Each question is on a separate page. SAVE each sketch as

More information

Collision Avoidance with Unity3d

Collision Avoidance with Unity3d Collision Avoidance with Unity3d Jassiem Ifill September 12, 2013 Abstract The primary goal of the research presented in this paper is to achieve natural crowd simulation and collision avoidance within

More information

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group 2008 IBM Corporation Agenda XPage overview From palette to properties: Controls, Ajax

More information

Platform Games Drawing Sprites & Detecting Collisions

Platform Games Drawing Sprites & Detecting Collisions Platform Games Drawing Sprites & Detecting Collisions Computer Games Development David Cairns Contents Drawing Sprites Collision Detection Animation Loop Introduction 1 Background Image - Parallax Scrolling

More information

CS179 GPU Programming Recitation 4: CUDA Particles

CS179 GPU Programming Recitation 4: CUDA Particles Recitation 4: CUDA Particles Lab 4 CUDA Particle systems Two parts Simple repeat of Lab 3 Interacting Flocking simulation 2 Setup Two folders given particles_simple, particles_interact Must install NVIDIA_CUDA_SDK

More information

CS179: GPU Programming. Lecture 7: Lab 3 Recitation

CS179: GPU Programming. Lecture 7: Lab 3 Recitation CS179: GPU Programming Lecture 7: Lab 3 Recitation Today Miscellaneous CUDA syntax Recap on CUDA and buffers Shared memory for an N-body simulation Flocking simulations Integrators CUDA Kernels Launching

More information

CSCI 1060U Programming Workshop

CSCI 1060U Programming Workshop CSCI 1060U Programming Workshop Professor: Dr. Jeremy S. Bradbury Phone: 905-721- 8668 ext. 3685 E- mail: jeremy.bradbury@uoit.ca Office hour: To be announced (UA4016), otherwise by appointment Teaching

More information

Introduction to Scratch Programming v1.4 (Second Ed) Lesson 6 Calculator

Introduction to Scratch Programming v1.4 (Second Ed) Lesson 6 Calculator Lesson What you will learn: how to perform simple calculations using Scratch how to use variables how to develop a design how to use the else if function how to create animated buttons Contents Exercise

More information

Developing Desktop Apps for Ultrabook Devices in Windows 8*: Getting Started

Developing Desktop Apps for Ultrabook Devices in Windows 8*: Getting Started Developing Desktop Apps for Ultrabook Devices in Windows 8*: Getting Started By Paul Ferrill The Ultrabook provides a rich set of sensor capabilities to enhance a wide range of applications. It also includes

More information

Slide 1 CS 170 Java Programming 1 Testing Karel

Slide 1 CS 170 Java Programming 1 Testing Karel CS 170 Java Programming 1 Testing Karel Introducing Unit Tests to Karel's World Slide 1 CS 170 Java Programming 1 Testing Karel Hi Everybody. This is the CS 170, Java Programming 1 lecture, Testing Karel.

More information

Session 4 Starting the Air Raid Game

Session 4 Starting the Air Raid Game Session 4 Starting the Air Raid Game Authored by Brian Cullen (bcullen@rossettschool.co.uk/@mrbcullen) (c) Copyright 2011 Computing At School. This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 31 Static Members Welcome to Module 16 of Programming in C++.

More information

Secrets of Profitable Freelance Writing

Secrets of Profitable Freelance Writing Secrets of Profitable Freelance Writing Proven Strategies for Finding High Paying Writing Jobs Online Nathan Segal Cover by Nathan Segal Editing Precision Proofreading Nathan Segal 2014 Secrets of Profitable

More information

C++ Game Development Cookbook

C++ Game Development Cookbook C++ Game Development Cookbook Druhin Mukherjee Click here if your download doesn"t start automatically C++ Game Development Cookbook Druhin Mukherjee C++ Game Development Cookbook Druhin Mukherjee Over

More information

Contents in Detail. Who Is This Book For?... xix What s in This Book?... xx. part I: Warming Up 1

Contents in Detail. Who Is This Book For?... xix What s in This Book?... xx. part I: Warming Up 1 Acknowledgments xvii Introduction Who Is This Book For?... xix What s in This Book?... xx Part I: Warming Up.... xx Part II: Simulating Life... xx Part III: Fun with Images... xx Part IV: Enter 3D... xx

More information

15-213/18-213/15-513, Spring 2018 C Programming Lab: Assessing Your C Programming Skills

15-213/18-213/15-513, Spring 2018 C Programming Lab: Assessing Your C Programming Skills 15-213/18-213/15-513, Spring 2018 C Programming Lab: Assessing Your C Programming Skills 1 Logistics Assigned: Tues., Jan. 16, 2018 Due: Sun., Jan. 21, 11:59 pm Last possible hand in: Sun., Jan. 21, 11:59

More information

5 Choosing keywords Initially choosing keywords Frequent and rare keywords Evaluating the competition rates of search

5 Choosing keywords Initially choosing keywords Frequent and rare keywords Evaluating the competition rates of search Seo tutorial Seo tutorial Introduction to seo... 4 1. General seo information... 5 1.1 History of search engines... 5 1.2 Common search engine principles... 6 2. Internal ranking factors... 8 2.1 Web page

More information

IT82: Multimedia Macromedia Director Practical 1

IT82: Multimedia Macromedia Director Practical 1 IT82: Multimedia Macromedia Director Practical 1 Over the course of these labs, you will be introduced Macromedia s Director multimedia authoring tool. This is the de facto standard for time-based multimedia

More information

Read & Download (PDF Kindle) Programming Python

Read & Download (PDF Kindle) Programming Python Read & Download (PDF Kindle) Programming Python If you've mastered Python's fundamentals, you're ready to start using it to get real work done. Programming Python will show you how, with in-depth tutorials

More information

Discovering the Mobile Safari Platform

Discovering the Mobile Safari Platform Introducing the iphone and ipod touch Development Platform The introduction of the iphone and subsequent unveiling of the ipod touch revolutionized the way people interacted with handheld devices. No longer

More information

Master s Thesis. Animal Stampede Simulation

Master s Thesis. Animal Stampede Simulation Master s Thesis Animal Stampede Simulation Akila Lakshminarayanan Brian Tran MSc Computer Animation and Visual Effects, NCCA 2011-2012 Abstract Large crowd scenes with humans and animals are abundant in

More information

Pointer Casts and Data Accesses

Pointer Casts and Data Accesses C Programming Pointer Casts and Data Accesses For this assignment, you will implement a C function similar to printf(). While implementing the function you will encounter pointers, strings, and bit-wise

More information

CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA

CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA CS 1510: Intro to Computing - Fall 2017 Assignment 8: Tracking the Greats of the NBA Code Due: Tuesday, November 7, 2017, by 11:59 p.m. The Assignment The purpose of this assignment is to give you more

More information

Open Food Facts : The Wikipedia of food products

Open Food Facts : The Wikipedia of food products Open Food Facts : The Wikipedia of food products Fosdem February 2018 Bruxelles @OpenFoodFacts #FOSDEM2018 Hi, I m Anca! Web Developer, working in Open Source since 2007 (for XWiki) Got involved in the

More information

T his article is downloaded from

T his article is downloaded from Fading Elements with JQuery The fade effect is when an element fades out by becoming increasingly transparent over time until it disappears or fades in by becoming decreasingly opaque over time until it

More information

Algorithm Design and Analysis. What is an Algorithm? Do Algorithms Matter?

Algorithm Design and Analysis. What is an Algorithm? Do Algorithms Matter? Algorithm Design and Analysis shereen@pacificu.edu 1 What is an Algorithm? A sequence of computational steps that transforms the input into the desired output." To be interesting, an algorithm has to solve

More information

128 Is Not Enough - Data Structures in Pure Data

128 Is Not Enough - Data Structures in Pure Data 128 Is Not Enough - Data Structures in Pure Data Frank Barknecht GOTO10 Neusser Wall 2 D-50670 Köln, Germany, fbar@footils.org Abstract A lesser known feature of Miller Puckette s popular audio and media

More information

Centura is Dynamic Gianluca Pivato F

Centura is Dynamic Gianluca Pivato F Pro Centura TM Visit us at www.propublishing.com! Hot Ideas for Centura Developers The Secret s Out: Centura is Dynamic Gianluca Pivato F or years developers have had to find creative ways to overcome

More information

Laboratory Assignment #3. Extending scull, a char pseudo-device. Summary: Objectives: Tasks:

Laboratory Assignment #3. Extending scull, a char pseudo-device. Summary: Objectives: Tasks: Laboratory Assignment #3 Extending scull, a char pseudo-device Value: (See the Grading section of the Syllabus.) Due Date and Time: (See the Course Calendar.) Summary: This is your first exercise that

More information

Javascript Coding Interview Questions And Answers In C++ Pdfs >>>CLICK HERE<<<

Javascript Coding Interview Questions And Answers In C++ Pdfs >>>CLICK HERE<<< Javascript Coding Interview Questions And Answers In C++ Pdfs Design patterns are independent of any programming language and the Programming in C++ Programming interview questions and answers in C++ Data

More information

Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0

Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0 Hands-On Workshop: 3D Automotive Graphics on Connected Radios Using Rayleigh and OpenGL ES 2.0 FTF-AUT-F0348 Hugo Osornio Luis Olea A P R. 2 0 1 4 TM External Use Agenda Back to the Basics! What is a GPU?

More information

Custom Error Pages. Overview

Custom Error Pages. Overview Custom Error Pages Overview Custom error pages can provide a very nice bit of personalization when things go wrong on your site and visitors can t find what they are looking for. It can mean the difference

More information

Kyrre Glette INF3490 Evolvable Hardware Cartesian Genetic Programming

Kyrre Glette INF3490 Evolvable Hardware Cartesian Genetic Programming Kyrre Glette kyrrehg@ifi INF3490 Evolvable Hardware Cartesian Genetic Programming Overview Introduction to Evolvable Hardware (EHW) Cartesian Genetic Programming Applications of EHW 3 Evolvable Hardware

More information

05: A Gentle Introduction to Virtools

05: A Gentle Introduction to Virtools 05: A Gentle Introduction to Virtools Download the archive for this lab Virtools is the part of this course that everyone seems to really hate. This year, we're going to do our best to go over it in several

More information

Lab 10 - Role-Playing Game

Lab 10 - Role-Playing Game UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING CMPE-13/L: COMPUTER SYSTEMS AND C PROGRAMMING SPRING 2014 Lab 10 - Role-Playing Game Introduction This lab puts together everything

More information

Add the backgrounds. Add the font.

Add the backgrounds. Add the font. To find all sprites, font, and backgrounds look in your resources folder under card game. Pick sprites for the following: The Mouse Desired Objects A disappearing animation for the desired objects Clutter

More information

oascript HowTo Kevin Nesmith Lead Engineer, Si2 June 10, 2013

oascript HowTo Kevin Nesmith Lead Engineer, Si2 June 10, 2013 oascript HowTo Kevin Nesmith Lead Engineer, Si2 June 10, 2013 1 oascript News Chip Designer Centric Python API Tcl API Ruby API Perl API Language-Specific Bindings Type Mapping Type Mapping Type Mapping

More information

Rev Up to Excel 2010

Rev Up to Excel 2010 Rev Up to Excel 2010 Upgraders Guide to Excel 2010 by Bill Jelen Published by H OLY MACRO! BOOKS PO Box 82, Uniontown, OH 44685 Contents About the Author Dedication Acknowledgements v v v Introduction

More information

CS 241 Data Organization using C

CS 241 Data Organization using C CS 241 Data Organization using C Fall 2018 Instructor Name: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Farris 2120 Office Hours: Tuesday 2-4pm and Thursday 9:30-11am

More information