A Comparison of C, MATLAB, and Python as Teaching Languages in Engineering
|
|
|
- Jayson Blankenship
- 10 years ago
- Views:
Transcription
1 A Comparison of C, MATLAB, and Python as Teaching Languages in Engineering Hans Fangohr University of Southampton, Southampton SO17 1BJ, UK Abstract. We describe and compare the programming languages C, MATLAB and Python as teaching languages for engineering students. We distinguish between two distinct phases in the process of converting a given problem into a computer program that can provide a solution: (i) finding an algorithmic solution and (ii) implementing this in a particular programming language. It is argued that it is most important for the understanding of the students to perform the first step whereas the actual implementation in a programming language is of secondary importance for the learning of problem-solving techniques. We therefore suggest to chose a well-structured teaching language that provides a clear and intuitive syntax and allows students to quickly express their algorithms. In our experience in engineering computing we find that MATLAB is much better suited than C for this task but the best choice in terms of clarity and functionality of the language is provided by Python. 1 Introduction Computers are increasingly used for a variety of purposes in engineering and science including control, data analysis, simulations and design optimisation. It is therefore becoming more important for engineering students to have a robust understanding of computing and to learn how to program. In this paper, we outline the difficulties in learning and teaching programming in an academic context including the choice of the programming language. In section 2, we suggest a distinction between the algorithmic problem-solving part of computer programming and the efforts to implement the algorithm using a particular programming language. In section 3, we describe and compare MATLAB, C and Python as potential teaching languages and report our experience of them in an Engineering Department in section 4 before we conclude. 2 Teaching Objectives We understand the subject of computing to broadly represent the usage of computers and numerical methods to solve scientific and engineering problems. In the curriculum, we aim to go beyond the usage of dedicated software packages and to enable students to write their own computer programs to provide insight M. Bubak et al. (Eds.): ICCS 2004, LNCS 3039, pp , c Springer-Verlag Berlin Heidelberg 2004
2 A Comparison of C, MATLAB, and Python 1211 into the functionality of any software (at least in principle) that they may encounter. In this section, we derive our requirements for programming languages to be used in education. Universal programming building blocks: To analyse the programming process, we list the main ingredients for any computer program (this can be done more formally but is sufficient for our purposes here): (i) statements that do something (for example adding two numbers, perform a Fourier transform, read a sensor), (ii) blocks of statements, (iii) loops that repeat blocks (for-loops, foreach-loops, while-loops, repeat until loops), (iv) conditional execution of blocks (if-then statements, case, switch) and (v) grouping of blocks into modules (functions, procedures, methods). This lists a set of commands that is sufficient to describe sequential algorithms, and by grouping statements into modules, moderately large and wellstructured programs can be written within this framework. 1 Virtually all programming languages provide constructs that correspond to the listed items. Problem-solving process. Computer programs are generally used to solve a given problem. We divide the process of writing a computer program into two parts: 1. finding the algorithmic solution (we will call this the algorithmic problemsolving part ) and 2. implementing the algorithm in a particular language (the implementation part ). For example, to compute an approximation A of the integral I = b a f(x)dx using the ( composite trapezoidal rule with n subdivisions of the interval [a, b]: A = h 2 f(a)+f(b)+2 ) n 1 i=1 f(x i) with h = b a n and x i = a + ih, the two parts of the solution are: 1. the algorithmic solution which can be written in some form of pseudo-code: user provides f, a, b, n compute interval width h=(b-a)/n set initial area=0.5*h*(f(a)+f(b)) for each point x=x_i with i increasing from 1 to n-1 compute area under f(x) x = a + i*h (this is the current x) da = f(x)*h (this is the new contribution) area = area + da (update the total area) return area to user 2. the implementation which expresses the algorithmic solution in some programming language. For example figure 1 shows MATLAB code 2 that performs the calculation (for f(x) = exp( x 2 ) and a = 0 and b = 1). 1 We recognise the importance of object orientation but have excluded such features from the list above for clarity of argument. 2 There are more efficient, general and elegant ways to code this but these are unlikely to be used by beginners and irrelevant to the situation described here.
3 1212 H. Fangohr % input from user a = 0.0; b = 1.0; n = 100; h = (b-a)/n; area = 0.5*h*( exp(-aˆ2) + exp(-bˆ2) ); for i=1:n-1 x = a+i*h; area = area + h*exp(-xˆ2); end fprintf( The value of the approximation is \%f\n, area) Fig. 1. A MATLAB program to approximate 1 0 exp( x2 )dx While in this example the algorithmic problem-solving is relatively straight forward (because the problem was posed in form of an equation), in general this is the main challenge the students face: the conversion of a problem described vaguely and informally in natural language into a sequence of instructions that break the problem in many small parts that a computer can solve subsequently. The implementation part can be complicated and time consuming but does not (or at least should not) contain major intellectual challenges. The boundary between the algorithmic problem-solving and the implementation is, of course, not clearly defined. However, it is clear that different implementations of a problem-solving algorithm in different languages share the same underlying algorithm (which we use here as the definition for the algorithmic problem solving part). In the teaching practice, the algorithmic problem-solving and implementation tasks are often entangled simply because the students need to test an algorithm they invented by implementing it. Teaching objectives in computing: We argue that the primary target in teaching computing is to enable the students to convert engineering problems into pseudo-code. This is a challenging task that requires analytical thinking and creativity. The conversion of this pseudo-code into a program written in one programming language is of secondary importance because it is, in principle, an algorithmic procedure and requires less intellectual effort. Consequently, the choice of the teaching language should be governed by which language provides the best support to the student in performing the implementation part of the problem-solving task. (The remainder of this paper addresses this question.) Once students are confident in the algorithmic problemsolving part, they can learn new programming languages as required to port the algorithmic solutions to their current working environment. 3 Overview of Programming Languages Used The C programming language: The C programming language [1] is a lowlevel compiled language (sometimes classified as a 3 rd generation language) that is widely used in academia, industry and commerce. Fortran falls into the same category but while Fortran is still commonly used in academia it appears to be
4 A Comparison of C, MATLAB, and Python 1213 overtaken by C (and C++) in many industrial applications. C++ provides a different programming paradigm than C but for the purpose of this work, C++ is more similar to C than it is to MATLAB or Python. The main advantage of compiled low-level languages is their execution speed and efficiency (for example in embedded systems). MATLAB: The MATLAB programming language is part of the commercial MATLAB software [2] that is often employed in research and industry and is an example of a high-level scripting or 4 th generation language. The most striking difference to C and other compiled languages is that the code is interpreted when the program is executed (an interpreter program reads the source code line by line and translates it into machine instructions on the fly), i.e. no compilation is required. While this decreases the execution speed, it frees the programmer from memory management, allows dynamic typing and interactive sessions. It is worth mentioning that programs written in scripting languages are usually significantly shorter [3] than equivalent programs written in compiled languages and also take significantly less time to code and debug. In short, there is a trade-off between the execution time (small for compiled languages) and the development time (small for interpreted languages). An important feature for teaching purposes is the ability of MATLAB (and other interpreted languages) to have interactive sessions. The user can type one or several commands at the command prompt and after pressing return, these commands are executed immediately. This allows interactive testing of small parts of the code (without any delay stemming from compilation) and encourages experimentation. Using the interactive prompt, interpreted languages also tend to be easier to debug than compiled executables. The MATLAB package comes with sophisticated libraries for matrix operations, general numeric methods and plotting of data. Universities may have to acquire licences and this may cost tens of thousands of pounds. Python: Python [4] is another high-level language and at first sight very similar to MATLAB: it is interpreted, has an interactive prompt, allows dynamic typing and provides automatic memory management (and comes with in-built complex numbers). We have included Python in this work because it provides several advantages over MATLAB in the context of teaching: (i) Python has a very clear, unambiguous and intuitive syntax and uses indentation to group blocks of statements. (ii) Python has a small core of commands which provide nearly all the functionality beginners will require. (iii) Python can be used as a fully object-orientated language and supports different styles of coding. (iv) The Python interpreter is free software (i.e. readily available), and Python interpreters for virtually all platforms exist (including Windows, Linux/Unix, Mac OS). It is worth noting that although Python has been around for only approximately 10 years, it is a relatively stable language and used increasingly in industry and academia (currently including organisations such as Philips, Google, NASA, US Navy and Disney). It also provides the framework for creating and managing large modularised codes. Commonly used extension modules provide access to
5 1214 H. Fangohr #include<stdio.h> #include<math.h> int main( void ) { int n = 100; double a = 0.0; double b = 1.0; int i; double h = (b - a) / (double) n; double area = h*0.5*( exp( -a*a ) + exp( -b*b ) ); double x; for (i=1; i<n; i++) { x = a + i*h; area = area + h*exp( -x*x ); } printf("the value of the approximation is %f\n", area); } return 0; Fig. 2. C program to approximate 1 0 exp( x2 )dx compiled libraries including high performance computation [5] and visualisation tools. 4 Teaching Experience In this section, we present for each of the languages in question a short program that performs the numerical integration as given in the equation in section 1. The source codes shown are neither commented, optimised for speed and elegance nor do they explore advanced features of the respective language. This is to save space and to represent the coding style that students would initially use. We then report and discuss experiences in teaching the three languages to first and second year undergraduate engineering students and to postgraduate students from different backgrounds. Using C: Figure 2 shows one C program that performs the same computation as the MATLAB program shown in figure 1. In comparison to the MATLAB program, this code is longer and carries a substantial overhead (such as the include statements, the wrapping of the main code into the main function and the return of the exit status). It is necessary to declare variables and their types before any statements are executed. Eventually, the student needs to compile the code (and link to the mathematics library) before it can be executed. Typical problems students experience while programming in C are: (i) Indentation of forloop (and other blocks) and scope (as defined by curly braces) do not agree, thus the for-loop executes incorrect commands. (ii) Missing semicolons, curly braces, parentheses around if-statement tests in combination with moderately useful error messages from the compiler stop the compilation process. (iii) Passing of values of wrong type in function calls or printing numbers using the wrong format
6 import math n = 100; a = 0.0; b = 1.0 h = (b-a)/n area = 0.5*h*( math.exp(-a**2) + math.exp(-b**2) ) for i in range(1,n): x = a+i*h area = area + h*math.exp(-x**2) print "The value of the approximation is", area A Comparison of C, MATLAB, and Python 1215 Fig. 3. Python program to approximate 1 0 exp( x2 )dx identifier token; both problems result in wrong numerical results that students find difficult to interpret and rectify. While these are not particularly challenging to the experienced programmer it can be observed that beginners struggle when they come across this framework, whereas there are significantly less difficulties when they start using MATLAB or Python. Using MATLAB: Figure 1 shows the example program. We generally find that it is much easier for students to start programming using MATLAB than it is using C because MATLAB addresses many of the issues raised above. It is good practice to split code into small functional units where-ever possible to modularise programs and to be able to re-use the functions individually for different projects. One of the recurring problems that students experience in learning programming using MATLAB is the convention of storing only one (globally visible) function in a file. This can result in a large number of files and initially the usage of functions is experienced by students as being counterproductive: several files have to be displayed to see all the source code at the same time (thus making it hard to follow the programme flow on the screen). A related issue is that in MATLAB the name of the function as specified within the source file should be identical to the file name of the source file containing that function. (The filename determines the globally visible name of the function.) This is often overlooked (by the students) and a source for many errors. Using Python: Figure 3 shows a Python implementation of the integration problem. By importing the mathematics module in the first line, the use of name spaces is nicely demonstrated. 3 The range command in line 7 returns a list of integers (ranging from 1 up to but not including n) which i refers to in subsequent iterations. The for-loop used here is actually a for-each loop because for each element in the list of integers, the body of the loop is executed. For-each-loops are in general more powerful than the for-loop, although this is not exploited here. (Note that the for-loop in MATLAB is also a for-each loop although the syntax makes this less obvious.) It is of significant benefit in teaching programming that the block of statements in the body of the for-each loop is limited solely by indentation because 3 This also addresses issues with unintented use of global variables in MATLAB which can confuse beginners but which are outside the scope of this report.
7 1216 H. Fangohr import math def integrate( f, a, b, n): h = (b-a)/n sum = (f(a) + f(b))*0.5 for i in range(1,n-1): x = a+i*h sum = sum + f( x ) return sum*h def f1(x): return math.exp(-x**2) def f2(x): return math.sin(-x**4) # main program starts here: n = 100; a = 0.0; b = 1.0 print "The approximation of f1 is ", integrate( f1, a, b, n) print "The approximation of f2 is ", integrate( f2, a, b, n) Fig. 4. A Python program demonstrating how to pass functions as arguments much time is spent encouraging students to ensure that the actual block delimiters (curly braces {} in C, the for and end keywords in MATLAB) are in agreement with the chosen indentation (because our perception of the program structure is led by indentation). Any disagreement between the two is likely to represent an error. Python offers an environment which addresses most of the problems we observe in teaching C and MATLAB. Students experience comparatively few problems in starting to program in Python and develop to enjoy and experiment within the intuitive environment. Advanced example: It is outside the scope of this work to explain many of the reasons why Python is generally appealing as a first programming language (see for example [6]). Instead, we present the implementation of one logical extension of the integration programmes in Python and compare this with C and MATLAB. Students should experience that it is advantageous to build a library of small generic functions that can be used and re-used to solve bigger problems rather than to write specific code to solve one, and only one, problem. As part of this, it is sensible to code the integration routine in a function which takes the following parameters: the function to integrate (f), the lower and upper integration limits (a and b) and the number of subdivisions (n). A Python program that first defines this function with the name integrate and then integrates two functions f1 and f2 is shown in figure 4. Note that the function to be integrated is passed to the integrate function just like any other object, and that f is evaluated inside the integrate function as if a function f would be defined (whereas in fact f refers to either f1 or f2). This is in stark contrast to C where the passing of functions as arguments needs
8 A Comparison of C, MATLAB, and Python 1217 the introduction of pointers (and where the type of theses pointers take the argument list of the function they point to into account), and where the pointer has to be de-referenced to call the function. In MATLAB, the situation is not as complicated as in C but the function integrate would have to be rewritten to use the feval command to evaluate the function rather than to evaluate it intuitively. The technical reason for the ease with which functions can intuitively be passed and used in Python, is that everything in Python (including numbers, functions and classes) are objects. Note that it would be easy to replace the function calls to the integrate function in the last lines of figure 4 by this for-each loop over the list of functions f1 and f2: for f in [f1,f2]: print "The approximation is", integrate( f, a, b, n) Each object stores its name in an attribute name, so the above code can be modified to print not only the value of the integral of f1 and f2 respectively, but also the name f1 and f2: for f in [f1,f2]: print "The approximation of",f. name,"is",integrate( f, a, b, n) A corresponding solution in MATLAB is far less elegant, and it requires significant effort (which we believe is outside the scope of first year students) to achieve this in C. Acknowledgments. The author thanks A. J. Chipperfield, R. P. Boardman, M. Molinari and J. M. Generowicz for useful discussions. References 1. Kernighan, B.W., Ritchie, D.M.: The C Programming Language. Prentice Hall Software Series (1988) 2. The Mathworks: Matlab (2003) 3. Prechelt, L.: An empirical comparison of seven programming languages. IEEE Computer 33 (2000) van Rossum, G.: Python tutorial. Centrum voor Wiskunde en Informatica (CWI), Amsterdam. (1995) 5. NumPy Team: Numerical Python (2003) 6. Donaldson, T.: Python as a first programming language for everyone. In: Western Canadian Conference on Computing Education. (2003)
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
Programming Languages & Tools
4 Programming Languages & Tools Almost any programming language one is familiar with can be used for computational work (despite the fact that some people believe strongly that their own favorite programming
Computational Mathematics with Python
Boolean Arrays Classes Computational Mathematics with Python Basics Olivier Verdier and Claus Führer 2009-03-24 Olivier Verdier and Claus Führer Computational Mathematics with Python 2009-03-24 1 / 40
Computational Mathematics with Python
Computational Mathematics with Python Basics Claus Führer, Jan Erik Solem, Olivier Verdier Spring 2010 Claus Führer, Jan Erik Solem, Olivier Verdier Computational Mathematics with Python Spring 2010 1
Computational Mathematics with Python
Numerical Analysis, Lund University, 2011 1 Computational Mathematics with Python Chapter 1: Basics Numerical Analysis, Lund University Claus Führer, Jan Erik Solem, Olivier Verdier, Tony Stillfjord Spring
We will learn the Python programming language. Why? Because it is easy to learn and many people write programs in Python so we can share.
LING115 Lecture Note Session #4 Python (1) 1. Introduction As we have seen in previous sessions, we can use Linux shell commands to do simple text processing. We now know, for example, how to count words.
Introduction to Python
1 Daniel Lucio March 2016 Creator of Python https://en.wikipedia.org/wiki/guido_van_rossum 2 Python Timeline Implementation Started v1.0 v1.6 v2.1 v2.3 v2.5 v3.0 v3.1 v3.2 v3.4 1980 1991 1997 2004 2010
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 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming
A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming "The only way to learn a new programming language is by writing programs in it." -- B. Kernighan and D. Ritchie "Computers
Postprocessing with Python
Postprocessing with Python Boris Dintrans (CNRS & University of Toulouse) [email protected] Collaborator: Thomas Gastine (PhD) Outline Outline Introduction - what s Python and why using it? - Installation
Python Programming: An Introduction to Computer Science
Python Programming: An Introduction to Computer Science Chapter 1 Computers and Programs 1 The Universal Machine n A computer -- a machine that stores and manipulates information under the control of a
WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math
Textbook Correlation WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math Following Directions Unit FIRST QUARTER AND SECOND QUARTER Logic Unit
Curriculum Map. Discipline: Computer Science Course: C++
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha
Algorithm & Flowchart & Pseudo code Staff Incharge: S.Sasirekha Computer Programming and Languages Computers work on a set of instructions called computer program, which clearly specify the ways to carry
Welcome to Introduction to programming in Python
Welcome to Introduction to programming in Python Suffolk One, Ipswich, 4:30 to 6:00 Tuesday Jan 14, Jan 21, Jan 28, Feb 11 Welcome Fire exits Toilets Refreshments 1 Learning objectives of the course An
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,
Chapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
Introduction to Python
Introduction to Python Girls Programming Network School of Information Technologies University of Sydney Mini-Lecture 1 Python Install Running Summary 2 Outline 1 What is Python? 2 Installing Python 3
Fall 2012 Q530. Programming for Cognitive Science
Fall 2012 Q530 Programming for Cognitive Science Aimed at little or no programming experience. Improve your confidence and skills at: Writing code. Reading code. Understand the abilities and limitations
McGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0
1.1 McGraw-Hill The McGraw-Hill Companies, Inc., 2000 Objectives: To describe the evolution of programming languages from machine language to high-level languages. To understand how a program in a high-level
CRASH COURSE PYTHON. Het begint met een idee
CRASH COURSE PYTHON nr. Het begint met een idee This talk Not a programming course For data analysts, who want to learn Python For optimizers, who are fed up with Matlab 2 Python Scripting language expensive
Python Programming: An Introduction to Computer Science
Python Programming: An Introduction to Computer Science Chapter 1 Computers and Programs 1 Objectives To understand the respective roles of hardware and software in a computing system. To learn what computer
3 SOFTWARE AND PROGRAMMING LANGUAGES
3 SOFTWARE AND PROGRAMMING LANGUAGES 3.1 INTRODUCTION In the previous lesson we discussed about the different parts and configurations of computer. It has been mentioned that programs or instructions have
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
PGR Computing Programming Skills
PGR Computing Programming Skills Dr. I. Hawke 2008 1 Introduction The purpose of computing is to do something faster, more efficiently and more reliably than you could as a human do it. One obvious point
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
Chapter 2: Algorithm Discovery and Design. Invitation to Computer Science, C++ Version, Third Edition
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition Objectives In this chapter, you will learn about: Representing algorithms Examples of algorithmic problem
Computational Engineering Programs at the University of Erlangen-Nuremberg
Computational Engineering Programs at the University of Erlangen-Nuremberg Ulrich Ruede Lehrstuhl für Simulation, Institut für Informatik Universität Erlangen http://www10.informatik.uni-erlangen.de/ ruede
SCIENTIFIC COMPUTING AND PROGRAMMING IN THE CLOUD USING OPEN SOURCE PLATFORMS: AN ILLUSTRATION USING WEIGHTED VOTING SYSTEMS
SCIENTIFIC COMPUTING AND PROGRAMMING IN THE CLOUD USING OPEN SOURCE PLATFORMS: AN ILLUSTRATION USING WEIGHTED VOTING SYSTEMS Mohamed I Jamaloodeen Georgia Gwinnet College School of Science and Technology
FEEG6002 - Applied Programming 5 - Tutorial Session
FEEG6002 - Applied Programming 5 - Tutorial Session Sam Sinayoko 2015-10-30 1 / 38 Outline Objectives Two common bugs General comments on style String formatting Questions? Summary 2 / 38 Objectives Revise
How To Develop Software
Software Development Basics Dr. Axel Kohlmeyer Associate Dean for Scientific Computing College of Science and Technology Temple University, Philadelphia http://sites.google.com/site/akohlmey/ [email protected]
Rethinking the First Year Programming Course
Rethinking the First Year Programming Course William David Lubitz Assistant Professor, School of Engineering, University of Guelph [email protected] Abstract The use of microcontrollers in beginning
General Software Development Standards and Guidelines Version 3.5
NATIONAL WEATHER SERVICE OFFICE of HYDROLOGIC DEVELOPMENT Science Infusion Software Engineering Process Group (SISEPG) General Software Development Standards and Guidelines 7/30/2007 Revision History Date
#820 Computer Programming 1A
Computer Programming I Levels: 10-12 Units of Credit: 1.0 CIP Code: 11.0201 Core Code: 35-02-00-00-030 Prerequisites: Secondary Math I, Keyboarding Proficiency, Computer Literacy requirement Semester 1
VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0
VISUAL GUIDE to RX Scripting for Roulette Xtreme - System Designer 2.0 UX Software - 2009 TABLE OF CONTENTS INTRODUCTION... ii What is this book about?... iii How to use this book... iii Time to start...
Computers. An Introduction to Programming with Python. Programming Languages. Programs and Programming. CCHSG Visit June 2014. Dr.-Ing.
Computers An Introduction to Programming with Python CCHSG Visit June 2014 Dr.-Ing. Norbert Völker Many computing devices are embedded Can you think of computers/ computing devices you may have in your
An Introduction to the WEB Style of Literate Programming
An Introduction to the WEB Style of Literate Programming Literate Programming by Bart Childs One of the greatest needs in computing is the reduction of the cost of maintenance of codes. Maintenance programmers
ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science
ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science Program Schedule CTech Computer Science Credits CS101 Computer Science I 3 MATH100 Foundations of Mathematics and
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
Applications Development
Paper 21-25 Using SAS Software and Visual Basic for Applications to Automate Tasks in Microsoft Word: An Alternative to Dynamic Data Exchange Mark Stetz, Amgen, Inc., Thousand Oaks, CA ABSTRACT Using Dynamic
Assignment 2: Option Pricing and the Black-Scholes formula The University of British Columbia Science One CS 2015-2016 Instructor: Michael Gelbart
Assignment 2: Option Pricing and the Black-Scholes formula The University of British Columbia Science One CS 2015-2016 Instructor: Michael Gelbart Overview Due Thursday, November 12th at 11:59pm Last updated
Computer Programming I
Computer Programming I Levels: 10-12 Units of Credit: 1.0 CIP Code: 11.0201 Core Code: 35-02-00-00-030 Prerequisites: Secondary Math I, Keyboarding Proficiency, Computer Literacy requirement (e.g. Exploring
Masters in Information Technology
Computer - Information Technology MSc & MPhil - 2015/6 - July 2015 Masters in Information Technology Programme Requirements Taught Element, and PG Diploma in Information Technology: 120 credits: IS5101
ESPResSo Summer School 2012
ESPResSo Summer School 2012 Introduction to Tcl Pedro A. Sánchez Institute for Computational Physics Allmandring 3 D-70569 Stuttgart Germany http://www.icp.uni-stuttgart.de 2/26 Outline History, Characteristics,
Introduction to Python
Caltech/LEAD Summer 2012 Computer Science Lecture 2: July 10, 2012 Introduction to Python The Python shell Outline Python as a calculator Arithmetic expressions Operator precedence Variables and assignment
AC 2012-4561: MATHEMATICAL MODELING AND SIMULATION US- ING LABVIEW AND LABVIEW MATHSCRIPT
AC 2012-4561: MATHEMATICAL MODELING AND SIMULATION US- ING LABVIEW AND LABVIEW MATHSCRIPT Dr. Nikunja Swain, South Carolina State University Nikunja Swain is a professor in the College of Science, Mathematics,
HPC Wales Skills Academy Course Catalogue 2015
HPC Wales Skills Academy Course Catalogue 2015 Overview The HPC Wales Skills Academy provides a variety of courses and workshops aimed at building skills in High Performance Computing (HPC). Our courses
University of Hull Department of Computer Science. Wrestling with Python Week 01 Playing with Python
Introduction Welcome to our Python sessions. University of Hull Department of Computer Science Wrestling with Python Week 01 Playing with Python Vsn. 1.0 Rob Miles 2013 Please follow the instructions carefully.
Chapter 13: Program Development and Programming Languages
15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning
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
Modeling, Computers, and Error Analysis Mathematical Modeling and Engineering Problem-Solving
Next: Roots of Equations Up: Numerical Analysis for Chemical Previous: Contents Subsections Mathematical Modeling and Engineering Problem-Solving A Simple Mathematical Model Computers and Software The
CS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper
High-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)
High-Level Programming Languages Nell Dale & John Lewis (adaptation by Michael Goldwasser) Low-Level Languages What are disadvantages of low-level languages? (e.g., machine code or assembly code) Programming
River Dell Regional School District. Computer Programming with Python Curriculum
River Dell Regional School District Computer Programming with Python Curriculum 2015 Mr. Patrick Fletcher Superintendent River Dell Regional Schools Ms. Lorraine Brooks Principal River Dell High School
JavaScript: Introduction to Scripting. 2008 Pearson Education, Inc. All rights reserved.
1 6 JavaScript: Introduction to Scripting 2 Comment is free, but facts are sacred. C. P. Scott The creditor hath a better memory than the debtor. James Howell When faced with a decision, I always ask,
Objectives. Python Programming: An Introduction to Computer Science. Lab 01. What we ll learn in this class
Python Programming: An Introduction to Computer Science Chapter 1 Computers and Programs Objectives Introduction to the class Why we program and what that means Introduction to the Python programming language
Masters in Human Computer Interaction
Masters in Human Computer Interaction Programme Requirements Taught Element, and PG Diploma in Human Computer Interaction: 120 credits: IS5101 CS5001 CS5040 CS5041 CS5042 or CS5044 up to 30 credits from
Figure 1: Graphical example of a mergesort 1.
CSE 30321 Computer Architecture I Fall 2011 Lab 02: Procedure Calls in MIPS Assembly Programming and Performance Total Points: 100 points due to its complexity, this lab will weight more heavily in your
Capstone Project - Software Development Project Assessment Guidelines
Capstone Project - Software Development Project Assessment Guidelines March 2, 2015 1 Scope These guidelines are intended to apply to 25 point software development projects, as available in the MIT and
50 Computer Science MI-SG-FLD050-02
50 Computer Science MI-SG-FLD050-02 TABLE OF CONTENTS PART 1: General Information About the MTTC Program and Test Preparation OVERVIEW OF THE TESTING PROGRAM... 1-1 Contact Information Test Development
Teaching Computational Thinking using Cloud Computing: By A/P Tan Tin Wee
Teaching Computational Thinking using Cloud Computing: By A/P Tan Tin Wee Technology in Pedagogy, No. 8, April 2012 Written by Kiruthika Ragupathi ([email protected]) Computational thinking is an emerging
PYTHON Basics http://hetland.org/writing/instant-hacking.html
CWCS Workshop May 2009 PYTHON Basics http://hetland.org/writing/instant-hacking.html Python is an easy to learn, modern, interpreted, object-oriented programming language. It was designed to be as simple
Pre-Masters. Science and Engineering
Pre-Masters Science and Engineering Science and Engineering Programme information Students enter the programme with a relevant first degree and study in English on a full-time basis for either 3 or 2 terms
Introduction to MIPS Assembly Programming
1 / 26 Introduction to MIPS Assembly Programming January 23 25, 2013 2 / 26 Outline Overview of assembly programming MARS tutorial MIPS assembly syntax Role of pseudocode Some simple instructions Integer
Optimal Resource Allocation for the Quality Control Process
Optimal Resource Allocation for the Quality Control Process Pankaj Jalote Department of Computer Sc. & Engg. Indian Institute of Technology Kanpur Kanpur, INDIA - 208016 [email protected] Bijendra
Debugging. Common Semantic Errors ESE112. Java Library. It is highly unlikely that you will write code that will work on the first go
Debugging ESE112 Java Programming: API, Psuedo-Code, Scope It is highly unlikely that you will write code that will work on the first go Bugs or errors Syntax Fixable if you learn to read compiler error
Modelling cellular processes with Python and Scipy
Modelling cellular processes with Python and Scipy B.G. Olivier ([email protected]), J.M. Rohwer ([email protected]) and J.-H.S. Hofmeyr ([email protected]) Dept. of Biochemistry, University of Stellenbosch, Private
Instructional Design Framework CSE: Unit 1 Lesson 1
Instructional Design Framework Stage 1 Stage 2 Stage 3 If the desired end result is for learners to then you need evidence of the learners ability to then the learning events need to. Stage 1 Desired Results
CE 504 Computational Hydrology Computational Environments and Tools Fritz R. Fiedler
CE 504 Computational Hydrology Computational Environments and Tools Fritz R. Fiedler 1) Operating systems a) Windows b) Unix and Linux c) Macintosh 2) Data manipulation tools a) Text Editors b) Spreadsheets
Experiences with Online Programming Examinations
Experiences with Online Programming Examinations Monica Farrow and Peter King School of Mathematical and Computer Sciences, Heriot-Watt University, Edinburgh EH14 4AS Abstract An online programming examination
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
Teaching an Introductory Computer Science Sequence with Python
Teaching an Introductory Computer Science Sequence with Python Bradley N. Miller Department of Computer Science Luther College Decorah, Iowa 52101 [email protected] David L. Ranum Department of Computer
6.170 Tutorial 3 - Ruby Basics
6.170 Tutorial 3 - Ruby Basics Prerequisites 1. Have Ruby installed on your computer a. If you use Mac/Linux, Ruby should already be preinstalled on your machine. b. If you have a Windows Machine, you
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)
Intro to scientific programming (with Python) Pietro Berkes, Brandeis University
Intro to scientific programming (with Python) Pietro Berkes, Brandeis University Next 4 lessons: Outline Scientific programming: best practices Classical learning (Hoepfield network) Probabilistic learning
MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES FIELD 050: COMPUTER SCIENCE
MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES Subarea Educational Computing and Technology Literacy Computer Systems, Data, and Algorithms Program Design and Verification Programming Language
1.1 WHAT IS A PROGRAMMING LANGUAGE?
1 INTRODUCTION 1.1 What is a Programming Language? 1.2 Abstractions in Programming Languages 1.3 Computational Paradigms 1.4 Language Definition 1.5 Language Translation 1.6 Language Design How we communicate
IS PYTHON AN APPROPRIATE PROGRAMMING LANGUAGE
IS PYTHON AN APPROPRIATE PROGRAMMING LANGUAGE FOR TEACHING PROGRAMMING IN SECONDARY SCHOOLS? Eva Mészárosová Department of Informatics Education, Faculty of Mathematics, Physics and Informatics, Comenius
Course Title: Software Development
Course Title: Software Development Unit: Customer Service Content Standard(s) and Depth of 1. Analyze customer software needs and system requirements to design an information technology-based project plan.
NATIONAL CERTIFICATES (VOCATIONAL)
NATIONAL CERTIFICATES (VOCATIONAL) SUBJECT GUIDELINES INTRODUCTION TO SYSTEMS DEVELOPMENT NQF LEVEL 2 December 2007 INTRODUCTION A. What is Introduction to Systems Development? Introduction to Systems
Core Curriculum to the Course:
Core Curriculum to the Course: Environmental Science Law Economy for Engineering Accounting for Engineering Production System Planning and Analysis Electric Circuits Logic Circuits Methods for Electric
Masters in Advanced Computer Science
Masters in Advanced Computer Science Programme Requirements Taught Element, and PG Diploma in Advanced Computer Science: 120 credits: IS5101 CS5001 up to 30 credits from CS4100 - CS4450, subject to appropriate
Input Output. 9.1 Why an IO Module is Needed? Chapter 9
Chapter 9 Input Output In general most of the finite element applications have to communicate with pre and post processors,except in some special cases in which the application generates its own input.
qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq
qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq Introduction to Programming using Java wertyuiopasdfghjklzxcvbnmqwertyui
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
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
Masters in Artificial Intelligence
Masters in Artificial Intelligence Programme Requirements Taught Element, and PG Diploma in Artificial Intelligence: 120 credits: IS5101 CS5001 CS5010 CS5011 CS4402 or CS5012 in total, up to 30 credits
PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON
PROBLEM SOLVING WITH SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON Addison Wesley Boston San Francisco New York London
Exploring Algorithms with Python
Exploring Algorithms with Python Dr. Chris Mayfield Department of Computer Science James Madison University Oct 16, 2014 What is Python? From Wikipedia: General-purpose, high-level programming language
Masters in Networks and Distributed Systems
Masters in Networks and Distributed Systems Programme Requirements Taught Element, and PG Diploma in Networks and Distributed Systems: 120 credits: IS5101 CS5001 CS5021 CS4103 or CS5023 in total, up to
Masters in Computing and Information Technology
Masters in Computing and Information Technology Programme Requirements Taught Element, and PG Diploma in Computing and Information Technology: 120 credits: IS5101 CS5001 or CS5002 CS5003 up to 30 credits
Scientific Programming in Python
UCSD March 9, 2009 What is Python? Python in a very high level (scripting) language which has gained widespread popularity in recent years. It is: What is Python? Python in a very high level (scripting)
Beyond the Mouse A Short Course on Programming
1 / 22 Beyond the Mouse A Short Course on Programming 2. Fundamental Programming Principles I: Variables and Data Types Ronni Grapenthin Geophysical Institute, University of Alaska Fairbanks September
Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61
F# Applications to Computational Financial and GPU Computing May 16th Dr. Daniel Egloff +41 44 520 01 17 +41 79 430 03 61 Today! Why care about F#? Just another fashion?! Three success stories! How Alea.cuBase
AppendixA1A1. Java Language Coding Guidelines. A1.1 Introduction
AppendixA1A1 Java Language Coding Guidelines A1.1 Introduction This coding style guide is a simplified version of one that has been used with good success both in industrial practice and for college courses.
Pseudo code Tutorial and Exercises Teacher s Version
Pseudo code Tutorial and Exercises Teacher s Version Pseudo-code is an informal way to express the design of a computer program or an algorithm in 1.45. The aim is to get the idea quickly and also easy
15-150 Lecture 11: Tail Recursion; Continuations
15-150 Lecture 11: Tail Recursion; Continuations Lecture by Dan Licata February 21, 2011 In this lecture we will discuss space usage: analyzing the memory it takes your program to run tail calls and tail
