Introduction to Test Driven Development (To be used throughout the course)
|
|
- Deirdre Reed
- 5 years ago
- Views:
Transcription
1 Introduction to Test Driven Development (To be used throughout the course) Building tests and code for a software radio Concepts Stages in a conventional radio Stages in a software radio Goals for the long term project Concept of test driven development Digital rectification Tests for integer array rectification Tests for float array rectification (C++ compiler) Tests for rectification in assembly code More details of test driven development 2/ 28 Conventional AM radio Antenna Pickup Local Oscillator RF STAGE Mixer IF STAGE Rectifier AUDIO STAGE + amplifier Audio out Review of AM radio operation Analog Version Incoming frequency 1010 khz IF-STAGE Local (tunable) 660 khz Mixed with incoming signal (multiplication) Get sum and difference frequencies 350 khz and 1670 khz filter to get constant frequency for remainder of audio date at 350 khz AUDIO STAGE Rectify signal to get AM modulation Rectification means that you spread the signal over a wide band of frequencies filter to get required audio range 50Hz to 7 khz 3/ 28 4/ 28
2 Software AM radio concept Software FM radio concept RF STAGE Antenna Pickup AUDIO STAGE RF STAGE AUDIO STAGE Mixer Rectifier + amplifier Antenna Pickup What ever is needed Rectifier + amplifier Local Oscillator IF STAGE Audio out Audio out Most stages handled with high speed software Most stages handled with high speed software 5/ 28 6/ 28 Real software radio Looking at RF stage to bring in wireless signal Software radio is the rest of it Update communication protocols Change noise suppression characteristics on the fly Etc. Dr. Gannouchi is doing research in this area Joint M. Sc. student Andrew Kwan Excellent topic for pair presentation (12 minute talk 14 slides max at the end of term). Exact details to be given later. A basic example for the coding practices adopted through the term Going to use the rectification stage of this softradio as a code example all through the course. We may also look at single-side band modulation (involves IIR filtering) as a second code example followed all though the term. 7/ 28 8/ 28
3 Customer Requirements Wants to get product out of the door as fast as possible Less time spend on development the better, but it has to work Developing in C++ is easier than developing in assembler code, but is it fast enough Risk analysis take one representative part of the code and explain the differences between the speeds from C++ code (Debug and Release Mode) and assembly code Expected relative advantages Compiler debug mode Slow but easy to understand the code flow when doing very low level debug at assembly level (A real NO-NO) Compiler release (optimized) mode Faster than debug mode Optimized, possibly out of order instructions, difficult to follow US assembly mode Probably faster than compiler debug Gain skills needed to handle optimized assembly US optimized assembly mode Time consuming; use only after profiling the compiler code Faster than compiler when we understand the special situations that arise Probably based on trying assembly code to see where the issues are, then optimizing the output from the release compiler version 9/ / 28 Standard testing practice Test Driven Development Heavy on documentation Describe Requirements Design Solution Build Solution Test Solution Analysis Document Design Document Test Plan Document TLD Test Last Development Requires automated testing framework High Level customer tests for embedded systems personally find these hard to do. This example is an exception because we have really knowledgeable customer. Done in consultation with customer. Even better if customer writes the tests. Doing research into developing a process for this. Read paper handed out Developer Tests for embedded systems E-TDD Have found many advantages research and teaching Being used by local firm 11 / / 28
4 Test Driven Development Work with customer to check that the tests properly express what the customer wants done. Iterative process with customer heavily involved Agile methodology. CUSTOMER DEVELOPER Describe Requirements Design Solution Acceptance Tests Unit Tests Lets apply TDD to rectification issue Overall technique Decide on a particular test action with the customer the test(s) the simplest possible code to satisfy the test(s) Refactor the code to improve quality Definition of quality is unclear in the literature Ease of use or reuse of code Reliable to use robust My additional idea meets speed requirements for the embedded situation Build Solution Test Solution See paper handed out for more details 13 / / 28 Express Customer Requirements as tests using E-TDD Tests Now expand the Customer Tests to do what the customer has requested 15 / / 28
5 Note that writing the tests has automatically generated the function interface information Floating point version of the Tests Essentially a cut-and-paste version of integer code Why int* and float* rather than just void as you are passing in the address of the output Design decision sort of standard with C to pass back a pointer to thing being changed 17 / / 28 Stage 1 Compile / Link the tests Obviously the Link is not going to work as the code for functions HalfWaveRectifyXXX( ) have not been written If obviously going to fail WB (why bother)? Basically You are TESTING THE TESTS Are you calling the functions you expect to call. Better handled by doing Code Review first, and then use compiler / linker to CHECK the Code Review did not miss something (PSP personal software process). C++ can overload function names (done via name mangling). What are the name-mangled names needed for the assembly code? This stage will show you. Name mangled names can be seen from linker C++ name as used The name mangled name generated by in C++ code by the C++ compiler in response to function overloading. These are the assembly code names 19 / / 28
6 Next step: just enough code to satisfy the linker C++ stubs Problems uncovered The following unanswered question has been raised when developing the C++ code How does the processor know how to run a function in debug mode or in release mode? Explain later compiler option which you will use during Assignment 1 Just how do you write an assembly code stub? 21 / / 28 assembly code using a couple of techniques Assembly code stubs assemble (compile) but generate 200 linker error messages Use knowledge of what you need to do from other assembly code functions Need to specify section of memory where the code will be placed Need to specify name of function (linker told us that) Need to do a return to C Cheat -- use mixed mode in IDDE Compile and link a C++ function with the same name (in debug mode). Load the code into the processor Bring up the source code window, right click and select MIXED MODE 23 / / 28
7 Understanding the error messages TigerSHARC is a high speed processor designed for 32-bit operation 68K designed for 8-bit and 16-bit. Can do 32-bit but much slower Blackfin designed for 16-bit and 32-bit. Can do 8-bit but slower. Strings are normally handled as 8-bit characters TigerSHARC has two character modes CHAR8 bit like normal C++ string, minimizes space usage, but slow. CHAR32 bit Maximizes speed, but storage area is larger C++ compiler (debug mode) normally generates CHAR32 type of strings so we must do that in our assembly code. Fix the code for CHAR32, and run the tests We lost control of the processors in the debug environment. 25 / / 28 Why did we lose control? IDDE environment uses a boundary scan approach to debug (another lecture) That s the ICE interface discussed in Tuesday s class It is possible to get the IDDE environment (on the PC) out of sync with the processors (on the evaluation board). I find this happens when I generate poor code, or when I spent a lot of time coding before down loading anything to the board Recovery process Don t lose control write good code Do incremental builds so you are continually writing and testing code E-TDD encourages this write a test, then write just enough code to satisfy the tests If you lose control Try selecting each processor (DSPA then DSPB) in processor window. Then select DEBUG HALT If that fails, then in this order (easier restart process) 1. Exit from E-TDD GUI, 2. Exit from VisualDSP IDDE 3. Power down the board 4. Walk-around your chair twice (or count to 10) 5. Power up board, then reactivate VisualDSP IDDE and the GUI 27 / / 28
8 We accidentally pass some tests without writing any code With the GUI running, we can just click on failed test to see details 29 / / 28 Concepts covered Stages in a conventional radio Stages in a software radio Goals for the long term project Concept of test driven development Digital rectification Tests for integer array rectification Tests for float array rectification (C++ compiler) Tests for rectification in assembly code More details of test driven development 31 / 28
Generating Rectify( ) Test driven development approach to TigerSHARC
Generating Rectify( ) Test driven development approach to TigerSHARC assembly code production Assembly code examples Part 1 of 3 Concepts Concepts of C++ stubs Forcing the test to fail test of test Generating
More informationAutomated Testing Environment
Automated Testing Environment Concepts required for testing embedded systems adopted in this course (quizzes, assignments and laboratories) 1 To be tackled today Why test, and what kinds of tests are there?
More informationWorking with the Compute Block
Tackled today Working with the Compute Block M. R. Smith, ECE University of Calgary Canada Problems with using I-ALU as an integer processor TigerSHARC processor architecture What features are available
More informationLaboratory 1 Manual V1.2 1 st September 2007 Developing a Blackfin GPIO interface using an automated embedded testing environment
Laboratory 1 Manual V1.2 1 st September 2007 Developing a Blackfin GPIO interface using an automated embedded testing environment These pages are cut-and-paste from the Lab. 1 web-pages. I have not spent
More informationTigerSHARC processor and evaluation board
Concepts tackled TigerSHARC processor and evaluation board Different capabilities Different functionality Differences between processor and evaluation board Functionality present on TigerSHARC evaluation
More informationThe Concept of Sample Rate. Digitized amplitude and time
Data Acquisition Basics Data acquisition is the sampling of continuous real world information to generate data that can be manipulated by a computer. Acquired data can be displayed, analyzed, and stored
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #29 Arrays in C
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #29 Arrays in C (Refer Slide Time: 00:08) This session will learn about arrays in C. Now, what is the word array
More informationThese are notes for the third lecture; if statements and loops.
These are notes for the third lecture; if statements and loops. 1 Yeah, this is going to be the second slide in a lot of lectures. 2 - Dominant language for desktop application development - Most modern
More informationCSE / ENGR 142 Programming I
CSE / ENGR 142 Programming I Variables, Values, and Types Chapter 2 Overview Chapter 2: Read Sections 2.1-2.6, 2.8. Long chapter, short snippets on many topics Later chapters fill in detail Specifically:
More informationCredit where Credit is Due. Lecture 29: Test-Driven Development. Test-Driven Development. Goals for this lecture
Lecture 29: Test-Driven Development Kenneth M. Anderson Object-Oriented Analysis and Design CSCI 6448 - Spring Semester, 2003 Credit where Credit is Due Some of the material for this lecture is taken from
More informationProgramming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Programming in C++ Indian Institute of Technology, Kharagpur
Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Programming in C++ Indian Institute of Technology, Kharagpur Lecture 14 Default Parameters and Function Overloading
More informationAgile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?
Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.
More informationWELCOME! (download slides and.py files and follow along!) LECTURE 1
WELCOME! (download slides and.py files and follow along!) 6.0001 LECTURE 1 6.0001 LECTURE 1 1 TODAY course info what is computation python basics mathematical operations python variables and types NOTE:
More informationENCM511 Assignment 1 Version 16 September 2012
ENCM511 Assignment 1 Version 16 September 2012 This is an individual assignment, essentially a take home quiz. This means the purpose behind this assignment is for YOU to show the skills learnt during
More informationBuilding a COFFEE POT simulation on CCESS for Blackfin BF533
Building a COFFEE POT simulation on CCESS 2.6.0 for Blackfin BF533 Last lecture covered some detailed ideas Let step back and do something simpler to get an introduction of ideas needed for Lab0 and Assignment
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #44. Multidimensional Array and pointers
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #44 Multidimensional Array and pointers In this video, we will look at the relation between Multi-dimensional
More informationSection 2 Introduction to VisualDSP++
Section 2 Introduction to VisualDSP++ 2-1 a VisualDSP++ 4.0 VisualDSP++ is an integrated development environment that enables efficient management of projects. Key Features Include: Editing Building Compiler,
More informationVisualDSP ADSP and ADSP EZ-Boards Release Notes Revision 1.0 March 25, 2010
VisualDSP++ 5.0 ADSP-21479 and ADSP-21489 EZ-Boards Release Notes Revision 1.0 March 25, 2010 Table of Contents ADSP-21479 and ADSP-21489 EZ-Boards... A-2 Installation... A-2 Identifying Your VisualDSP++
More informationDocumentation Nick Parlante, 1996.Free for non-commerical use.
Documentation Nick Parlante, 1996.Free for non-commerical use. A program expresses an algorithm to the computer. A program is clear or "readable" if it also does a good job of communicating the algorithm
More informationCoding Workshop. Learning to Program with an Arduino. Lecture Notes. Programming Introduction Values Assignment Arithmetic.
Coding Workshop Learning to Program with an Arduino Lecture Notes Table of Contents Programming ntroduction Values Assignment Arithmetic Control Tests f Blocks For Blocks Functions Arduino Main Functions
More informationOverview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.
Overview CS 619 Introduction to OO Design and Development ing! Preliminaries! All sorts of test techniques! Comparison of test techniques! Software reliability Fall 2012! Main issues: There are a great
More informationData Structure Series
Data Structure Series This series is actually something I started back when I was part of the Sweet.Oblivion staff, but then some things happened and I was no longer able to complete it. So now, after
More informationDesign and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis
Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute Week 02 Module 06 Lecture - 14 Merge Sort: Analysis So, we have seen how to use a divide and conquer strategy, we
More informationFraction Arithmetic. A proper fraction is a fraction with a smaller numerator than denominator.
Fraction Arithmetic FRAX is a game that is designed to help you and your student/child master fractions, but it does not teach them the basics. I ve put together this document to help remind you about
More informationChapters 1 & 2 Programming and Programs
Chapters 1 & 2 Programming and Programs Instructor: Dr. Hyunyoung Lee Based on slides by Dr. Bjarne Stroustrup www.stroustrup.com/programming Abstract Today, we ll outline the aims for this course and
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #16 Loops: Matrix Using Nested for Loop
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #16 Loops: Matrix Using Nested for Loop In this section, we will use the, for loop to code of the matrix problem.
More informationTemplating functions. Comp Sci 1570 Introduction to C++ Administrative notes. Review. Templates. Compiler processing. Functions Overloading
s s in Templating functions Comp Sci 1570 Introduction to Outline s s in 1 2 3 s s in 4 Test 1 grade distribution grade on y, each student on x, sorted by y s s in 50 or below should talk to me. Outline
More informationChapter 2 Basic Elements of C++
C++ Programming: From Problem Analysis to Program Design, Fifth Edition 2-1 Chapter 2 Basic Elements of C++ At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class Discussion
More informationLecture 05 I/O statements Printf, Scanf Simple statements, Compound statements
Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 05 I/O statements Printf, Scanf Simple
More informationC++ Support Classes (Data and Variables)
C++ Support Classes (Data and Variables) School of Mathematics 2018 Today s lecture Topics: Computers and Programs; Syntax and Structure of a Program; Data and Variables; Aims: Understand the idea of programming
More information(Refer Slide Time: 1:27)
Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data
More informationTest-Driven Development
Test-Driven Development Kenneth M. Anderson University of Colorado, Boulder CSCI 4448/6448 Lecture 27 12/2/08 University of Colorado, 2008 Credit where Credit is Due Some of the material for this lecture
More informationCS61C Machine Structures. Lecture 4 C Pointers and Arrays. 1/25/2006 John Wawrzynek. www-inst.eecs.berkeley.edu/~cs61c/
CS61C Machine Structures Lecture 4 C Pointers and Arrays 1/25/2006 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L04 C Pointers (1) Common C Error There is a difference
More informationModule 10A Lecture - 20 What is a function? Why use functions Example: power (base, n)
Programming, Data Structures and Algorithms Prof. Shankar Balachandran Department of Computer Science and Engineering Indian Institute of Technology, Madras Module 10A Lecture - 20 What is a function?
More informationThe Software Stack: From Assembly Language to Machine Code
COMP 506 Rice University Spring 2018 The Software Stack: From Assembly Language to Machine Code source code IR Front End Optimizer Back End IR target code Somewhere Out Here Copyright 2018, Keith D. Cooper
More informationINITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS
INITIALISING POINTER VARIABLES; DYNAMIC VARIABLES; OPERATIONS ON POINTERS Pages 792 to 800 Anna Rakitianskaia, University of Pretoria INITIALISING POINTER VARIABLES Pointer variables are declared by putting
More informationREPORT MICROSOFT PATTERNS AND PRACTICES
REPORT MICROSOFT PATTERNS AND PRACTICES Corporate Headquarters Nucleus Research Inc. 100 State Street Boston, MA 02109 Phone: +1 617.720.2000 Nucleus Research Inc. TOPICS Application Development & Integration
More informationData Structures Lecture 2 : Part 1: Programming Methodologies Part 2: Memory Management
0 Data Structures Lecture 2 : Part 2: Memory Management Dr. Essam Halim Houssein Lecturer, Faculty of Computers and Informatics, Benha University 2 Programming methodologies deal with different methods
More informationAll you need is fun. Cons T Åhs Keeper of The Code
All you need is fun Cons T Åhs Keeper of The Code cons@klarna.com Cons T Åhs Keeper of The Code at klarna Architecture - The Big Picture Development - getting ideas to work Code Quality - care about the
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #17. Loops: Break Statement
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #17 Loops: Break Statement (Refer Slide Time: 00:07) In this session we will see one more feature that is present
More informationC Pointers 2013 Author Riko H i
http:/cdorm.net/understanding C Pointers 2013 Author Riko H i Copyright 2013 CDorm.net All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form
More informationCS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 4 C Pointers 2004-09-08 Lecturer PSOE Dan Garcia www.cs.berkeley.edu/~ddgarcia Cal flies over Air Force We re ranked 13 th in the US and
More informationChapter 4 Defining Classes I
Chapter 4 Defining Classes I This chapter introduces the idea that students can create their own classes and therefore their own objects. Introduced is the idea of methods and instance variables as the
More informationOverview. CSE 101: Design and Analysis of Algorithms Lecture 1
Overview CSE 101: Design and Analysis of Algorithms Lecture 1 CSE 101: Design and analysis of algorithms Course overview Logistics CSE 101, Fall 2018 2 First, relevant prerequisites Advanced Data Structures
More informationProject Report Number Plate Recognition
Project Report Number Plate Recognition Ribemont Francois Supervisor: Nigel Whyte April 17, 2012 Contents 1 Introduction............................... 2 2 Description of Submitted Project...................
More informationOrganization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?
Organization of Programming Languages (CSE452) Instructor: Dr. B. Cheng Fall 2004 1 Why are there so many programming languages? Evolution -- we've learned better ways of doing things over time Socio-economic
More informationIMASK FIO_FLAG_S FIO_DIR SIC_IMASK FIO_EDGE FIO_POLAR ILAT FIO_BOTH TCOUNT FIO_FLAG_D FIO_ENEN PF_STATUS_D
SECTION B -- ATTEMPT NO MORE THAN 2 QUESTIONS These are open-ended questions and you may be required to make some educated, engineering relevant, design decisions. Only the first two answers to questions
More informationOverview of C++ Support in TI Compiler Tools July 2008
Overview of C++ Support in TI Compiler Tools July 2008 1 Table of Contents 1 Table of Contents... 1 2 Introduction... 1 3 Support for the Language... 1 4 Embedded C++... 1 5 Some Comments on Efficiency...
More informationTest Driven Development (TDD)
Test Driven Development (TDD) Test Driven Development Introduction Good programmers write code, great programmers write tests Never, in the field of programming, have so many owed so much to so few - Martin
More informationCMSC 104 -Lecture 6 John Y. Park, adapted by C Grasso
CMSC 104 -Lecture 6 John Y. Park, adapted by C Grasso 1 Topics #define Arithmetic Operators Assignment Operators Operator Precedence Evaluating Arithmetic Expressions Incremental Programming 2 Preprocessor
More informationOutline: System Development and Programming with the ADSP-TS101 (TigerSHARC)
Course Name: Course Number: Course Description: Goals/Objectives: Pre-requisites: Target Audience: Target Duration: System Development and Programming with the ADSP-TS101 (TigerSHARC) This is a practical
More information3 TUTORIAL. In This Chapter. Figure 1-0. Table 1-0. Listing 1-0.
3 TUTORIAL Figure 1-0. Table 1-0. Listing 1-0. In This Chapter This chapter contains the following topics: Overview on page 3-2 Exercise One: Building and Running a C Program on page 3-4 Exercise Two:
More informationTest Driven Development TDD
Test Driven Development TDD Testing Testing can never demonstrate the absence of errors in software, only their presence Edsger W. Dijkstra (but it is very good at the latter). Testing If it's worth building,
More informationHow to approach a computational problem
How to approach a computational problem A lot of people find computer programming difficult, especially when they first get started with it. Sometimes the problems are problems specifically related to
More informationReview! * follows a pointer to its value! & gets the address of a variable! Pearce, Summer 2010 UCB! ! int x = 1000; Pearce, Summer 2010 UCB!
CS61C L03 Introduction to C (pt 2) (1)! inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 3 Introduction to C (pt 2) 2010-06-23!!!Instructor Paul Pearce! The typical! development cycle!
More informationLecture Programming in C++ PART 1. By Assistant Professor Dr. Ali Kattan
Lecture 08-1 Programming in C++ PART 1 By Assistant Professor Dr. Ali Kattan 1 The Conditional Operator The conditional operator is similar to the if..else statement but has a shorter format. This is useful
More informationCS61C : Machine Structures
inst.eecs.berkeley.edu/~cs61c CS61C : Machine Structures Lecture 3 Introduction to C (pt 2) 2010-06-23! C help session: Tonight 7:00-9:00pm @ 306 Soda!!!Instructor Paul Pearce! The typical! development
More informationLESSON 13: LANGUAGE TRANSLATION
LESSON 13: LANGUAGE TRANSLATION Objective Interpreters and Compilers. Language Translation Phases. Interpreters and Compilers A COMPILER is a program that translates a complete source program into machine
More informationCS 241 Data Organization. August 21, 2018
CS 241 Data Organization August 21, 2018 Contact Info Instructor: Dr. Marie Vasek Contact: Private message me on the course Piazza page. Office: Room 2120 of Farris Web site: www.cs.unm.edu/~vasek/cs241/
More informationComp 11 Lectures. Mike Shah. June 26, Tufts University. Mike Shah (Tufts University) Comp 11 Lectures June 26, / 57
Comp 11 Lectures Mike Shah Tufts University June 26, 2017 Mike Shah (Tufts University) Comp 11 Lectures June 26, 2017 1 / 57 Please do not distribute or host these slides without prior permission. Mike
More information2 TUTORIAL. Overview. VisualDSP Getting Started Guide 2-1 for SHARC DSPs
2 TUTORIAL This chapter contains the following topics. Overview on page 2-1 Exercise One: Building and Running a C Program on page 2-3 Exercise Two: Calling an Assembly Routine and Creating an LDF on page
More informationObject Oriented Programming
Binnur Kurt kurt@ce.itu.edu.tr Istanbul Technical University Computer Engineering Department 1 Version 0.1.2 About the Lecturer BSc İTÜ, Computer Engineering Department, 1995 MSc İTÜ, Computer Engineering
More informationIntroduction to Programming using C++
Introduction to Programming using C++ Lecture One: Getting Started Carl Gwilliam gwilliam@hep.ph.liv.ac.uk http://hep.ph.liv.ac.uk/~gwilliam/cppcourse Course Prerequisites What you should already know
More informationScientific Computing: Lecture 1
Scientific Computing: Lecture 1 Introduction to course, syllabus, software Getting started Enthought Canopy, TextWrangler editor, python environment, ipython, unix shell Data structures in Python Integers,
More informationDesign Approaches for Concurrent Systems. CSCI 5828: Foundations of Software Engineering Lecture 08 02/09/2012
Design Approaches for Concurrent Systems CSCI 5828: Foundations of Software Engineering Lecture 08 02/09/2012 1 Goals Discuss material in Chapter 3 of our concurrency textbook Design Approaches for Concurrent
More informationTechnical Questions. Q 1) What are the key features in C programming language?
Technical Questions Q 1) What are the key features in C programming language? Portability Platform independent language. Modularity Possibility to break down large programs into small modules. Flexibility
More informationLecture 6: Assembly Programs
Lecture 6: Assembly Programs Today s topics: Procedures Examples Large constants The compilation process A full example 1 Procedures Local variables, AR, $fp, $sp Scratchpad and saves/restores, $fp Arguments
More informationCS 251 Intermediate Programming Java Basics
CS 251 Intermediate Programming Java Basics Brooke Chenoweth University of New Mexico Spring 2018 Prerequisites These are the topics that I assume that you have already seen: Variables Boolean expressions
More informationContents. Slide Set 1. About these slides. Outline of Slide Set 1. Typographical conventions: Italics. Typographical conventions. About these slides
Slide Set 1 for ENCM 369 Winter 2014 Lecture Section 01 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary Winter Term, 2014 ENCM 369 W14 Section
More informationCOMP 122/L Lecture 1. Kyle Dewey
COMP 122/L Lecture 1 Kyle Dewey About Me I research automated testing techniques and their intersection with CS education This is my first semester at CSUN Third time teaching this content About this Class
More informationIntroduction to Scientific Computing
Introduction to Scientific Computing Dr Hanno Rein Last updated: October 12, 2018 1 Computers A computer is a machine which can perform a set of calculations. The purpose of this course is to give you
More informationIntroduction to C++ with content from
Introduction to C++ with content from www.cplusplus.com 2 Introduction C++ widely-used general-purpose programming language procedural and object-oriented support strong support created by Bjarne Stroustrup
More information8.882 LHC Physics. Analysis Tips. [Lecture 9, March 4, 2009] Experimental Methods and Measurements
8.882 LHC Physics Experimental Methods and Measurements Analysis Tips [Lecture 9, March 4, 2009] Physics Colloquium Series 09 The Physics Colloquium Series Thursday, March 5 at 4:15 pm in room 10-250 Spring
More informationDEVELOPING WINDOWS APPLICATIONS WITH MICROSOFT VISUAL STUDIO 2010
CENTER OF KNOWLEDGE, PATH TO SUCCESS Website: DEVELOPING WINDOWS APPLICATIONS WITH MICROSOFT VISUAL STUDIO 2010 Course: 10262A; Duration: 5 Days; Instructor-led Time: 9.00am 5.00pm Break: 10.15am 10.30am
More informationProgramming 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 04 Programs with IO and Loop We will now discuss the module 2,
More informationWeek - 01 Lecture - 04 Downloading and installing Python
Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 01 Lecture - 04 Downloading and
More informationCSE 374 Programming Concepts & Tools. Hal Perkins Fall 2015 Lecture 15 Testing
CSE 374 Programming Concepts & Tools Hal Perkins Fall 2015 Lecture 15 Testing Where we are Some very basic software engineering topics in the midst of tools Today: testing (how, why, some terms) Later:
More informationWhy study algorithms? CS 561, Lecture 1. Today s Outline. Why study algorithms? (II)
Why study algorithms? CS 561, Lecture 1 Jared Saia University of New Mexico Seven years of College down the toilet - John Belushi in Animal House Q: Can I get a programming job without knowing something
More informationProgramming 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 07 Stack and Its Applications Welcome to module 5 of Programming
More informationhttps://lambda.mines.edu Evaluating programming languages based on: Writability: How easy is it to write good code? Readability: How easy is it to read well written code? Is the language easy enough to
More informationEEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools
EEM870 Embedded System and Experiment Lecture 4: SoC Design Flow and Tools Wen-Yen Lin, Ph.D. Department of Electrical Engineering Chang Gung University Email: wylin@mail.cgu.edu.tw March 2013 Agenda Introduction
More informationThe purpose of the Risk Log is to provide a list of risks confronted during the Tempus project.
Tempus Risk Log Document ID: Tempus RL Version history Version Date Author Description Approved by 0.2 1.12.2005 Juha Vuojärvi Request for approval 0.1 25.11.2005 Juha Vuojärvi Initial version Introduction
More informationCS-3410 Systems Programming Spring 2013
CS-3410 Systems Programming Spring 2013 Course Description http://atomicrhubarb.com/systems This course introduces students to many concepts underlying all computer systems and ties together the basic
More information(Refer Slide Time 04:53)
Programming and Data Structure Dr.P.P.Chakraborty Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 26 Algorithm Design -1 Having made a preliminary study
More informationDDMD AND AUTOMATED CONVERSION FROM C++ TO D
1 DDMD AND AUTOMATED CONVERSION FROM C++ TO D Daniel Murphy (aka yebblies ) ABOUT ME Using D since 2009 Compiler contributor since 2011 2 OVERVIEW Why convert the frontend to D What s so hard about it
More informationUsing the DSK In CalPoly EE Courses - Dr Fred DePiero
Using the DSK In CalPoly EE Courses - Dr Fred DePiero The DSK by Texas Instruments is a development platform for DSP applications. The platform includes Code Composer Studio (CCS) with a high performance
More informationCompiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore
Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No. # 10 Lecture No. # 16 Machine-Independent Optimizations Welcome to the
More informationHeap Arrays. Steven R. Bagley
Heap Arrays Steven R. Bagley Recap Data is stored in variables Can be accessed by the variable name Or in an array, accessed by name and index a[42] = 35; Variables and arrays have a type int, char, double,
More informationUser-defined Functions Case study
User-defined Functions Case study A function to return the average of readings on an analog input channel ME 121: Portland State University Scenario is reading a nominally steady signal that has some noise.
More informationMITOCW watch?v=0jljzrnhwoi
MITOCW watch?v=0jljzrnhwoi The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To
More informationPointers as Arguments
Introduction as Arguments How it Works called program on start of execution xw = &i xf = &d after excution xw = &i xf = &d caller program i? d? i 3 d.14159 x 3.14159 x 3.14159 R. K. Ghosh (IIT-Kanpur)
More informationAdvanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras
Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture - 35 Quadratic Programming In this lecture, we continue our discussion on
More informationThe C Programming Language Guide for the Robot Course work Module
The C Programming Language Guide for the Robot Course work Module Eric Peasley 2018 v6.4 1 2 Table of Contents Variables...5 Assignments...6 Entering Numbers...6 Operators...7 Arithmetic Operators...7
More informationA framework for automatic generation of audio processing applications on a dual-core system
A framework for automatic generation of audio processing applications on a dual-core system Etienne Cornu, Tina Soltani and Julie Johnson etienne_cornu@amis.com, tina_soltani@amis.com, julie_johnson@amis.com
More informationTesting, code coverage and static analysis. COSC345 Software Engineering
Testing, code coverage and static analysis COSC345 Software Engineering Outline Various testing processes ad hoc / formal / automatic Unit tests and test driven development Code coverage metrics Integration
More informationAre Fit / FitNesse Appropriate for Biomedical Engineering Research?
Are Fit / FitNesse Appropriate for Biomedical Engineering Research? Jingwen Chen 1, Michael Smith 1, Adam Geras 1,2, James Miller 3 1 Electrical and Computer Engineering, University of Calgary, Calgary,
More information: Intro Programming for Scientists and Engineers Assignment 1: Turtle Graphics
Assignment 1: Turtle Graphics Page 1 600.112: Intro Programming for Scientists and Engineers Assignment 1: Turtle Graphics Peter H. Fröhlich phf@cs.jhu.edu Joanne Selinski joanne@cs.jhu.edu Due Date: Wednesdays
More informationScalable Software Engineering What is it? Why and How?
Scalable Software Engineering What is it? Why and How? S. C. Kothari Electrical & Computer Engineering Department Iowa State University Contact: kothari@iastate.edu, 515-441-4412 January 25, 2008 Copyright
More informationPSK Propagation Reporter DLL Documentation 2013-Mar-10 Philip Gladstone
PSK Propagation Reporter DLL Documentation 2013-Mar-10 Philip Gladstone This describes the PSK Propagation Reporter API that is available on Windows and which is provided by
More informationCS 64 Week 0 Lecture 1. Kyle Dewey
CS 64 Week 0 Lecture 1 Kyle Dewey Overview Administrative stuff Class motivation Syllabus Working with different bases Bitwise operations Twos complement Administrative Stuff About Me 5th year Ph.D. candidate,
More information