<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>programming &#8211; Greg Laden&#039;s Blog</title>
	<atom:link href="https://gregladen.com/blog/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>https://gregladen.com/blog</link>
	<description></description>
	<lastBuildDate>Thu, 22 Jun 2023 15:18:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.8</generator>

<image>
	<url>https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/10/Greg_Ladens_Blog_Favicon_black_GLb.png?fit=32%2C32&#038;ssl=1</url>
	<title>programming &#8211; Greg Laden&#039;s Blog</title>
	<link>https://gregladen.com/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">77525483</site>	<item>
		<title>Impractical Python Programming For Fun</title>
		<link>https://gregladen.com/blog/2019/01/26/impractical-python-programming-for-fun/</link>
					<comments>https://gregladen.com/blog/2019/01/26/impractical-python-programming-for-fun/#comments</comments>
		
		<dc:creator><![CDATA[Greg Laden]]></dc:creator>
		<pubDate>Sat, 26 Jan 2019 15:42:29 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://gregladen.com/blog/?p=31433</guid>

					<description><![CDATA[Project oriented programming books, books that help you develop actual working programs while you learn to program, are the thing, and the new Impractical Python Projects: Playful Programming Activities to Make You Smarter is an excellent example. Knowing how the elements of a program work is fine and dandy, but applying programming concepts to the &#8230; <a href="https://gregladen.com/blog/2019/01/26/impractical-python-programming-for-fun/" class="more-link">Continue reading <span class="screen-reader-text">Impractical Python Programming For Fun</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Project oriented programming books, books that help you develop actual working programs while you learn to program, are the thing, and the new <a target="_blank" href="https://www.amazon.com/gp/product/159327890X/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=159327890X&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=64e199cc242018594d7987b51467187d">Impractical Python Projects: Playful Programming Activities to Make You Smarter</a><img decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=159327890X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is an excellent example.<span id="more-31433"></span></p>
<p><img fetchpriority="high" decoding="async" data-attachment-id="31435" data-permalink="https://gregladen.com/blog/2019/01/26/impractical-python-programming-for-fun/51bbamvwj6l-_sx375_bo1204203200_/" data-orig-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/51bbaMvwj6L._SX375_BO1204203200_.jpg?fit=377%2C499&amp;ssl=1" data-orig-size="377,499" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="51bbaMvwj6L._SX375_BO1,204,203,200_" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/51bbaMvwj6L._SX375_BO1204203200_.jpg?fit=227%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/51bbaMvwj6L._SX375_BO1204203200_.jpg?fit=377%2C499&amp;ssl=1" src="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/51bbaMvwj6L._SX375_BO1204203200_.jpg?resize=377%2C499" alt="" width="377" height="499" class="alignright size-full wp-image-31435" srcset="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/51bbaMvwj6L._SX375_BO1204203200_.jpg?w=377&amp;ssl=1 377w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/51bbaMvwj6L._SX375_BO1204203200_.jpg?resize=227%2C300&amp;ssl=1 227w" sizes="(max-width: 377px) 100vw, 377px" data-recalc-dims="1" />Knowing how the elements of a program work is fine and dandy, but applying programming concepts to the real world is where the rubber of code meets the reality of &#8230; running code, I guess.  <a target="_blank" href="https://www.amazon.com/gp/product/159327890X/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=159327890X&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=64e199cc242018594d7987b51467187d">Impractical Python Projects: Playful Programming Activities to Make You Smarter</a><img decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=159327890X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is full of code examples, and they are said to be impractical, but really, that depends on why you even use computers. For example, one might want to breed rodents of unusual size, or come up with an anagram suitable for a Dark Wizard.  Even more useful is calculating the odds of detecting alien civilizations (I for one welcome our hypothetical overlords from elsewhere in the universe). Make a python programmed volcano for your next science project. Seriously, that&#8217;s not a bad idea for the kiddo&#8230;</p>
<p>To give you an idea, here are the chapters:</p>
<p>Chapter 1: Silly Name Generator<br />
Chapter 2: Finding Palingram Spells<br />
Chapter 3: Solving Anagrams<br />
Chapter 4: Decoding American Civil War Ciphers<br />
Chapter 5: Encoding English Civil War Ciphers<br />
Chapter 6: Writing in Invisible Ink<br />
Chapter 7: Breeding Giant Rats with Genetic Algorithms<br />
Chapter 8: Counting Syllables for Haiku Poetry<br />
Chapter 9: Writing Haiku with Markov Chain Analysis<br />
Chapter 10: Are We Alone? Exploring the Fermi Paradox<br />
Chapter 11: The Monty Hall Problem<br />
Chapter 12: Securing your Nest Egg<br />
Chapter 13: Simulating an Alien Volcano<br />
Chapter 14: Mapping Mars with the Mars Orbiter<br />
Chapter 15: Improving Your Astrophotography with Planet Stacking<br />
Chapter 16: Finding Frauds with Benford&#8217;s Law</p>
<p>This book does something else, that not too many coding instruction books do. The author, Lee Vaughan, builds small projects that work, then applies python based methods to analyze the code, showing how the original project had problems of one kind or another, then builds them again. The results are surprising, even spectacular, and very instructive.</p>
<p>The book does assume a basic knowledge of how python works, but that is not hard to get from any of <a href="https://gregladen.com/blog/?s=python">several other books</a>, or on line. Rather than being an introductory text, Vaughan&#8217;s project pushes you in interesting directions for solving a diverse set of problems.  Most of these &#8220;impractical&#8221; projects, while themselves being not so useless after all (there are those of us that need to produce or evaluate anagrams now and then, for example) will have parallels to real life projects.  For example, the exploration of the Fermi Paradox and Drake Equation can serve as a template for a wide range of simulations, and the section on Benford&#8217;s law can, well, help you cheat better on your taxes!</p>
<p>This is just plain a fun book, and it is useful, not impractical.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gregladen.com/blog/2019/01/26/impractical-python-programming-for-fun/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">31433</post-id>	</item>
		<item>
		<title>Practical Binary Analysis: Book Review</title>
		<link>https://gregladen.com/blog/2019/01/25/practical-binary-analysis-book-review/</link>
					<comments>https://gregladen.com/blog/2019/01/25/practical-binary-analysis-book-review/#respond</comments>
		
		<dc:creator><![CDATA[Greg Laden]]></dc:creator>
		<pubDate>Sat, 26 Jan 2019 01:51:05 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Binary Analysis]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">https://gregladen.com/blog/?p=31419</guid>

					<description><![CDATA[A computer program is like a memo. Often, a vague memo. You are the boss. You want a pile of files to be put away. You could do it yourself, but instead you instruct someone else to do it. There are a lot of them and they are all mixed up. So you write a &#8230; <a href="https://gregladen.com/blog/2019/01/25/practical-binary-analysis-book-review/" class="more-link">Continue reading <span class="screen-reader-text">Practical Binary Analysis: Book Review</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>A computer program is like a memo.  Often, a vague memo.</p>
<p>You are the boss. You want a pile of files to be put away. You could do it yourself, but instead you instruct someone else to do it.  There are a lot of them and they are all mixed up. So you write a memo to an employee that says &#8220;put the files away&#8221; and sis-bam-boom you&#8217;re all set.</p>
<p>Or are you? <span id="more-31419"></span></p>
<p>It turns out that the files fall into four categories, each associated with a different set of file cabinets.  All the files have labels with words and numbers on them.  One set is filed alphabetically.  Two sets are filed by the number that is on the label. The fourth set are stacked in an outbox in any order where they are to be processed by someone else at a later time.</p>
<p>So, if you just say, &#8220;file these&#8221; a lot of things can go wrong, unless he person who gets the memo knows what to do.</p>
<p>Your memo could read &#8220;Find the person who knows how to file stuff. Then have that person file these files properly.&#8221; In a computer language, that is a little like loading a library then using instructions from that library to carryout a task in a specific way.</p>
<p><code># file.py<br />
import alpha-numeric-filing as fileit</p>
<p>def main():<br />
     files.fileit(file)</code></p>
<p>&#8230; or code to that effect.</p>
<p>The point is, telling your underlings to do something only works if the underlings do it correctly.  This is also true with computers, where a line of code seems to be instructing the processor, way down deep in the hardware, to do a certain thing, but it may or may not be actually doing that thing.</p>
<p>Computers are famous for making strange and unexpected (to the non-expert) calculations.  For example, a computer will calculate the base 10 log of 2 as 0.000029995663981195 off of the actual number because of the way numbers are represented and manipulated inside the machine. So when you ask for that value in a computer program, you are making an incorrect assumption if you think it is being done correctly.</p>
<p><img decoding="async" data-attachment-id="31422" data-permalink="https://gregladen.com/blog/2019/01/25/practical-binary-analysis-book-review/practicalbinaryanalysis_full/" data-orig-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/PracticalBinaryAnalysis_full.png?fit=226%2C409&amp;ssl=1" data-orig-size="226,409" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="PracticalBinaryAnalysis_full" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/PracticalBinaryAnalysis_full.png?fit=166%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/PracticalBinaryAnalysis_full.png?fit=226%2C409&amp;ssl=1" src="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/PracticalBinaryAnalysis_full.png?resize=226%2C409" alt="" width="226" height="409" class="alignright size-full wp-image-31422" srcset="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/PracticalBinaryAnalysis_full.png?w=226&amp;ssl=1 226w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2019/01/PracticalBinaryAnalysis_full.png?resize=166%2C300&amp;ssl=1 166w" sizes="(max-width: 226px) 100vw, 226px" data-recalc-dims="1" />That is a known mathematical phenomenon and not of consequence to most people or most programs, but there may be other issues that are more important and even less predicted. Like the filing problem mentioned above, there may be assumptions built into the deeper level operation of a computer program or script once it is complied or interpreted, linked up with other software it works with, and deployed on this or that machine.  This is the difference between working in the area of written code including uncompiled programs or scripts and the deeper binary code that is created by the software that interprets or complies your program.</p>
<p><a target="_blank" href="https://www.amazon.com/gp/product/1593279124/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593279124&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=e588fe2566dac583745dd23aa94ee955">Practical Binary Analysis: Build Your Own Linux Tools for Binary Instrumentation, Analysis, and Disassembly</a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593279124" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Dennis Andriesse (with a foreword by Herbert Bos) is a guide to looking into the binaries created by application-making software. This is a set of approaches to delve into the space in which malware may lurk, bugs may flourish almost invisibly, and inefficiencies may wreak their slow and ponderous havoc.</p>
<p>The book teaches how to:</p>
<li>Parse ELF and PE binaries and build a binary loader with libbfd</li>
<li>Use data-flow analysis techniques like program tracing, slicing, and reaching definitions analysis to reason about runtime flow of your programs</li>
<li>Modify ELF binaries with techniques like parasitic code injection and hex editing</li>
<li>Build custom disassembly tools with Capstone</li>
<li>Use binary instrumentation to circumvent anti-analysis tricks commonly used by malware</li>
<li>Apply taint analysis to detect control hijacking and data leak attacks</li>
<li>Use symbolic execution to build automatic exploitation tools</li>
<p>The most important way in which this book will change your life is that it will allow you to analyze binaries more automatically and with less manual work.</p>
<p>I can not truly evaluate this book because this is way beyond, or maybe, way below (as in down deep in the abyss of computer science where I assume small gnomes still write all the assembler language) my understanding of thing. But the book gains great praise from others, and is a brand new edition.</p>
<p>Dennis Andriesse has a Ph.D. in system and network security and uses binary analysis daily in his research. He is one of the main contributors to PathArmor, a Control-Flow Integrity system that defends against control-flow hijacking attacks such as ROP. Andriesse was also one of the attack developers involved in the takedown of the GameOver Zeus P2P botnet.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gregladen.com/blog/2019/01/25/practical-binary-analysis-book-review/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">31419</post-id>	</item>
		<item>
		<title>Scratch 3.0 is coming</title>
		<link>https://gregladen.com/blog/2018/12/21/scratch-3-0-is-coming/</link>
					<comments>https://gregladen.com/blog/2018/12/21/scratch-3-0-is-coming/#respond</comments>
		
		<dc:creator><![CDATA[Greg Laden]]></dc:creator>
		<pubDate>Fri, 21 Dec 2018 19:53:35 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[scratch]]></category>
		<category><![CDATA[STEM]]></category>
		<guid isPermaLink="false">https://gregladen.com/blog/?p=31257</guid>

					<description><![CDATA[Scratch is a seminal object oriented programming language that has had a great deal of influence on other languages. It is an entry level system designed for kids and adults new to programming. If you have a kid doing any kind of robotics or STEM programming in elementary school, they are using a programming langauge &#8230; <a href="https://gregladen.com/blog/2018/12/21/scratch-3-0-is-coming/" class="more-link">Continue reading <span class="screen-reader-text">Scratch 3.0 is coming</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Scratch is a seminal object oriented programming language that has had a great deal of  influence on other languages. It is an entry level system designed for <a href="https://gregladen.com/blog/2016/10/28/learn-scratch-programming-for-kids-and-adults/">kids and adults new to programming</a>.  If you have a kid doing any kind of robotics or STEM programming in elementary school, they are using a programming langauge that derives from Scratch.</p>
<p>It comes out of MIT, and is usually used on their server, using a web interface.</p>
<p>That web interface is closing at 7 AM on January 2nd.  Later that afternoon, it will be back up, but with Scratch 3.0!</p>
<p>Here&#8217;s a video.<span id="more-31257"></span></p>
<p><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/6ofHiea__hU" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p>I&#8217;m especially excited about the physical interface tools. Some of that was already in place in a separate parallel project that was more experimental.  It is nice to see Scratch itself advancing.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gregladen.com/blog/2018/12/21/scratch-3-0-is-coming/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">31257</post-id>	</item>
		<item>
		<title>Learning Python In A Flash&#8230;</title>
		<link>https://gregladen.com/blog/2018/11/05/learning-python-in-a-flash/</link>
					<comments>https://gregladen.com/blog/2018/11/05/learning-python-in-a-flash/#comments</comments>
		
		<dc:creator><![CDATA[Greg Laden]]></dc:creator>
		<pubDate>Mon, 05 Nov 2018 22:19:47 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[Flash Cards]]></category>
		<category><![CDATA[Learning Python]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://gregladen.com/blog/?p=30831</guid>

					<description><![CDATA[&#8230; card. Python Flash Cards: Syntax, Concepts, and Examples is a new book-not-a-book that helps people who are staring out learning the Python programming language. First, lets get one thing straight about Phython. If you (or, maybe, your kid) is going to learn to code, you&#8217;ve got to learn Python. It isn&#8217;t the only coding &#8230; <a href="https://gregladen.com/blog/2018/11/05/learning-python-in-a-flash/" class="more-link">Continue reading <span class="screen-reader-text">Learning Python In A Flash&#8230;</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>&#8230; card.</p>
<p><a target="_blank" href="https://www.amazon.com/gp/product/1593278969/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593278969&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=1b23285101a4eea537867991a41fd7d8">Python Flash Cards: Syntax, Concepts, and Examples</a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593278969" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is a new book-not-a-book that helps people who are staring out learning the Python programming language.<span id="more-30831"></span></p>
<p>First, lets get one thing straight about Phython.  If you (or, maybe, your kid) is going to learn to code, you&#8217;ve got to learn Python. It isn&#8217;t the only coding language out there, and depending on what you do with coding, Python might be something you do all the time or almost never. But it is a good bet that the arbitrary future coder will be coding in Python in the future.</p>
<p>Python is both simple and complex, easy and hard.  I think it is probably easier for people who have never previously coded to learn than for old timers who cut their teeth on structured languages. Python actually is structured, but it is also object oriented. If you don&#8217;t know the difference between the two, don&#8217;t worry. Suffice it to say that the following works:</p>
<p><img loading="lazy" decoding="async" data-attachment-id="30832" data-permalink="https://gregladen.com/blog/2018/11/05/learning-python-in-a-flash/python_list_example_sort/" data-orig-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_List_Example_Sort.png?fit=913%2C289&amp;ssl=1" data-orig-size="913,289" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Python_List_Example_Sort" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_List_Example_Sort.png?fit=300%2C95&amp;ssl=1" data-large-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_List_Example_Sort.png?fit=604%2C191&amp;ssl=1" src="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_List_Example_Sort-650x206.png?resize=604%2C191" alt="" width="604" height="191" class="aligncenter size-large wp-image-30832" srcset="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_List_Example_Sort.png?resize=650%2C206&amp;ssl=1 650w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_List_Example_Sort.png?resize=500%2C158&amp;ssl=1 500w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_List_Example_Sort.png?resize=300%2C95&amp;ssl=1 300w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_List_Example_Sort.png?resize=768%2C243&amp;ssl=1 768w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_List_Example_Sort.png?w=913&amp;ssl=1 913w" sizes="(max-width: 604px) 100vw, 604px" data-recalc-dims="1" /></p>
<p>This is using a command interpreter, demonstrating that Python is sort of like a command line language if you want it to be.  I entered Python statements and got instant results.  That is not how Python is usually run, but it can be helpful.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="30834" data-permalink="https://gregladen.com/blog/2018/11/05/learning-python-in-a-flash/python_flash_cards/" data-orig-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_Flash_Cards.jpg?fit=360%2C406&amp;ssl=1" data-orig-size="360,406" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;Pixel XL&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1541433230&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;4.67&quot;,&quot;iso&quot;:&quot;448&quot;,&quot;shutter_speed&quot;:&quot;0.016667&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;1&quot;}" data-image-title="Python_Flash_Cards" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_Flash_Cards.jpg?fit=266%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_Flash_Cards.jpg?fit=360%2C406&amp;ssl=1" src="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_Flash_Cards.jpg?resize=360%2C406" alt="" width="360" height="406" class="alignright size-full wp-image-30834" srcset="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_Flash_Cards.jpg?w=360&amp;ssl=1 360w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/Python_Flash_Cards.jpg?resize=266%2C300&amp;ssl=1 266w" sizes="(max-width: 360px) 100vw, 360px" data-recalc-dims="1" />Notice that I created a &#8220;list&#8221; which is an object that includes a list of things.  I cleverly made the list, in its original form, a sentence of sorts.  I then printed it so you could see that the list indeed has stuff in it.  What I did there could be done in a similar form in virtually any language, though the concept of a &#8220;list&#8221; in Python (as opposed to the very similar &#8220;array&#8221; or &#8220;matrix&#8221; in other languages) is much more powerful than demonstrated here.</p>
<p>Then, I did the object-oriented thing.  I called up the list (&#8220;aList&#8221;) but with a dot followed by a thing that made that list change.  It became sorted.  I then printed it.</p>
<p>Anyway, enough messing around.  Python is a great and powerful Oz of a language, and it is very widely used, which means that there are a LOT of powerful libraries that can be drawn on to do a lot of things.</p>
<p>If you, or your kid, plays around with a Raspberry Pi, then you&#8217;ll want to learn Python because that is the handiest way to program it.</p>
<p>So, back to the <a target="_blank" href="https://www.amazon.com/gp/product/1593278969/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593278969&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=00e01362ff6f860841d9a70dd7208214">Python Flash Cards</a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593278969" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  There are helpful and just plain fun.  As you learn concepts, you can go through the cards and use them exactly like flash cards (because they are actual flash cards) to both review and backfill gaps in your knowledge.</p>
<p>The topics on the cards range from &#8220;what is a string&#8221; to how to loop through lists (yes, you can loop through a list) to how to define classes and methods (that&#8217;s object-oriented stuff, where you make your own object oriented mojo like the &#8220;sort&#8221; thingie we used above).</p>
<p>The author is Eric Matthes, a high school science and math teacher in Alaska.  He teaches introductory programming classes. He is the author of the previously reviewed and highly recommended <a target="_blank" href="https://www.amazon.com/gp/product/1593276036/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593276036&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=e6b522af03b101196648a48e1defe322">Python Crash Course: A Hands-On, Project-Based Introduction to Programming</a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593276036" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, which goes nicely with the flash cards.</p>
<p>The flash cards are not available yet but will be out in a few days. You can pre-order. They will come in time for the holidays, and they are, in fact, a great holiday gift for your 11 year old future programmer.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gregladen.com/blog/2018/11/05/learning-python-in-a-flash/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">30831</post-id>	</item>
		<item>
		<title>Mission Python Video Game</title>
		<link>https://gregladen.com/blog/2018/11/04/mission-python-video-game/</link>
					<comments>https://gregladen.com/blog/2018/11/04/mission-python-video-game/#respond</comments>
		
		<dc:creator><![CDATA[Greg Laden]]></dc:creator>
		<pubDate>Sun, 04 Nov 2018 22:30:58 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Game coding]]></category>
		<category><![CDATA[Learning coding]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Python coding]]></category>
		<guid isPermaLink="false">https://gregladen.com/blog/?p=30814</guid>

					<description><![CDATA[&#8230;and book! Mission Python: Code a Space Adventure Game! by Sean McManus, is a book that guides a novice through python programming, and in the end, they get a pretty good video game for free. You can actually download the Python code and have the game without learning anything beyond how to download then run &#8230; <a href="https://gregladen.com/blog/2018/11/04/mission-python-video-game/" class="more-link">Continue reading <span class="screen-reader-text">Mission Python Video Game</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>&#8230;and book!</p>
<p><a target="_blank" href="https://www.amazon.com/gp/product/1593278578/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593278578&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=c7f097c0ad7a3cb177d74607b2a21fed">Mission Python: Code a Space Adventure Game!</a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593278578" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by Sean McManus, is a book that guides a novice through python programming, and in the end, they get a pretty good video game for free.<span id="more-30814"></span></p>
<p><img loading="lazy" decoding="async" data-attachment-id="30816" data-permalink="https://gregladen.com/blog/2018/11/04/mission-python-video-game/missionpython_cover-front_new-1/" data-orig-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/missionpython_cover-front_new-1.png?fit=504%2C666&amp;ssl=1" data-orig-size="504,666" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="missionpython_cover-front_new (1)" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/missionpython_cover-front_new-1.png?fit=227%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/missionpython_cover-front_new-1.png?fit=504%2C666&amp;ssl=1" src="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/missionpython_cover-front_new-1-227x300.png?resize=227%2C300" alt="" width="227" height="300" class="alignright size-medium wp-image-30816" srcset="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/missionpython_cover-front_new-1.png?resize=227%2C300&amp;ssl=1 227w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/missionpython_cover-front_new-1.png?resize=500%2C661&amp;ssl=1 500w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/11/missionpython_cover-front_new-1.png?w=504&amp;ssl=1 504w" sizes="(max-width: 227px) 100vw, 227px" data-recalc-dims="1" />You can actually download the Python code and have the game without learning anything beyond how to download then run a Python program.  You can not download anything, and follow the book through all the stages of development, making the occasional and learning from your mistake. Or, you can download the code, and do a combination of entering it yourself, cutting and pasting, and slowly building up the program, for a less frustrating (frustrations caused by your typos) yet very educational experience.</p>
<p>(Also, the game uses sounds that you can download from the same source as the source code.)</p>
<p>The code is actually remarkably short given the complexity of the game. As the reader develops the game, they are guided through the process of understanding what the various code blocks do.  Someone who goes through the book pretty carefully, and works with the code though most of it, will get a basic understanding of how to use Python to write other programs.</p>
<p>The book sues Pygam Zero, which is a graphics and sound library.</p>
<p>Since this is Python, it works on all the usual platforms.</p>
<p>Here is a video of the game:</p>
<p><iframe loading="lazy" width="560" height="315" src="https://www.youtube.com/embed/_2aglIeW1kQ" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p>This is a fun book, and though I&#8217;ve not completed the process of making the game, I have worked through quite a bit of it.  This is a good way to learn Python, in my opinion. Might make a great holiday gift for a gifted younun&#8217; looking to up their game in coding games.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gregladen.com/blog/2018/11/04/mission-python-video-game/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">30814</post-id>	</item>
		<item>
		<title>Kids Learn Coding with Scratch Cards</title>
		<link>https://gregladen.com/blog/2018/08/08/kids-learn-coding-with-scratch-cards/</link>
					<comments>https://gregladen.com/blog/2018/08/08/kids-learn-coding-with-scratch-cards/#comments</comments>
		
		<dc:creator><![CDATA[Greg Laden]]></dc:creator>
		<pubDate>Wed, 08 Aug 2018 17:28:58 +0000</pubDate>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Scratch coding]]></category>
		<category><![CDATA[Scratch coding cards]]></category>
		<guid isPermaLink="false">https://gregladen.com/blog/?p=30189</guid>

					<description><![CDATA[First, in case you don&#8217;t know, &#8220;Scratch&#8221; is a programming language and environment. Its mascot is a cat, of course, but the name &#8220;scratch&#8221; supposedly comes from the use of scratching by disk jockeys. Scratch was first developed at MIT back in the early 2000s, and has advanced considerably since then. You now see the &#8230; <a href="https://gregladen.com/blog/2018/08/08/kids-learn-coding-with-scratch-cards/" class="more-link">Continue reading <span class="screen-reader-text">Kids Learn Coding with Scratch Cards</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>First, in case you don&#8217;t know, &#8220;Scratch&#8221; is a programming language and environment.</p>
<p><img loading="lazy" decoding="async" data-attachment-id="30191" data-permalink="https://gregladen.com/blog/2018/08/08/kids-learn-coding-with-scratch-cards/sctratch_coding_example_apoctolyptic_mahyhemicalism/" data-orig-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/08/sctratch_coding_example_apoctolyptic_mahyhemicalism.png?fit=478%2C715&amp;ssl=1" data-orig-size="478,715" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="sctratch_coding_example_apoctolyptic_mahyhemicalism" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/08/sctratch_coding_example_apoctolyptic_mahyhemicalism.png?fit=201%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/08/sctratch_coding_example_apoctolyptic_mahyhemicalism.png?fit=478%2C715&amp;ssl=1" src="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/08/sctratch_coding_example_apoctolyptic_mahyhemicalism-201x300.png?resize=201%2C300" alt="" width="201" height="300" class="alignright size-medium wp-image-30191" srcset="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/08/sctratch_coding_example_apoctolyptic_mahyhemicalism.png?resize=201%2C300&amp;ssl=1 201w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2018/08/sctratch_coding_example_apoctolyptic_mahyhemicalism.png?w=478&amp;ssl=1 478w" sizes="(max-width: 201px) 100vw, 201px" data-recalc-dims="1" />Its mascot is a cat, of course, but the name &#8220;scratch&#8221; supposedly comes from the use of scratching by disk jockeys.  Scratch was first developed at MIT back in the early 2000s, and has advanced considerably since then. You now see the basic format of this language either duplicated or mimicked in many different environments.</p>
<p>Scratch can be an online langauge or you can run a stand alone version, but the former is easier and better.  To get started, go <a href="https://scratch.mit.edu/">here</a> and follow instructions.</p>
<p>If you want (your kid or you) to learn scratch fast, you may want to consider getting the cards produced by No Starch Press. You can get <a target="_blank" href="https://www.amazon.com/gp/product/1593278993/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593278993&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=01b2a85626c66b01509434d3ba02db30" rel="noopener">ScratchJr Coding Cards for ages 5 and up</a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593278993" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />, or  the much more advanced <a target="_blank" href="https://www.amazon.com/gp/product/1593277741/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593277741&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=1bd2d70fcfee75b9ea63a70fc05d59f9" rel="noopener">Scratch Coding Cards for kids 8 and above</a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593277741" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.</p>
<p>The idea is simple. You put the stack of cards on your desk next to the computer, which is tuned to the MIT Scratch site. Then you try out the stuff in the cards.  By the time you are done you (or your kid if you step aside and allow access to the computer) will be pretty good at scratch programming.</p>
<p>By the way, Scratch runs on the web so you can access it from any sort of desktop or laptop computer including Chromebooks,a nd there are iOS and Android versions. It runs on the Kindle Fire as well.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gregladen.com/blog/2018/08/08/kids-learn-coding-with-scratch-cards/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">30189</post-id>	</item>
		<item>
		<title>Python Programming To Automate Common Tasks</title>
		<link>https://gregladen.com/blog/2017/05/11/python-programming-to-automate-common-tasks/</link>
					<comments>https://gregladen.com/blog/2017/05/11/python-programming-to-automate-common-tasks/#comments</comments>
		
		<dc:creator><![CDATA[Greg Laden]]></dc:creator>
		<pubDate>Thu, 11 May 2017 12:00:42 +0000</pubDate>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[Computer Tricks]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[They used to call it programming]]></category>
		<guid isPermaLink="false">http://scienceblogs.com/gregladen/?p=24050</guid>

					<description><![CDATA[Automate the Boring Stuff with Python: Practical Programming for Total Beginners by super Python expert Al Sweigart is a pretty thick intermedia to somewhat advanced level programming book. It covers how Python works, so someone familiar with programming languages can get up to speed. Then, the book tackles a number of key important tasks one &#8230; <a href="https://gregladen.com/blog/2017/05/11/python-programming-to-automate-common-tasks/" class="more-link">Continue reading <span class="screen-reader-text">Python Programming To Automate Common Tasks</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><a target="_blank" href="https://www.amazon.com/gp/product/1593275994/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593275994&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=515bc153dae67d8daadb3a1628211d50">Automate the Boring Stuff with Python: Practical Programming for Total Beginners</a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593275994" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> by super Python expert Al Sweigart is a pretty thick intermedia to somewhat advanced level programming book.</p>
<p>It covers how Python works, so someone familiar with programming languages can get up to speed. Then, the book tackles a number of key important tasks one may use a computer for.  This includes working with Regular Expressions, file reading and writing, web scraping, interacting with Excel spreadsheets and PDF files, scheduling things, working with email, manipulating images, and messing around with the keyboard and mouse.</p>
<p>I wold like to see a second volume with yet more programming ideas and examples. It could be a series.</p>
<p>From the publishers:</p>
<blockquote><p>If you&#8217;ve ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you could have your computer do them for you?</p>
<p>In Automate the Boring Stuff with Python, you&#8217;ll learn how to use Python to write programs that do in minutes what would take you hours to do by hand—no prior programming experience required. Once you&#8217;ve mastered the basics of programming, you&#8217;ll create Python programs that effortlessly perform useful and impressive feats of automation to:</p>
<li>Search for text in a file or across multiple files</li>
<li>Create, update, move, and rename files and folders</li>
<li>Search the Web and download online content</li>
<li>Update and format data in Excel spreadsheets of any size</li>
<li>Split, merge, watermark, and encrypt PDFs</li>
<li>Send reminder emails and text notifications</li>
<li>Fill out online forms</li>
<p>Step-by-step instructions walk you through each program, and practice projects at the end of each chapter challenge you to improve those programs and use your newfound skills to automate similar tasks.</p></blockquote>
<p><a target="_blank" href="https://www.amazon.com/gp/product/1593275994/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593275994&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=71fa5a0a2589c0d481ff4ed6b5ce1f95">Check it out.</a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593275994" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><a href="http://scienceblogs.com/gregladen/files/2017/05/Screen-Shot-2017-05-08-at-3.15.53-PM.png"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gregladen.com/blog/2017/05/11/python-programming-to-automate-common-tasks/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">24050</post-id>	</item>
		<item>
		<title>Programming in Small Basic</title>
		<link>https://gregladen.com/blog/2017/04/26/small-basic-programming/</link>
					<comments>https://gregladen.com/blog/2017/04/26/small-basic-programming/#comments</comments>
		
		<dc:creator><![CDATA[Greg Laden]]></dc:creator>
		<pubDate>Wed, 26 Apr 2017 20:44:16 +0000</pubDate>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Small Basic]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">http://scienceblogs.com/gregladen/?p=23989</guid>

					<description><![CDATA[Learn to Program with Small Basic: An Introduction to Programming with Games, Art, Science, and Math is yet another addition to the growing list of programming books for people interesting in learning programming. Basic is an under-appreciated language. I wish I had a good basic compiler handy, and I&#8217;d love to see a basic scripting &#8230; <a href="https://gregladen.com/blog/2017/04/26/small-basic-programming/" class="more-link">Continue reading <span class="screen-reader-text">Programming in Small Basic</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><a target="_blank" href="https://www.amazon.com/gp/product/1593277024/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593277024&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=65bbe730af1b9bbe2d4ec288954f3c36">Learn to Program with Small Basic: An Introduction to Programming with Games, Art, Science, and Math</a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593277024" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is yet another addition to the growing list of programming books for people interesting in learning programming.</p>
<p>Basic is an under-appreciated language. I wish I had a good basic compiler handy, and I&#8217;d love to see a basic scripting version that worked like bash.  Can you see the value of that?</p>
<p>Anyway, Small Basic is an updated modernish basic that runs only on Windows, so while I can&#8217;t use it, you might, and this book looks like a good intro. From the publisher:</p>
<blockquote><p>Small Basic is a free, beginner-friendly programming language created by Microsoft to inspire kids to learn to program. Based on BASIC, which introduced programming to millions of first-time PC owners in the 1970s and 1980s, Small Basic is a modern language that makes coding simple and fun.</p>
<p>Learn to Program with Small Basic brings code to life and introduces you to the empowering world of programming. You&#8217;ll master the basics with simple activities like displaying messages and drawing colorful pictures, and work your way up to programming playable games! You&#8217;ll learn how to:</p>
<li>Store and manipulate data with variables</li>
<li>Process user input to make interactive programs</li>
<li>Use if/else statements to make decisions</li>
<li>Create loops to automate repetitive code</li>
<li>Break up long programs into bite-sized subroutines</li>
<p>Inside, you&#8217;ll find hands-on projects that will challenge and inspire you. You&#8217;ll command a turtle to draw shapes, program magical moving text, solve all kinds of math problems, help a knight slay a fearsome dragon, and more! Each chapter ends with extra practice examples so you can take your programming skills to the next level!</p></blockquote>
<p><a target="_blank" href="https://www.amazon.com/gp/product/1593277024/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593277024&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=82e9c9bbde1abc23ef91c0dd493a0829">Check it out! </a><img loading="lazy" decoding="async" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=am2&#038;o=1&#038;a=1593277024" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://gregladen.com/blog/2017/04/26/small-basic-programming/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">23989</post-id>	</item>
		<item>
		<title>Books On Computer Programming and Computers</title>
		<link>https://gregladen.com/blog/2017/03/09/books-computer-programming-computers/</link>
					<comments>https://gregladen.com/blog/2017/03/09/books-computer-programming-computers/#comments</comments>
		
		<dc:creator><![CDATA[Greg Laden]]></dc:creator>
		<pubDate>Thu, 09 Mar 2017 20:29:14 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://gregladen.com/blog/?p=9266</guid>

					<description><![CDATA[Python Learning Python Python Crash Course: A Hands-On, Project-Based Introduction to Programming is a fast-paced, thorough introduction to programming with Python that will have you writing programs, solving problems, and making things that work in no time. In the first half of the book, you&#8217;ll learn about basic programming concepts, such as lists, dictionaries, classes, &#8230; <a href="https://gregladen.com/blog/2017/03/09/books-computer-programming-computers/" class="more-link">Continue reading <span class="screen-reader-text">Books On Computer Programming and Computers</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<h2>Python</h2>
<h3>Learning Python<br />
<a href="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/02/Python_Crash_Course.png"><img loading="lazy" decoding="async" data-attachment-id="9268" data-permalink="https://gregladen.com/blog/2017/03/09/books-computer-programming-computers/python_crash_course/" data-orig-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/02/Python_Crash_Course.png?fit=272%2C353&amp;ssl=1" data-orig-size="272,353" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Python_Crash_Course" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/02/Python_Crash_Course.png?fit=231%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/02/Python_Crash_Course.png?fit=272%2C353&amp;ssl=1" class="alignright size-full wp-image-9268" src="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/02/Python_Crash_Course.png?resize=272%2C353" alt="" width="272" height="353" srcset="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/02/Python_Crash_Course.png?w=272&amp;ssl=1 272w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/02/Python_Crash_Course.png?resize=231%2C300&amp;ssl=1 231w" sizes="(max-width: 272px) 100vw, 272px" data-recalc-dims="1" /></a><a href="https://www.amazon.com/gp/product/1593276036/ref=as_li_tl?ie=UTF8&amp;camp=1789&amp;creative=9325&amp;creativeASIN=1593276036&amp;linkCode=as2&amp;tag=grlasbl0a-20&amp;linkId=ddfdaf064c0cc1475cb3b03c5b202a41" target="_blank">Python Crash Course: A Hands-On, Project-Based Introduction to Programming</a><img loading="lazy" decoding="async" style="border: none !important; margin: 0px !important;" src="//ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&amp;l=am2&amp;o=1&amp;a=1593276036" alt="" width="1" height="1" border="0" /> is a fast-paced, thorough introduction to programming with Python that will have you writing programs, solving problems, and making things that work in no time.</h3>
<p>In the first half of the book, you&#8217;ll learn about basic programming concepts, such as lists, dictionaries, classes, and loops, and practice writing clean and readable code with exercises for each topic. You&#8217;ll also learn how to make your programs interactive and how to test your code safely before adding it to a project. In the second half of the book, you&#8217;ll put your new knowledge into practice with three substantial projects: a Space Invaders-inspired arcade game, data visualizations with Python&#8217;s super-handy libraries, and a simple web app you can deploy online.</p>
<p>My review: <a href="http://scienceblogs.com/gregladen/category/books/">How to learn Python programming</a></p>
<p>MORE COMING SOON</p>
<p><a href="http://scienceblogs.com/gregladen/2016/10/28/learn-scratch-programming-for-kids-and-adults/"><strong>Learn Scratch Programming (For Kids And Adults)</strong></a></p>
<p><a href="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.33.19-PM.png"><img loading="lazy" decoding="async" data-attachment-id="9291" data-permalink="https://gregladen.com/blog/2017/03/09/books-computer-programming-computers/screen-shot-2017-03-09-at-2-33-19-pm/" data-orig-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.33.19-PM.png?fit=282%2C371&amp;ssl=1" data-orig-size="282,371" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 2017-03-09 at 2.33.19 PM" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.33.19-PM.png?fit=228%2C300&amp;ssl=1" data-large-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.33.19-PM.png?fit=282%2C371&amp;ssl=1" src="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.33.19-PM.png?resize=282%2C371" alt="" width="282" height="371" class="alignright size-full wp-image-9291" srcset="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.33.19-PM.png?w=282&amp;ssl=1 282w, https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.33.19-PM.png?resize=228%2C300&amp;ssl=1 228w" sizes="(max-width: 282px) 100vw, 282px" data-recalc-dims="1" /></a></p>
<blockquote><p>Scratch, the colorful drag-and-drop programming language, is used by millions of first-time learners, and in Scratch Programming Playground, you&#8217;ll learn to program by making cool games. Get ready to destroy asteroids, shoot hoops, and slice and dice fruit!</p>
<p>Each game includes easy-to-follow instructions, review questions, and creative coding challenges to make the game your own. Want to add more levels or a cheat code? No problem, just write some code.</p></blockquote>
<p><a href="http://scienceblogs.com/gregladen/2016/11/11/kids-programming-technology-books/"><strong>Coding projects in Scratch and other items.</strong></a></p>
<p><a href="http://scienceblogs.com/gregladen/2016/01/01/learn-python-using-minecraft/"><strong>Learn Python Using Minecraft</strong></a></p>
<p><a href="http://scienceblogs.com/gregladen/2017/01/14/write-computer-games-in-python/"><strong>Write Computer Games In Python</strong></a></p>
<p><a href="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.35.25-PM.png"><img loading="lazy" decoding="async" data-attachment-id="9292" data-permalink="https://gregladen.com/blog/2017/03/09/books-computer-programming-computers/screen-shot-2017-03-09-at-2-35-25-pm/" data-orig-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.35.25-PM.png?fit=253%2C206&amp;ssl=1" data-orig-size="253,206" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 2017-03-09 at 2.35.25 PM" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.35.25-PM.png?fit=253%2C206&amp;ssl=1" data-large-file="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.35.25-PM.png?fit=253%2C206&amp;ssl=1" src="https://i0.wp.com/gregladen.com/blog/wp-content/uploads/2017/03/Screen-Shot-2017-03-09-at-2.35.25-PM.png?resize=253%2C206" alt="" width="253" height="206" class="alignright size-full wp-image-9292" data-recalc-dims="1" /></a></p>
<blockquote><p><em>Invent Your Own Computer Games</em> with Python will teach you how to make computer games using the popular Python programming language&#8211;even if you&#8217;ve never programmed before!</p>
<p>Begin by building classic games like Hangman, Guess the Number, and Tic-Tac-Toe, and then work your way up to more advanced games, like a text-based treasure hunting game and an animated collision-dodging game with sound effects. Along the way, you&#8217;ll learn key programming and math concepts that will help you take your game programming to the next level.</p></blockquote>
<p><a href="http://scienceblogs.com/gregladen/2017/01/25/scratch-programming-cards/"><strong>Scratch Programming For Kids, By The Cards</strong></a></p>
<blockquote><p>Want to introduce kids to coding in a fun and creative way?</p>
<p>With the Scratch Coding Cards, kids learn to code as they create interactive games, stories, music, and animations. The short-and-simple activities provide an inviting entry point into Scratch, the graphical programming language used by millions of kids around the world.</p>
<p>Kids can use this colorful 75-card deck to create a variety of interactive programming projects. They&#8217;ll create their own version of Pong, Write an Interactive Story, Create a Virtual Pet, Play Hide and Seek, and more!</p>
<p>Each card features step-by-step instructions for beginners to start coding with Scratch. The front of the card shows an activity kids can do with Scratch&#8211;like animating a character or keeping score in a game. The back shows how to put together code blocks to make the projects come to life! Along the way, kids learn key coding concepts, such as sequencing, conditionals, and variables.</p>
<p>This collection of coding activity cards is perfect for sharing among small groups in homes and schools.</p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://gregladen.com/blog/2017/03/09/books-computer-programming-computers/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">9266</post-id>	</item>
		<item>
		<title>Learn Python Using Minecraft</title>
		<link>https://gregladen.com/blog/2016/01/01/learn-python-using-minecraft/</link>
					<comments>https://gregladen.com/blog/2016/01/01/learn-python-using-minecraft/#comments</comments>
		
		<dc:creator><![CDATA[Greg Laden]]></dc:creator>
		<pubDate>Fri, 01 Jan 2016 17:28:57 +0000</pubDate>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[Minecraft]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Technology]]></category>
		<guid isPermaLink="false">http://scienceblogs.com/gregladen/?p=21972</guid>

					<description><![CDATA[Minecraft is a gaming world. Or, if you like, a &#8220;sandbox.&#8221; This is a three dimensional world in which characters do things, all sorts of things. The context for the world of Minecraft is very open ended. The player builds things, moves things, gets things, does things, in a way that makes any one gamer&#8217;s &#8230; <a href="https://gregladen.com/blog/2016/01/01/learn-python-using-minecraft/" class="more-link">Continue reading <span class="screen-reader-text">Learn Python Using Minecraft</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Minecraft is a gaming world. Or, if you like, a &#8220;sandbox.&#8221;  This is a three dimensional world in which characters do things, all sorts of things. The context for the world of Minecraft is very open ended.  The player builds things, moves things, gets things, does things, in a way that makes any one gamer&#8217;s game potentially very different from any other gamer&#8217;s game.</p>
<p>You can buy Minecraft in various forms such as an <a rel="nofollow" href="http://www.amazon.com/gp/product/B00BU3ZLJQ/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B00BU3ZLJQ&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=HY4DIYGZT2RFTAYX">XBox 360 version</a><img loading="lazy" decoding="async" src="https://ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=as2&#038;o=1&#038;a=B00BU3ZLJQ" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  It comes in Lego form (<a rel="nofollow" href="http://www.amazon.com/gp/product/B00NW2Q6ZG/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=B00NW2Q6ZG&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=GO3OY46OXLC4YWMR">for example, this</a><img loading="lazy" decoding="async" src="https://ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=as2&#038;o=1&#038;a=B00NW2Q6ZG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />), and you can get a Minecraft cloud server version at <a href="https://minecraft.net/">Minecraft.net</a>.</p>
<p>If you install Minecraft from Minecraft.net (about 30 bucks) and have Python 3, Java, the Minceraft Python API, and a Spigot Minecraft Server, you can program your own versions of the game using Python programming/scripting language.</p>
<p>But how? How do you do that?</p>
<p>Well, you can get <a rel="nofollow" href="http://www.amazon.com/gp/product/1593276702/ref=as_li_tl?ie=UTF8&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1593276702&#038;linkCode=as2&#038;tag=grlasbl0a-20&#038;linkId=HIWJVTBC7FX27EU6">Learn to Program with Minecraft: Transform Your World with the Power of Python</a><img loading="lazy" decoding="async" src="https://ir-na.amazon-adsystem.com/e/ir?t=grlasbl0a-20&#038;l=as2&#038;o=1&#038;a=1593276702" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />. This book is intended to teach programming, in the Minecraft setting.  The book is designed for kids 10 years and older, though I&#8217;m sure some younger kids can use it. Also, it must be admitted that a learning to program book like this may be most valuable for adults who are not coders but want to learn some coding, and happen to be gamers and like Minecraft.</p>
<p>The book, new on the market, provides excellent instructions for setting up all that stuff mentioned above.  Everything should work on a Windows machine, on Mac OS X, and <a href="http://www.howtogeek.com/198476/how-to-install-minecraft-on-ubuntu-or-any-other-linux-distribution/">Linux</a>.</p>
<p>The programming you do with this book is pretty sophisticated.  You learn to create palaces, pyramids, to teleoport players around, to stack blocks, interact with Minecraft&#8217;s chat feature, blow stuff up, cast spells, and replicate sections of the Minecraft countryside.</p>
<p>Here is what is interesting about this approach. Python programming is pretty basic, and pretty useful, but one has to do a lot of work to develop something slick and fancy and highly functional (counting working video games or interfaces as highly functional).  But working with the existing Minecraft system, via the API, allows some relatively simple programming to produce impressive results. This is &#8220;Hello World&#8221; on steroids, at the very least.</p>
<p>Of all the diverse No Starch Press programming guides, this one may turn out to be the most effective, as a teaching tools, for that special case where a person is already interested in Minecraft and wants to learn Python.</p>
<p>Here is the Table of Contents:</p>
<p>Introduction<br />
Chapter 1: Setting Up for Your Adventure<br />
Chapter 2: Teleporting with Variables<br />
Chapter 3: Building Quickly and Traveling Far with Math<br />
Chapter 4: Chatting with Strings<br />
Chapter 5: Figuring Out What&#8217;s True and False with Booleans<br />
Chapter 6: Making Mini-Games with if Statements<br />
Chapter 7: Dance Parties and Flower Parades with while Loops<br />
Chapter 8: Functions Give You Superpowers<br />
Chapter 9: Hitting Things with Lists and Dictionaries<br />
Chapter 10: Minecraft Magic with for Loops<br />
Chapter 11: Saving and Loading Buildings with Files and Modules<br />
Chapter 12: Getting Classy with Object-Oriented Programming<br />
Afterword<br />
Block ID Cheat Sheet</p>
<p>The author, Craig Richardson, is a teacher of Python, former high school computing science teacher, and has been involved with the Raspberry Pi Foundation.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gregladen.com/blog/2016/01/01/learn-python-using-minecraft/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">21972</post-id>	</item>
	</channel>
</rss>
