3 Multimedia Programming with C++ and Multimedia Frameworks
|
|
|
- Milton Peters
- 9 years ago
- Views:
Transcription
1 3 Multimedia Programming with C++ and Multimedia Frameworks 3.1 Multimedia Support by Languages and Frameworks 3.2 Introduction to C SFML: Low-Level Multimedia/Game Framework for C Cocos2d-x: High Level Game Engine for C++ LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie 1
2 Multimedia Support is Platform Dependent Example: 2D graphics on desktop/laptop computers Multimedia Application Direct X XLib Quartz System-level graphics software Windows Linux OS X Operating system Hardware Computer/mobile device Graphics card LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie 2
3 Multimedia Abstraction Layer Multimedia Application Multimedia Abstraction Layer Direct X XLib Quartz Examples: SDL (Pygame), SFML System-level graphics software Windows Linux OS X Operating system Hardware Computer/mobile device Graphics card LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie 3
4 Core Functionality of a Multimedia Abstraction Layer Graphics Surfaces Vector Drawing Bitmap Images Sound Recording and playing Mixing Sound files and streams Moving Images Video playback Moving 2D images (sprites) Translations, transformations Input/Output and Events External devices Event queuing Network Sockets Protocol support (FTP, HTTP) Time Clock Timers LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie 4
5 Additional Functionality for Advanced Multimedia Applications (Games) Object Structure Layers, scenes Scene graphs Control Structure Activity scheduling Time containers Animation Animated images Sprite sheet support Effects Interpolators Complex transitions Physics Simulation Solid-body physics Particle effects Artificial Intelligence Game logic Adaptation LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie 5
6 High-Level Multimedia Framework Multimedia Application Advanced Functionality High-level multimedia framework Built-in Abstraction Layer Examples: Cocos2d-x, System Libraries OS Hardware LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie 6
7 Terminology Low-Level Multimedia Framework = Multimedia Abstraction Layer Platform independent media handling High-Level Multimedia Framework = Game Engine Advanced multimedia features Specific support for game functionalities In most cases includes low-level multimedia framework LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie 7
8 Pseudocode! Program Control and Frameworks main: <all preparation work> while running do: <process input> <update model> <render model> Traditional program control We write the main program Main control loop is part of our code We call functions of the framework Typical for low-level frameworks def init(): <specific preparations> def update(): <specific updates> schedule(update) Inversion of program control Main program is in the framework Main control loop does not appear in our code The framework calls our functions "Hollywood Principle" Typical for high-level frameworks LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie 8
9 Implementation Language: Criteria Handling of multimedia objects Built into the language? Available in standard library? (e.g. Yes for Java 8) Portability to target platforms Critical in case of multiple platforms, mobile platforms etc. Performance: Memory efficiency Performance: Fast execution Performance: Access to hardware accelerations Performance LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie 9
10 Python, Java, C++ Python Java C++ Ease of use easy to learn and use medium complexity rather demanding Multimedia support not standard available through frameworks (Pygame) Java 8: well-supported through built-in framework (JFX) not standard available through frameworks (SDL, SFML, Cocos2d, ) Multi-platform basically given limitations regarding multimedia frameworks very limited for mobile devices (being improved by e.g. kivy.org) basically OK single-source multiplatform limited e.g. for ios well supported through frameworks (e.g. Cocos2d-x) Performance limited limited very good (memory, native, hardware acceleration) LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie10
11 3 Multimedia Programming with C++ and Multimedia Frameworks 3.1 Multimedia Support by Languages and Frameworks 3.2 Introduction to C SFML: Low-Level Multimedia/Game Framework for C Cocos2d-x: High Level Game Engine for C++ Literature: c-and-c++-for-java-programmers.html B. Stroustrup: The C++ programming language, 4th ed., Addison-Wesley 2013 LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie 11
12 C++: History C: Dennis Ritchie, Bell Labs, , an improvement of B, which was a simplified version of BCPL Bjarne Stroustrup, Bell Labs, 1979: Extension of the C programming language for large-scale programming (16 years before Java!) ISO standard since 1998 (ISO/IEC 14882) Important late revisions and extensions, in particular C++11 (2011) C++17 in preparation Latest version: C++14 (ISO standard 14882:2014) Main features of the language: Object-oriented programming with multiple inheritance Flexible storage allocation models Templates for generic programming Lambda expressions Exception handling Powerful standard library LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie12
13 Differences Java C Type Languages Good news first: Syntax is very similar! Native compilation (C++) vs. compilation to VM (Java) Not everything has to be a class in C / C++. Preprocessor instead of import #include <string> Much more flexible (and dangerous) concept of pointers (and references): Pointers may refer to any storage area, in particular to memory on the stack! Objects can be created in C++ on the stack (static memory), not only on the heap (dynamic memory). Allocated memory on the heap (new) does not have automatic garbage collection. Memory has to be freed explicitly by "delete". LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie13
14 Pointers and References in C++ Address-of Operator (&) int myvar = 25; &myvar is the memory address of myvar (on the stack) Pointer type declaration: int* ptr = &myvar; Printing ptr shows a memory address (e.g. 0x7fff5fbff698) Dereference Operator (*) *ptr is the value at the address to which ptr currently points Printing *ptr gives the value of myvar References (rarely used): int& ref = myvar; ref is like an alias of myvar and cannot be re-assigned LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie14
15 Multiple Files, Header Files Using an additional cpp file: Create additional header file: Counter.cpp and Counter.hpp Header file: Contains declarations, is used to refer to the contents of the additional file In Counter.cpp and wherever Counter.cpp is used (e.g. in Main.cpp): #include "Counter.hpp" Macros needed to avoid multiple declarations: #ifndef Counter_hpp #define Counter_hpp // Declarations go here #endif /* Counter_hpp */ LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie15
16 Counter Class in C++, Header File #ifndef Counter_hpp #define Counter_hpp class Counter { int k; public: Counter(); void count(); int getvalue(); ; #endif /* Counter_hpp */ Note: Using one pair of files for a class is just a recommendation not required by C++ Counter.hpp LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie16
17 Counter Class in C++, Body File #include "Counter.hpp" Counter::Counter() { k = 0; void Counter::count() { k++; int Counter::getValue() { return k; Counter.cpp LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie17
18 Counter Class in C++, Main Program #include <iostream> #include "Counter.hpp" int main(int argc, const char * argv[]) { // New counter instance (on stack) Counter ctr; std::cout << "Value of ctr: " << ctr.getvalue() << std::endl; ctr.count(); std::cout << "Value of ctr: " << ctr.getvalue() << std::endl; return 0; main.cpp LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie18
19 C++: Scope Resolution and Namespaces Scope operator (::) of C++: Various purposes First main purpose: Implementing member functions of classes outside the actual class Example Counter::count() In this case, only the function prototype is declared within the class Second main purpose: Qualifying identifiers as belonging to a certain namespace Example std::cout which belongs to the std namespace Declaring a new namespace: namespace ns_name { declarations ; Using a given namespace for unqualified identifiers: using namespace ns_name; LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie19
20 3 Multimedia Programming with C++ and Multimedia Frameworks 3.1 Multimedia Support by Languages and Frameworks 3.2 Introduction to C SFML: Low-Level Multimedia/Game Library for C Cocos2d-x: High Level Game Engine for C++ Literature: M. G. Milchev: SFML Essentials, Packt Publishing 2015 LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie20
21 SFML: Simple and Fast Multimedia Library Relatively modern multimedia abstraction layer for C++ Initiator and head of development: Laurent Gomila (France) Latest version: (September 2015) LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie21
22 Slide Show with SFML (1) #include <SFML/Graphics.hpp> #include "ResourcePath.hpp" #include <array> //Global dimensions const int SCREEN_WIDTH = 712; const int SCREEN_HEIGHT = 712; const int OFFSET_HOR = 100; const int OFFSET_VER = 100; //Directory name for pictures const std::string gpicsdir = "pics"; //Picture file names const int NUM_PICS = 4; std::array<std::string, NUM_PICS> gpicfiles = {"frog.jpg","cows.jpg","elephant.jpg","tiger.jpg"; const sf::color bg = sf::color(255, 228, 95, 255); //background color const sf::time interval = sf::seconds(4.); LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie22
23 Slide Show with SFML (2) int main(int, char const**) { // Create the main window sf::renderwindow window (sf::videomode(screen_width, SCREEN_HEIGHT), "SFML Slide Show"); //Load pictures sf::texture loadedpics[num_pics]; for(int i = 0; i < NUM_PICS; i++) { std::string picpath = resourcepath() +gpicsdir+"/"+gpicfiles[i]; if (!loadedpics[i].loadfromfile(picpath)) { return EXIT_FAILURE; //Create a sprite to display sf::sprite sprite; sprite.setscale(sf::vector2f(2.f, 2.f)); sprite.setposition(sf::vector2f(offset_hor, OFFSET_VER)); LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie23
24 Slide Show with SFML (3) //Main loop int slideindex = 0; //Index of picture to be shown bool updatepicture = true; //Do we need to change the picture? sf::clock clock; //Create and start timer sf::time timer; while (window.isopen()) { //Display next picture if necessary if (updatepicture) { //Clear screen window.clear(bg); //Set picture and draw the sprite sprite.settexture(loadedpics[slideindex]); window.draw(sprite); //Update the window window.display(); updatepicture = false; // Set timer timer = clock.getelapsedtime(); LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie24
25 Slide Show with SFML (4) // Process events sf::event event; while (window.pollevent(event)) { // Close window: exit if (event.type == sf::event::closed) { window.close(); // Arrow left pressed: previous picture if (event.type == sf::event::keypressed && event.key.code == sf::keyboard::left) { slideindex = (slideindex+num_pics-1) % NUM_PICS; //Strange C++ modulo updatepicture = true; // Arrow right pressed: next picture if (event.type == sf::event::keypressed && event.key.code == sf::keyboard::right) { slideindex = (slideindex+1) % NUM_PICS; updatepicture = true; LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie25
26 Slide Show with SFML (5) // Check time interval if (clock.getelapsedtime() > timer+interval) { slideindex = (slideindex+1) % NUM_PICS; updatepicture = true; return EXIT_SUCCESS; LMU München, Sommer 2016 Prof. Hußmann: Multimedia-Programmierung Kapitel 3 Teil a, Folie26
3 Multimedia Programming with C++ and Multimedia Frameworks
3 Multimedia Programming with C++ and Multimedia Frameworks 3.1 Multimedia Support by Languages and Frameworks 3.2 Introduction to C++ 3.3 SFML: Low-Level Multimedia/Game Framework for C++ 3.4 Cocos2d-x:
6 Images, Vector Graphics, and Scenes
6 Images, Vector Graphics, and Scenes 6.1 Image Buffers 6.2 Structured Graphics: Scene Graphs 6.3 Sprites Literature: R. Nystrom: Game Programming Patterns, genever banning 2014, Chapter 8, see also http://gameprogrammingpatterns.com/double-buffer.html
CSC230 Getting Starting in C. Tyler Bletsch
CSC230 Getting Starting in C Tyler Bletsch What is C? The language of UNIX Procedural language (no classes) Low-level access to memory Easy to map to machine language Not much run-time stuff needed Surprisingly
Comp151. Definitions & Declarations
Comp151 Definitions & Declarations Example: Definition /* reverse_printcpp */ #include #include using namespace std; int global_var = 23; // global variable definition void reverse_print(const
URI and UUID. Identifying things on the Web.
URI and UUID Identifying things on the Web. Overview > Uniform Resource Identifiers (URIs) > URIStreamOpener > Universally Unique Identifiers (UUIDs) Uniform Resource Identifiers > Uniform Resource Identifiers
2! Multimedia Programming with! Python and SDL
2 Multimedia Programming with Python and SDL 2.1 Introduction to Python 2.2 SDL/Pygame: Multimedia/Game Frameworks for Python Literature: G. van Rossum and F. L. Drake, Jr., An Introduction to Python -
The C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
C++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
Visual Studio 2008 Express Editions
Visual Studio 2008 Express Editions Visual Studio 2008 Installation Instructions Burning a Visual Studio 2008 Express Editions DVD Download (http://www.microsoft.com/express/download/) the Visual Studio
C++ Overloading, Constructors, Assignment operator
C++ Overloading, Constructors, Assignment operator 1 Overloading Before looking at the initialization of objects in C++ with constructors, we need to understand what function overloading is In C, two functions
IS0020 Program Design and Software Tools Midterm, Feb 24, 2004. Instruction
IS0020 Program Design and Software Tools Midterm, Feb 24, 2004 Name: Instruction There are two parts in this test. The first part contains 50 questions worth 80 points. The second part constitutes 20 points
An Incomplete C++ Primer. University of Wyoming MA 5310
An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages
6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang
6.088 Intro to C/C++ Day 4: Object-oriented programming in C++ Eunsuk Kang and Jean Yang Today s topics Why objects? Object-oriented programming (OOP) in C++ classes fields & methods objects representation
Copyright 2001, Bill Trudell. Permission is granted to copy for the PLoP 2001 conference. All other rights reserved.
The Secret Partner Pattern Revision 3a by Bill Trudell, July 23, 2001 Submitted to the Pattern Languages of Programs Shepherd: Neil Harrison PC Member: Kyle Brown Thumbnail This paper describes the Secret
CORBA Programming with TAOX11. The C++11 CORBA Implementation
CORBA Programming with TAOX11 The C++11 CORBA Implementation TAOX11: the CORBA Implementation by Remedy IT TAOX11 simplifies development of CORBA based applications IDL to C++11 language mapping is easy
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
Sources: On the Web: Slides will be available on:
C programming Introduction The basics of algorithms Structure of a C code, compilation step Constant, variable type, variable scope Expression and operators: assignment, arithmetic operators, comparison,
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
Keil C51 Cross Compiler
Keil C51 Cross Compiler ANSI C Compiler Generates fast compact code for the 8051 and it s derivatives Advantages of C over Assembler Do not need to know the microcontroller instruction set Register allocation
Virtuozzo Virtualization SDK
Virtuozzo Virtualization SDK Programmer's Guide February 18, 2016 Copyright 1999-2016 Parallels IP Holdings GmbH and its affiliates. All rights reserved. Parallels IP Holdings GmbH Vordergasse 59 8200
Moving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
1 Abstract Data Types Information Hiding
1 1 Abstract Data Types Information Hiding 1.1 Data Types Data types are an integral part of every programming language. ANSI-C has int, double and char to name just a few. Programmers are rarely content
Informatica e Sistemi in Tempo Reale
Informatica e Sistemi in Tempo Reale Introduction to C programming Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa October 25, 2010 G. Lipari (Scuola Superiore Sant Anna)
Information Technology Career Field Pathways and Course Structure
Information Technology Career Field Pathways and Course Structure Courses in Information Support and Services (N0) Computer Hardware 2 145025 Computer Software 145030 Networking 2 145035 Network Operating
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
Crash Course in Java
Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is
Course MS10975A Introduction to Programming. Length: 5 Days
3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: [email protected] Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days
Programming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
C++ Crash Kurs. C++ Object-Oriented Programming
C++ Crash Kurs C++ Object-Oriented Programming Dr. Dennis Pfisterer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/pfisterer C++ classes A class is user-defined type
Surface and Volumetric Data Rendering and Visualisation
Surface and Volumetric Data Rendering and Visualisation THE Qt TOOLKIT Department of Information Engineering Faculty of Engineering University of Brescia Via Branze, 38 25231 Brescia - ITALY 1 What is
How to: Use Basic C++, Syntax and Operators
June 7, 1999 10:10 owltex Sheet number 22 Page number 705 magenta black How to: Use Basic C++, Syntax and Operators A In this How to we summarize the basic syntax of C++ and the rules and operators that
Abstractions from Multimedia Hardware. Libraries. Abstraction Levels
Abstractions from Multimedia Hardware Chapter 2: Basics Chapter 3: Multimedia Systems Communication Aspects and Services Chapter 4: Multimedia Systems Storage Aspects Chapter 5: Multimedia Usage and Applications
Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority)
Boolean Expressions, Conditions, Loops, and Enumerations Relational Operators == // true if two values are equivalent!= // true if two values are not equivalent < // true if left value is less than the
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C
Embedded Programming in C/C++: Lesson-1: Programming Elements and Programming in C 1 An essential part of any embedded system design Programming 2 Programming in Assembly or HLL Processor and memory-sensitive
C++ for Safety-Critical Systems. DI Günter Obiltschnig Applied Informatics Software Engineering GmbH guenter.obiltschnig@appinf.
C++ for Safety-Critical Systems DI Günter Obiltschnig Applied Informatics Software Engineering GmbH [email protected] A life-critical system or safety-critical system is a system whose failure
Konzepte objektorientierter Programmierung
Konzepte objektorientierter Programmierung Prof. Dr. Peter Müller Werner Dietl Software Component Technology Exercises 3: Some More OO Languages Wintersemester 04/05 Agenda for Today 2 Homework Finish
Fundamentals of Computer Science (FCPS) CTY Course Syllabus
Fundamentals of Computer Science (FCPS) CTY Course Syllabus Brief Schedule Week 1 Introduction and definition Logic and Gates Hardware Systems Binary number and math Machine/Assembly Language Week 2 Operating
C++ Programming Language
C++ Programming Language Lecturer: Yuri Nefedov 7th and 8th semesters Lectures: 34 hours (7th semester); 32 hours (8th semester). Seminars: 34 hours (7th semester); 32 hours (8th semester). Course abstract
Coding conventions and C++-style
Chapter 1 Coding conventions and C++-style This document provides an overview of the general coding conventions that are used throughout oomph-lib. Knowledge of these conventions will greatly facilitate
Short Notes on Dynamic Memory Allocation, Pointer and Data Structure
Short Notes on Dynamic Memory Allocation, Pointer and Data Structure 1 Dynamic Memory Allocation in C/C++ Motivation /* a[100] vs. *b or *c */ Func(int array_size) double k, a[100], *b, *c; b = (double
Illustration 1: Diagram of program function and data flow
The contract called for creation of a random access database of plumbing shops within the near perimeter of FIU Engineering school. The database features a rating number from 1-10 to offer a guideline
Drawing Text with SDL
Drawing Text with SDL Note: This tutorial assumes that you already know how to display a window and draw a sprite with SDL. Setting Up the SDL TrueType Font Library To display text with SDL, you need the
Lecture 22: C Programming 4 Embedded Systems
Lecture 22: C Programming 4 Embedded Systems Today s Goals Basic C programming process Variables and constants in C Pointers to access addresses Using a High Level Language High-level languages More human
CSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College November 25, 2015 Outline Outline 1 Chapter 12: C++ Templates Outline Chapter 12: C++ Templates 1 Chapter 12: C++ Templates
Channel Access Client Programming. Andrew Johnson Computer Scientist, AES-SSG
Channel Access Client Programming Andrew Johnson Computer Scientist, AES-SSG Channel Access The main programming interface for writing Channel Access clients is the library that comes with EPICS base Written
C# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
Outline. 1.! Development Platforms for Multimedia Programming!
Outline 1.! Development Platforms for Multimedia Programming! 1.1.! Classification of Development Platforms! 1.2.! A Quick Tour of Various Development Platforms! 2.! Multimedia Programming with Python
iphone Objective-C Exercises
iphone Objective-C Exercises About These Exercises The only prerequisite for these exercises is an eagerness to learn. While it helps to have a background in object-oriented programming, that is not a
COS 217: Introduction to Programming Systems
COS 217: Introduction to Programming Systems 1 Goals for Todayʼs Class Course overview Introductions Course goals Resources Grading Policies Getting started with C C programming language overview 2 1 Introductions
CURRICULUM VITAE EDUCATION:
CURRICULUM VITAE Jose Antonio Lozano Computer Science and Software Development / Game and Simulation Programming Program Chair 1902 N. Loop 499 Harlingen, TX 78550 Computer Sciences Building Office Phone:
Operator Overloading. Lecture 8. Operator Overloading. Running Example: Complex Numbers. Syntax. What can be overloaded. Syntax -- First Example
Operator Overloading Lecture 8 Operator Overloading C++ feature that allows implementer-defined classes to specify class-specific function for operators Benefits allows classes to provide natural semantics
ELEC 377. Operating Systems. Week 1 Class 3
Operating Systems Week 1 Class 3 Last Class! Computer System Structure, Controllers! Interrupts & Traps! I/O structure and device queues.! Storage Structure & Caching! Hardware Protection! Dual Mode Operation
Practical Data Visualization and Virtual Reality. Virtual Reality VR Software and Programming. Karljohan Lundin Palmerius
Practical Data Visualization and Virtual Reality Virtual Reality VR Software and Programming Karljohan Lundin Palmerius Synopsis Scene graphs Event systems Multi screen output and synchronization VR software
Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.
Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to
The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design
Java in Education Introduction Choosing appropriate tool for creating multimedia is the first step in multimedia design and production. Various tools that are used by educators, designers and programmers
Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries
First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as
Department of Computer Science
University of Denver 1 Department of Computer Science Office: Aspen Hall North, Suite 100 Mail Code: 2280 S. Vine St. Denver, CO 80208 Phone: 303-871-3010 Email: [email protected] Web Site: http://www.du.edu/rsecs/departments/cs
Chapter One Introduction to Programming
Chapter One Introduction to Programming 1-1 Algorithm and Flowchart Algorithm is a step-by-step procedure for calculation. More precisely, algorithm is an effective method expressed as a finite list of
Phys4051: C Lecture 2 & 3. Comment Statements. C Data Types. Functions (Review) Comment Statements Variables & Operators Branching Instructions
Phys4051: C Lecture 2 & 3 Functions (Review) Comment Statements Variables & Operators Branching Instructions Comment Statements! Method 1: /* */! Method 2: // /* Single Line */ //Single Line /* This comment
Note: Syntactically, a ; is needed at the end of a struct definition.
Structs, Classes, and Arrays Structs A type representation containing a set of heterogeneous members with possibly varying types. struct Student { string name; int id; double tuition; ; Note: Syntactically,
ANIMATION a system for animation scene and contents creation, retrieval and display
ANIMATION a system for animation scene and contents creation, retrieval and display Peter L. Stanchev Kettering University ABSTRACT There is an increasing interest in the computer animation. The most of
1 bool operator==(complex a, Complex b) { 2 return a.real()==b.real() 3 && a.imag()==b.imag(); 4 } 1 bool Complex::operator==(Complex b) {
Operators C and C++ 6. Operators Inheritance Virtual Alastair R. Beresford University of Cambridge Lent Term 2008 C++ allows the programmer to overload the built-in operators For example, a new test for
Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students
Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent
C++ program structure Variable Declarations
C++ program structure A C++ program consists of Declarations of global types, variables, and functions. The scope of globally defined types, variables, and functions is limited to the file in which they
Open Source building blocks for the Internet of Things. Benjamin Cabé JFokus 2013
Open Source building blocks for the Internet of Things Benjamin Cabé JFokus 2013 Who I am Benjamin Cabé Open Source M2M Evangelist at Sierra Wireless Long-time Eclipse lover M2M? IoT? Technology that supports
Ubuntu. Ubuntu. C++ Overview. Ubuntu. History of C++ Major Features of C++
Ubuntu You will develop your course projects in C++ under Ubuntu Linux. If your home computer or laptop is running under Windows, an easy and painless way of installing Ubuntu is Wubi: http://www.ubuntu.com/download/desktop/windowsinstaller
1 Introduction: Network Applications
1 Introduction: Network Applications Some Network Apps E-mail Web Instant messaging Remote login P2P file sharing Multi-user network games Streaming stored video clips Internet telephone Real-time video
PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?
1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members
Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
Chapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
Semester Review. CSC 301, Fall 2015
Semester Review CSC 301, Fall 2015 Programming Language Classes There are many different programming language classes, but four classes or paradigms stand out:! Imperative Languages! assignment and iteration!
Computer Programming C++ Classes and Objects 15 th Lecture
Computer Programming C++ Classes and Objects 15 th Lecture 엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University Copyrights 2013 Eom, Hyeonsang All Rights Reserved Outline
Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child
Introducing A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child Bio Tim Child 35 years experience of software development Formerly VP Oracle Corporation VP BEA Systems Inc.
6.S096 Lecture 1 Introduction to C
6.S096 Lecture 1 Introduction to C Welcome to the Memory Jungle Andre Kessler Andre Kessler 6.S096 Lecture 1 Introduction to C 1 / 30 Outline 1 Motivation 2 Class Logistics 3 Memory Model 4 Compiling 5
Chapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
sqlpp11 - An SQL Library Worthy of Modern C++
2014-09-11 Code samples Prefer compile-time and link-time errors to runtime errors Scott Meyers, Effective C++ (2nd Edition) Code samples Let s look at some code String based In the talk, we looked at
Operating Systems. Privileged Instructions
Operating Systems Operating systems manage processes and resources Processes are executing instances of programs may be the same or different programs process 1 code data process 2 code data process 3
Programing the Microprocessor in C Microprocessor System Design and Interfacing ECE 362
PURDUE UNIVERSITY Programing the Microprocessor in C Microprocessor System Design and Interfacing ECE 362 Course Staff 1/31/2012 1 Introduction This tutorial is made to help the student use C language
Coding Rules. Encoding the type of a function into the name (so-called Hungarian notation) is forbidden - it only confuses the programmer.
Coding Rules Section A: Linux kernel style based coding for C programs Coding style for C is based on Linux Kernel coding style. The following excerpts in this section are mostly taken as is from articles
Reading and Writing PCD Files The PCD File Format The Grabber Interface Writing a Custom Grabber PCL :: I/O. Suat Gedikli, Nico Blodow
PCL :: I/O Suat Gedikli, Nico Blodow July 1, 2011 Outline 1. Reading and Writing PCD Files 2. The PCD File Format 3. The Grabber Interface 4. Writing a Custom Grabber global functions in the namespace
To Java SE 8, and Beyond (Plan B)
11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption
Learning Computer Programming using e-learning as a tool. A Thesis. Submitted to the Department of Computer Science and Engineering.
Learning Computer Programming using e-learning as a tool. A Thesis Submitted to the Department of Computer Science and Engineering of BRAC University by Asharf Alam Student ID: 03101011 Md. Saddam Hossain
CpSc212 Goddard Notes Chapter 6. Yet More on Classes. We discuss the problems of comparing, copying, passing, outputting, and destructing
CpSc212 Goddard Notes Chapter 6 Yet More on Classes We discuss the problems of comparing, copying, passing, outputting, and destructing objects. 6.1 Object Storage, Allocation and Destructors Some objects
INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency
INTERNET PROGRAMMING AND DEVELOPMENT AEC LEA.BN Course Descriptions & Outcome Competency 1. 420-PA3-AB Introduction to Computers, the Internet, and the Web This course is an introduction to the computer,
Network Programming. Writing network and internet applications.
Network Programming Writing network and internet applications. Overview > Network programming basics > Sockets > The TCP Server Framework > The Reactor Framework > High Level Protocols: HTTP, FTP and E-Mail
Object Oriented Software Design II
Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February
System Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
Apache Thrift and Ruby
Apache Thrift and Ruby By Randy Abernethy In this article, excerpted from The Programmer s Guide to Apache Thrift, we will install Apache Thrift support for Ruby and build a simple Ruby RPC client and
