{"id":23315,"date":"2023-03-29T06:10:35","date_gmt":"2023-03-29T06:10:35","guid":{"rendered":"https:\/\/www.booksofall.com\/?post_type=product&#038;p=23315"},"modified":"2023-03-29T06:12:51","modified_gmt":"2023-03-29T06:12:51","slug":"introduction-to-scientific-programming-in-c17-fortran2008","status":"publish","type":"product","link":"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/","title":{"rendered":"Introduction to Scientific Programming in C++17\/Fortran2008"},"content":{"rendered":"<h2>Chapter 1 &#8211;\u00a0Introduction<\/h2>\n<p><strong>1.1 Programming and computational thinking <\/strong><\/p>\n<p>In this chapter we take a look at the history of computers and computer programming, and think a little about what programming involves.<\/p>\n<p><strong>1.1.1 History <\/strong><\/p>\n<p>In the early days of computing, hardware design was seen as challenging, while programming was little more than data entry. The fact that one of the earliest programming languages was called \u2018<a href=\"https:\/\/fortran-lang.org\/en\/\">Fortran<\/a>\u2019, for \u2018formula translation\u2019, speaks to this: once you have the math, programming was thought to be nothing more than translating the math into code. The fact that programs could have subtle errors, or bugs , came as quite a surprise to the earliest computer designers. The fact that programming was not as highly valued also had the side-effect that many of the early programmers were women. Before electronic computers, a \u2018computer\u2019 was a person executing computations, probably with a mechanical calculating device, and often these were women. From this, the earliest people programming electronic computers to perform these calculations were, usually mathematically educated, women. Two famous examples were Navy Rear-admiral<a href=\"https:\/\/en.wikipedia.org\/wiki\/Grace_Hopper\"> Grace Hopper<\/a>, inventor of the <a href=\"https:\/\/www.microfocus.com\/en-us\/what-is\/cobol\">Cobol language<\/a>, and <a href=\"https:\/\/en.wikipedia.org\/wiki\/Margaret_Hamilton_(software_engineer)\">Margaret Hamilton<\/a> who led the development of the Apollo program software. This situation changed after the 1960s and certainly with the advent of PCs1.<\/p>\n<p><strong>1.1.2 Is programming science, art, or craft? <\/strong><\/p>\n<p>As the previous section argued, programming is more than simple translation of math into instructions for hardware. Could it be a science? There are certainly scientific aspects to programming:<\/p>\n<ul>\n<li>Algorithms and complexity theory have a lot of math in them.<\/li>\n<li>Programming language design is another mathematically tinged subject.<\/li>\n<\/ul>\n<p>However, programming itself is not a science.<\/p>\n<p>The term \u2018software engineering\u2019 may lead you to suspect that designing and producing software is an engineering discipline, but this is also not quite the case. There is no certification for software engineers, and there is no body of accepted techniques the way there is for civil engineering and such disciplines.<\/p>\n<p>For a large part programming is a discipline. What constitutes a good program is a matter of taste. That does not mean that there aren\u2019t recommended practices. In this course we will emphasize certain practices that we think lead to good code, as likewise will discourage you from certain idioms.<\/p>\n<p>None of this is an exact science. There are multiple programs that give the right output. However, programs are rarely static. They often need to be amended or extended, or even fixed, if erroneous behavior comes to light, and in that case a badly written program can be a detriment to programmer productivity. An important consideration, therefore, is intelligibility of the program, to another programmer, to your professor in this course, or even to yourself two weeks from now.<\/p>\n<p><strong>1.1.3 Computational thinking<\/strong><\/p>\n<p><a href=\"https:\/\/www.cuemath.com\/learn\/importance-developing-mathematical-thinking-children\/\">Mathematical thinking<\/a>:<\/p>\n<ul>\n<li>Number of people per day, speed of elevator\u21d2 yes, it is possible to get everyone to the right floor.<\/li>\n<li>Distribution of people arriving etc.\u21d2 average wait time.<\/li>\n<\/ul>\n<p>Sufficient condition \u0338= existence proof.<\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Computational_thinking\">Computational thinking<\/a>: actual design of a solution<\/p>\n<ul>\n<li>Elevator scheduling: someone at ground level presses the button, there are cars on floors 5 and 10; which one do you send down?<\/li>\n<\/ul>\n<p>Coming up with a strategy takes creativity!<\/p>\n<p><span style=\"text-decoration: underline;\">Exercise 1.1.<\/span> A straightforward calculation is the simplest example of an algorithm.<br \/>\n<span style=\"font-size: 1rem;\">Calculate how many schools for hair dressers the US can sustain. Identify the relevant factors, estimate their sizes, and perform the calculation.<\/span><\/p>\n<p><span style=\"text-decoration: underline;\">Exercise 1.2.<\/span> Algorithms are usually not uniquely determined:<br \/>\nthere is more than one way solve a problem.<br \/>\nFour self-driving cars arrive simultaneously at an all-way-stop intersection. Come up with an algorithm that a car can follow to safely cross the intersection. If you can come up with more than one algorithm, what happens when two cars using different algorithms meet each other?<\/p>\n<p>Looking up a name in the phone book<\/p>\n<ul>\n<li>start on page 1, then try page 2, et cetera<\/li>\n<li><span style=\"font-size: 1rem;\">or start in the middle, continue with one of the halves.<\/span><\/li>\n<\/ul>\n<p>What is the average search time in the two cases?<br \/>\nHaving a correct solution is not enough!<\/p>\n<p>A powerful programming language serves as a framework within which we organize our ideas. Every programming language has three mechanisms for accomplishing this:<\/p>\n<ul>\n<li>primitive expressions<\/li>\n<li>means of combination<\/li>\n<li>means of abstraction<\/li>\n<\/ul>\n<p>Abelson and Sussman, The Structure and Interpretation of Computer Programs<\/p>\n<ul>\n<li>The elevator programmer probably thinks: \u2018if the button is pressed\u2019, not \u2018if the voltage on that wire is 5 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Volt\">Volt<\/a>\u2019.<\/li>\n<li>The Google car programmer probably writes: \u2018if the car before me slows down\u2019, not \u2018if I see the image of the car growing\u2019.<\/li>\n<li>. . . but probably another programmer had to write that translation. A program has layers of abstractions.<\/li>\n<\/ul>\n<p>Abstraction means your program talks about your application concepts, rather than about numbers and characters and such.<\/p>\n<p>Your program should read like a story about your application; not about bits and bytes.<\/p>\n<p>Good programming style makes code intelligible and maintainable. (Bad programming style may lead to lower grade.)<\/p>\n<p>The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague \u2014 <a href=\"https:\/\/en.wikipedia.org\/wiki\/Edsger_W._Dijkstra\">Edsger Dijkstra<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><iframe style=\"width: 100%; height: 750px; border: none;\" src=\"https:\/\/online.visual-paradigm.com\/share\/book\/introduction-to-scientific-programming-in-c-17-fortran2008-1axl48biwx?p=1\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n","protected":false},"featured_media":23319,"template":"","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"Scientific programming involves using programming languages, tools, and techniques to solve complex scientific problems. Learn more in this book!"},"product_brand":[],"product_cat":[374],"product_tag":[],"class_list":{"0":"post-23315","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-misc","8":"first","9":"instock","10":"shipping-taxable","11":"product-type-simple"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Introduction to Scientific Programming in C++17\/Fortran2008 - BooksOfAll French<\/title>\n<meta name=\"description\" content=\"Scientific programming involves using programming languages, tools, and techniques to solve complex scientific problems. Learn more in this book!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introduction to Scientific Programming in C++17\/Fortran2008 - BooksOfAll French\" \/>\n<meta property=\"og:description\" content=\"Scientific programming involves using programming languages, tools, and techniques to solve complex scientific problems. Learn more in this book!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/\" \/>\n<meta property=\"og:site_name\" content=\"BooksOfAll French\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-29T06:12:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg\" \/><meta property=\"og:image\" content=\"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"595\" \/>\n\t<meta property=\"og:image:height\" content=\"842\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/\",\"url\":\"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/\",\"name\":\"Introduction to Scientific Programming in C++17\/Fortran2008 - BooksOfAll French\",\"isPartOf\":{\"@id\":\"https:\/\/www.booksofall.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg\",\"datePublished\":\"2023-03-29T06:10:35+00:00\",\"dateModified\":\"2023-03-29T06:12:51+00:00\",\"description\":\"Scientific programming involves using programming languages, tools, and techniques to solve complex scientific problems. Learn more in this book!\",\"breadcrumb\":{\"@id\":\"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/#primaryimage\",\"url\":\"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg\",\"contentUrl\":\"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg\",\"width\":\"595\",\"height\":\"842\",\"caption\":\"Introduction to Scientific Programming in C++17\/Fortran2008\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.booksofall.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Categories\",\"item\":\"https:\/\/www.booksofall.com\/fr\/categories\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Introduction to Scientific Programming in C++17\/Fortran2008\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.booksofall.com\/fr\/#website\",\"url\":\"https:\/\/www.booksofall.com\/fr\/\",\"name\":\"BooksOfAll French\",\"description\":\"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.\",\"publisher\":{\"@id\":\"https:\/\/www.booksofall.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.booksofall.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.booksofall.com\/fr\/#organization\",\"name\":\"BooksOfAll French\",\"url\":\"https:\/\/www.booksofall.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/www.booksofall.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2022\/06\/booksofall-logo-2.png\",\"contentUrl\":\"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2022\/06\/booksofall-logo-2.png\",\"width\":166,\"height\":30,\"caption\":\"BooksOfAll French\"},\"image\":{\"@id\":\"https:\/\/www.booksofall.com\/fr\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introduction to Scientific Programming in C++17\/Fortran2008 - BooksOfAll French","description":"Scientific programming involves using programming languages, tools, and techniques to solve complex scientific problems. Learn more in this book!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/","og_locale":"fr_FR","og_type":"article","og_title":"Introduction to Scientific Programming in C++17\/Fortran2008 - BooksOfAll French","og_description":"Scientific programming involves using programming languages, tools, and techniques to solve complex scientific problems. Learn more in this book!","og_url":"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/","og_site_name":"BooksOfAll French","article_modified_time":"2023-03-29T06:12:51+00:00","og_image":[{"url":"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg","type":"","width":"","height":""},{"width":595,"height":842,"url":"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/","url":"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/","name":"Introduction to Scientific Programming in C++17\/Fortran2008 - BooksOfAll French","isPartOf":{"@id":"https:\/\/www.booksofall.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/#primaryimage"},"image":{"@id":"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/#primaryimage"},"thumbnailUrl":"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg","datePublished":"2023-03-29T06:10:35+00:00","dateModified":"2023-03-29T06:12:51+00:00","description":"Scientific programming involves using programming languages, tools, and techniques to solve complex scientific problems. Learn more in this book!","breadcrumb":{"@id":"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/#primaryimage","url":"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg","contentUrl":"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2023\/03\/Introduction-to-Scientific-Programming-in-C17-Fortran2008.jpg","width":"595","height":"842","caption":"Introduction to Scientific Programming in C++17\/Fortran2008"},{"@type":"BreadcrumbList","@id":"https:\/\/www.booksofall.com\/fr\/introduction-to-scientific-programming-in-c17-fortran2008\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.booksofall.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Categories","item":"https:\/\/www.booksofall.com\/fr\/categories\/"},{"@type":"ListItem","position":3,"name":"Introduction to Scientific Programming in C++17\/Fortran2008"}]},{"@type":"WebSite","@id":"https:\/\/www.booksofall.com\/fr\/#website","url":"https:\/\/www.booksofall.com\/fr\/","name":"BooksOfAll French","description":"Biggest IT eBooks library and learning resources - Free eBooks for programming, computing, artificial intelligence and more.","publisher":{"@id":"https:\/\/www.booksofall.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.booksofall.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/www.booksofall.com\/fr\/#organization","name":"BooksOfAll French","url":"https:\/\/www.booksofall.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.booksofall.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2022\/06\/booksofall-logo-2.png","contentUrl":"https:\/\/www.booksofall.com\/fr\/wp-content\/uploads\/sites\/6\/2022\/06\/booksofall-logo-2.png","width":166,"height":30,"caption":"BooksOfAll French"},"image":{"@id":"https:\/\/www.booksofall.com\/fr\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/www.booksofall.com\/fr\/wp-json\/wp\/v2\/product\/23315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.booksofall.com\/fr\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/www.booksofall.com\/fr\/wp-json\/wp\/v2\/types\/product"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.booksofall.com\/fr\/wp-json\/wp\/v2\/media\/23319"}],"wp:attachment":[{"href":"https:\/\/www.booksofall.com\/fr\/wp-json\/wp\/v2\/media?parent=23315"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/www.booksofall.com\/fr\/wp-json\/wp\/v2\/product_brand?post=23315"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/www.booksofall.com\/fr\/wp-json\/wp\/v2\/product_cat?post=23315"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/www.booksofall.com\/fr\/wp-json\/wp\/v2\/product_tag?post=23315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}