<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>csci1110 on Jonathan Cook</title>
    <link>http://www.cs.nmsu.edu/~jcook/tags/csci1110/</link>
    <description>Recent content in csci1110 on Jonathan Cook</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Sun, 15 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="http://www.cs.nmsu.edu/~jcook/tags/csci1110/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>CSCI 1110 Pages</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/csci1110/</link>
      <pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/csci1110/</guid>
      <description>Computational Thinking  introduction to computational thinking Abstraction Decomposition Pattern Recognition Data Representation Algorithms  Python  Intro to Python Python Image Manipulation Python Links External: W3Schools Python is a nice, clean resource (but with ads) External: OpenStax: Intro to Python  General  Number Systems (binary,hex,decimal) Character Data Intro to the Internet Intro to Encryption Unix/Linux Help College Success Lab  External  OpenStax: Intro to CS Student Success Is Simple — That Doesn’t Mean It’s Easy Big Six College Experiences Linked to Life Preparedness Light-Bot 2.</description>
    </item>
    
    <item>
      <title>Character Data</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/char-data/</link>
      <pubDate>Sun, 19 Jan 2025 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/char-data/</guid>
      <description>Understanding and manipulating textual data is fundamental to much programming. Strings are a bedrock knowledge area that you need to understand many other programming languages and environments. Strings hold (mostly) printable characters that make sense to humans &amp;ndash; we can read them and understand them! Since computers need to ultimately be useful to, and interact with, humans, strings will always be useful!
In many programming environments, character strings are still represented (by default) with 1 byte (8 bits) per character.</description>
    </item>
    
    <item>
      <title>Numbers and Numbering Systems</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/number-systems/</link>
      <pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/number-systems/</guid>
      <description>Probably by now you have heard the terms binary, bit, and byte somewhere already, and maybe you already know exactly what they mean and why they are used. But read on anyways!
The prefix &amp;ldquo;bi&amp;rdquo; means two, and so binary is a two-valued (or base-2) number system, with only the digits 0 and 1. Why is binary important? Well, in short, because computers operate in binary. Computers are electrical machines; everything we do with them must end up as electrical signals.</description>
    </item>
    
    <item>
      <title>Computational Thinking: Algorithms</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/ct-algorithms/</link>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/ct-algorithms/</guid>
      <description>This page builds on our introduction to computational thinking. Recall our five foundations of computational thinking:
 Abstraction Decomposition Pattern Recognition Data Representation Algorithms  Algorithms We put this foundation last, but in some sense to is the basic foundation that we cannot live without! It perhaps is the one foundation to rule them all. The others are important, but the heart of using computers is computation, and algorithms make computation happen.</description>
    </item>
    
    <item>
      <title>Computational Thinking: Data Representation</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/ct-datarep/</link>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/ct-datarep/</guid>
      <description>This page builds on our introduction to computational thinking. Recall our five foundations of computational thinking:
 Abstraction Decomposition Pattern Recognition Data Representation Algorithms  Data Representation Many decades ago a famous software developer, Fred Brooks, said, &amp;ldquo;&amp;quot;Show me your [code] and conceal your [data], and I shall continue to be mystified. Show me your [data], and I won&amp;rsquo;t usually need your [code]; it&amp;rsquo;ll be obvious.&amp;rdquo; (e.g., here and here). Or (on that first link), Linus Torvalds saying, &amp;ldquo;Bad programmers worry about the code.</description>
    </item>
    
    <item>
      <title>Computational Thinking: Pattern Recognition</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/ct-patternrec/</link>
      <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/ct-patternrec/</guid>
      <description>This page builds on our introduction to computational thinking. Recall our five foundations of computational thinking:
 Abstraction Decomposition Pattern Recognition Data Representation Algorithms  Pattern Recognition When programming computers (telling them what to do), we are trying to automate something that we used to do apart from computers. Almost always our desire to do this comes from a feeling of, &amp;ldquo;Why am I wasting my time doing this over and over when a device can do it for me?</description>
    </item>
    
    <item>
      <title>Computational Thinking: Decompostion</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/ct-decomposition/</link>
      <pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/ct-decomposition/</guid>
      <description>This page builds on our introduction to computational thinking. Recall our five foundations of computational thinking:
 Abstraction Decomposition Pattern Recognition Data Representation Algorithms  Decomposition In computer science decomposition is the act of breaking down a large, complex thing into smaller, more manageable, and understandable parts. Wikipedia:Decomposition says &amp;ldquo;In computer science, decomposition is the process of identifying and organising a complex system into smaller components or layers of abstraction.&amp;rdquo;</description>
    </item>
    
    <item>
      <title>Computational Thinking: Abstraction</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/ct-abstraction/</link>
      <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/ct-abstraction/</guid>
      <description>This page builds on our introduction to computational thinking. Recall our five foundations of computational thinking:
 Abstraction Decomposition Pattern Recognition Data Representation Algorithms  Abstraction Abstraction involves ignoring details that are unnecessary for the current issue at hand, and being able to talk about and reason about a thing apart from those details. We purposely say thing because it could be a concept in our world, a problem we are trying to solve, or a software system we are trying to develop.</description>
    </item>
    
    <item>
      <title>Intro to Computational Thinking</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/computational-thinking/</link>
      <pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/computational-thinking/</guid>
      <description>The foundations of computational thinking that are presented here are derived from the four pillars that were defined by Davidson and Murphy in their UPenn/Coursera computational thinking course. Other foundational models are out there, mostly overlapping but with their own nuances and foci.
There are many definitions of computational thinking out there. The one we will use is: Computational Thinking is the mental discipline of thinking about a problem using concepts from computer science, with the ultimate goal of solving the problem with the help of a computer.</description>
    </item>
    
    <item>
      <title>Python: An Introduction</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/python-intro/</link>
      <pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/python-intro/</guid>
      <description>This is a short introduction to Python 3, with my own focus and purpose. If you want a complete introduction to Python, the official Python Tutorial is a good place to go, and so is W3Schools:Python. For the purposes of CS 1110, I would not read past Chapter 4 &amp;ndash; the rest will probably just confuse you! Chapters 3 and 4 contain the heart of the Python language. The official documentation also has a language reference which is good for looking up specific operators and syntax when you do things wrong.</description>
    </item>
    
    <item>
      <title>Python: External Resources</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/python-links/</link>
      <pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/python-links/</guid>
      <description>W3Schools:Python is a good beginner&amp;rsquo;s place to go for Python (and other technologies).
The official Python Tutorial is good, and the official Python Language reference is also good.
https://en.wikibooks.org/wiki/Non-Programmer%27s_Tutorial_for_Python_3 is an extensive introduction to Python 3, and a good reference as a WikiBook. For Python 2, try here
http://www.python-course.eu/course.php is a well-done and extensive tutorial for Python 3. It also has very advanced material.
https://openstax.org/details/books/introduction-python-programming is a textbook-style Python introduction.</description>
    </item>
    
    <item>
      <title>Python: Image Manipulation</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/python-image-manip/</link>
      <pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/python-image-manip/</guid>
      <description>This page is a shorter documentation of the Python Imaging Library&amp;rsquo;s Image capabilities. The full documentation for the entire library is at https://pillow.readthedocs.io/en/stable/ and the documentation for the Image module (class) is at https://pillow.readthedocs.io/en/stable/reference/Image.html.
First, you need to have the PIL module installed in your Python installation. On Ubuntu and probably other Linux distros, this is the package &amp;ldquo;python-imaging&amp;rdquo;, and you can do &amp;ldquo;sudo apt-get install python-imaging&amp;rdquo;. Other platforms you will have to figure out.</description>
    </item>
    
    <item>
      <title>Succeeding at NMSU</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/college-success/</link>
      <pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/college-success/</guid>
      <description>This page is generally useful, but as a CSCI 1110 reading assignment, the ten questions must be answered in the assignment submission form.
Part 1 Watch this TED talk: Richard St. John&amp;rsquo;s 8 Secrets to Success (excuse the mild profanity near the end). Answer in complete sentences the following questions in the online submission form:
 According to the speaker, what are the 8 secrets of success? Which of the 8 do you already have or practice in your studies?</description>
    </item>
    
    <item>
      <title>Intro to Javascript</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/javascript-intro/</link>
      <pubDate>Sat, 30 May 2015 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/javascript-intro/</guid>
      <description>A very basic introduction, from old CS 111 notes&amp;hellip;
This is a very basic introduction to Javascript. If you get &amp;ldquo;hooked&amp;rdquo;, I&amp;rsquo;d suggest buying a book or at least doing a lot of online studying and experimentation.
Functions The code we write in a Javascript program is simply a collection of functions. Think of each function as the Snap equivalent of a script definition of a new block. Just like a new block, we have to give the function a name, declare its parameters, and define the code that makes up its behavior.</description>
    </item>
    
    <item>
      <title>How the Internet Works</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/intro-to-internet/</link>
      <pubDate>Wed, 20 May 2015 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/intro-to-internet/</guid>
      <description>This page presents the fundamentals about how the basic communication layers of the Internet work. You can find entire books on each aspect!
The Internet is a great example of using layered abstractions to solve a complex problem. Each layer solves one piece of the problem and then the next layer up can simply ignore the details below and build upon the abstraction to offer the next set of capabilities. The fundamental layered model is shown below:</description>
    </item>
    
    <item>
      <title>Encryption and Cryptography</title>
      <link>http://www.cs.nmsu.edu/~jcook/posts/encryption-intro/</link>
      <pubDate>Sun, 10 May 2015 00:00:00 +0000</pubDate>
      
      <guid>http://www.cs.nmsu.edu/~jcook/posts/encryption-intro/</guid>
      <description>Why do you trust a website when you give it your credit card information to purchase something? Why do you trust that no one in between you will be listening and be able to steal your credit card? Is it a matter of blind trust, or are there good technical reasons?
I hope you believe that there are good technical reasons &amp;ndash; because there are!
Cryptography has long been used to deliver secret messages between people, governments, and armies.</description>
    </item>
    
  </channel>
</rss>
