HTML & CSS Games

Welcome back from Spring Break!

I’m fortunate to be taking Web Content Strategies & Management this semester with Dr. David Hopping. Here are some games and tools I learned about in class to help me practice my HTML and CSS knowledge. These games are helpful whether you’re just starting web development or looking to improve your skills.

Grid Garden

CSS Grid Garden Homepage

Grid Garden is a great way to practice placing items on a page using the CSS 2-dimensional grid layout. Water your carrots by moving the water placement on the grid using the grid-column-start property.

Flexbox Froggy

Flexbox Froggy Homepage

Flexbox Froggy teaches you how to justify items within a flexbox by writing CSS to move the frog to the lily pad.

CSS Diner

CSS Diner Homepage

When learning CSS, it’s essential to know how to select which specific items you want to change with your CSS code. In CSS diner, you can practice writing CSS selectors to select elements by their type.

CSS Challenges

CSS Challenges Homepage

See how far you can get in these CSS challenges! Try to copy the format shown in each example to progress.

W3 Schools

W3 Schools Homepage

For more resources on learning HTML, CSS, or other major web languages, visit W3Schools. This website has step-by-step lessons and tutorials for self-guided learning. If you get stuck on any of the previous games, W3 Schools might be able to help you figure it out.

These games and tools have helped me enjoy learning basic web development skills, I hope they help you have fun with the process too. Happy coding!

*hacker voice* “I’m in” – Coding and Software for Data Analysis

While data analysis has existed in one form or another for centuries, its modern concept is highly tied to a digital environment, which means that people who are looking to move into the data science field will undoubtedly need some technology skills. In the data field, the primary coding languages include Python, R, and SQL. Software is a bit more complicated, with numerous different programs and services used depending on the situation, including Power BI, Spark, SAS, Excel, to name a few. While this is overwhelming, remember that it is not important to become an expert in all of the languages and software. Becoming skilled in one language and a few of the software options, depending on your interest or on the in-demand skills on job listings, will give you the transferable skills to quickly pick up the other languages and software as needed. If this still seems to be  an overwhelming prospect, remember that the best way to eat an elephant is one bite at a time. Take your time, break up the task, and focus on one step at a time! 

LinkedIn Learning

  1. Python for Data Science Essential Training Part 1 
    1.  This 6 hour course guides users through an entire data science project that includes web scrapers, data cleaning and reformatting, generate visualizations, preform simple data analysis and create interactive graphs. The project will have users coding in Python with confidence and give learners a foundation in the Plotly library. Once completed, learners will be able to design and run their own data science projects.  
  1. R for Excel Users 
    1. With Excel being a familiar platform for many interested in data, it is an ideal bridge to more technical skills, like coding in the R language. This course is specifically designed for data analytics with its focus on statistical tasks and operations. It will take user’s Excel skills to another level while also laying a solid foundation for their new R skills. Users will be able to switch between Excel and the R Desctools package to complete tasks seamlessly, using the best of each software to calculate descriptive statistics, run bivariate analyses, and more. This course is for people who are truly proficient in Excel but new to R, so if you need to brush up your Excel skills, go back to the first post in this series and go over the Excel resources!   
  1. SQL Essential Training 
    1. SQL is the language of relational databases, so it is of interest to anyone looking to expand their data handling skills. This training is designed to give data wranglers the tools they need to use SQL effectively using the SQLiteStudio Software. Learners will soon be able to create tables, define relationships, manipulate strings, use triggers to automate actions, and use sub selects and views. Real world examples are used throughout the course and learners will finish the course by building their own SQL application. If you want a gentler introduction to SQL, check out our earlier post on SQL Murder Mystery  

O’Reilly Books and Videos (Make sure to follow these instructions for logging in!) 

  1. Data Analysts Toolbox – Excel, Python, Power BI, Alteryx, Qlik Sense, R, Tableau 
    1. This 46 hour course is not for the faint of heart, but by the end, users will be a Swiss army knife data analyst. This isn’t for true beginners, but rather people who are already familiar with the basic data analysis concepts and have a good grasp of Excel. It is included in this list because it is a great source for learning the basics of the myriad of software and programming languages that data analysts are expected to know, all in one place. The course starts with teaching users about advanced pivot tables, so if users have already mastered the basic pivot table, they should be ready for this course.  
  1. Programming for Data Science: Beginner to Intermediate 
    1. This is an expert curated playlist of courses and book chapters that is designed to help people who are familiar with the math side of data analysis, but not the computer science side. This playlist gives users an introduction to NumPy, Pandas, Python, Spark and other technical data skills. Some previous experience with coding may be helpful in this course, but patience will make up for lack of experience.  

In the Catalog

  1. Python crash course : a hands-on, project-based introduction to programming 
    1. Python is often lauded as one of the most approachable coding languages to learn and its functionality makes it popular in the data science field. So it is no surprise that there are a lot of resources on and off campus for learning Python. This approachable guide is just one of the many resources available to UIUC students, but it stands out with its contents and overall outcomes. “Python Crash Course” covers general programming concepts, Python fundamentals, and problem solving. Unlike some other resources, this guide focuses on many of Python’s uses, not just its data analytics capabilities, which can be appealing to people who want to be more versatile with their skills. However, it is the three projects that make this resource stand out from the rest. Readers will be guided in how to create a simple video game, use data visualization techniques to make graphs and charts, and build an interactive web application.  
  1. The Book of R : a first course in programming and statistics 
    1. R is the most popular coding language for statistical analysis, so it’s clearly important for data analysts to learn. The Book of R is a comprehensive and beginner friendly guide designed for readers who have no previous programming experience or a shaky mathematical foundation as readers will learn both concurrently through the book’s lessons. Starting with writing simple programs and data handling skills, learners will then move forward to producing statistical summaries of data, preforming statistical tests and modeling, create visualizations with contributed packages like ggplot2 and ggvis, write data frames, create functions, and use variables, statements, and loops; statistical concepts like exploratory data analysis, probabilities, hypothesis tests, and regression modeling, and how to execute them in R; how to access R’s thousands of functions, libraries, and data sets; how to draw valid and useful conclusions from your data; and how to create publication-quality graphics of your results.  

Join us next week for our final installment of the Winter Break Data Analysis series: “You can’t analyze data if you ain’t cute: Data Visualization for Data Analysis”    

Learn Python Summer 2017

Are you sitting around thinking to yourself, golly, the bloggers at Commons Knowledge have not tried to convince me to learn Python in a few weeks, what’s going on over there? Well, no worries! We’re back with another post going over the reasons why you should learn Python. And to answer your next question no, the constant Python promotion isn’t us taking orders from some sinister serpentine society. We just really like playing with Python and coding here at the Scholarly Commons.

Why should I learn Python?

Python is a coding language with many applications for data science, bioinformatics, digital humanities, GIS, and even video games! Python is a great way to get started with coding and beef up your resume. It’s also considered one of the easier coding languages to learn and whether or not you are a student in LIS 452, we have resources here for you! And if you need help you can always email the Scholarly Commons with questions!

Where can I get started at Scholarly Commons?

We have a small section of great books aimed at new coders and those working on specific projects here in the space and online through the library catalog. Along with the classic Think Python book, some highlights include:

Python Crash Course: A Hands on Project-Based Introduction to Programming

Python Crash Course is an introductory textbook for Python, which goes over programming concepts and is full of examples and practice exercises. One unique feature of this book is that it also includes three multi-step longer projects: a game, a data visualization, and a web app, which you can follow for further practice. One nice thing is that with these instructions available you have something to base your own long term Python projects on, whether for your research or a course. Don’t forget to check out the updates to the book at at their website.

Automate Boring Stuff with Python: Practical Programming for Total Beginners

Automate Boring Stuff with Python is a solid introduction to Python with lots of examples. The target audience is non-programmers who plan to stay non-programmers; the author aims to provide the minimum amount of information necessary so that users can ultimately use Python for useful tasks, such as batch organizing files. It is still a lot of information and I feel some of the visual metaphors are more confusing than helpful. Of course, having a programming background helps, despite the premise of the book.

This book can also be found online for free on this website.

Learn Python the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code

Although focused on Python 2, this is a book about teaching programming skills to newbie coders. Although the author does not specifically use this term this book is based on what is known in psychology as deliberate practice or “the hard way,” which is described in Cal Newport’s blog post “The Grandmaster in the Corner Office” (Newport, 2010).  And Learn Python the Hard Way certainly lives up to the title. Even the basic command line instructions prove difficult. But based on my own learning experiences with deliberate practice, if you follow the instructions I imagine you will have a solid understanding of Python, programming, and from what I’ve read in the book definitely some of your more techie friends’ programming jokes.

Online Resources

If the command line makes you scared or if you want to get started right away, definitely check out PythonAnywhere, which offers a basic plan that allows users to create and run Python programs in their browser. If PythonAnywhere isn’t your speed, check out this article, which lists the 45 best places to learn to code online.

Interested in joining an online Python learning group this summer?

Definitely check out, Advent of Python, an online Python co-learning group through The Digital Humanities Slack. It started Tuesday May 30 with introductions, and every week  there will be Python puzzles for you to help you develop your skills. IT IS NOT TOO LATE TO JOIN! The first check-in and puzzle solutions will be June 6. The solutions and check-ins are going to be every Tuesday, except the Fourth of July — that meeting will be on Wednesday, July 5.  There is a Slack, a Google Doc, and subreddits.

Living in Champaign-Urbana?

Be sure to check out Py-CU a Maker/Hacker group in Urbana welcome to coders with all levels of experience with the next meeting on June 3rd. And obligatory heads up, the Urbana Makerspace is pretty much located in Narnia.

Question for the comments, how did you learn to code? What websites, books and resources do you recommend for the newbie coder? 

Works Cited:

Newport, C. (2010, January 6). The Grandmaster in the Corner Office: What the Study of Chess Experts Teaches Us about Building a Remarkable Life. Retrieved May 30, 2017, from http://calnewport.com/blog/2010/01/06/the-grandmaster-in-the-corner-office-what-the-study-of-chess-experts-teaches-us-about-building-a-remarkable-life/

Online Resources for Learning Digital Humanities Skills

Learning new skills doesn't have to be a headache!

Learning the skills required for the digital humanities may require patience, but the payoff can be huge.

Learning a coding language or technical skill can seem daunting, especially when you’re not someone with a computer science background. All of the jargon, technical terms, and math may be a barrier to entry for people with a more traditional humanities background who may otherwise want to embark on a digital humanities project. Even for those who start, it’s easy to get stuck when you feel like every tutorial you try has you learning tricks for things you know you’ll never use, while you never seem to find any information about what you do want to learn.

While no tutorial is going to be the panacea to all your problems, here are a few places you can start your techy journey, created for people who may want to start slow and learn specific skills.

  • The Programming Historian — Full disclosure: I love the Programming Historian. Their lessons are written for humanities scholars by humanities scholars. No piece of jargon is left undefined, and their lesson format is both helpful for learning basics, but also explains why you will want to know this skill, and how it will be useful and relevant for the future. Lessons are presented textually, with pictures as examples. They also periodically offer practice questions for you to gauge your comprehension throughout many of their lessons.
    • Pros: Written by people who understand the way that you think, and explains the importance of learning these skills as you go along.
    • Cons: Presented as text. You do the work separately, and there’s no way to have your work checked by a program like it would be at Codecademy, or similar sites.
  • Tooling Up for Digital Humanities: Begun at Stanford, Tooling Up for Digital Humanities includes great overviews of text and spatial analysis, databases, pedagogy, and data visualization. If you need a place to serve as a glossary for terms, or just want brief overviews of what exactly the digital humanities are, and what you can do with the digital humanities, this is a great place to start.
    • Pros: Concise information regarding the main flagpoles of the digital humanities, presented in a familiar, unadorned style. Easy to read and digest, and includes introductions to major software and linking to further reading for what you may be interested in.
    • Cons: Started in conjunction with a series of workshops in 2011, the site is no longer maintained, and some information may be out of date.
  • TEI By Example: TEI By Example consists of online tutorials created to help humanists use TEI (Text Encoding Initiative). Tutorials are divided by subject, starting with the basics of TEI, then moving on to different humanity subjects, including prose, poetry, drama, primary sources, and critical editing. Each tutorial is split between the tutorial itself, an example, a test, and exercises. The really great thing about TEI By Example is that you can either go through all of the tutorials, or pick and choose what you want to learn based on either your expertise, or your interest.
    • Pros: User-intuitive and specific to the needs of digital historians. Presents information in a digestible but thorough way, and checks your work for you.
    • Cons: Stopped being maintained in 2010, and the user-interface shows its age. Information could also be out of date.

There are so many projects that a digital historian can take on, and nothing should stop you except for your imagination (or maybe your lack of grant money, but that’s a different story). While you need to learn the basics, that’s no reason you can’t tailor your experience to help you focus on what you really need, and keep from frustrating you with things that you don’t.

Remember, if you want to get started with a digital humanities project, or need help with a current one, you can always come to the Scholarly Commons, open 9 AM – 6 PM, Monday-Friday, or email our digital humanities experts, Eleanor Dickson and Harriett Green.

Explore coding and other technical skills with free online resources

Computer programming and other technical skills are increasingly in demand, both in academia and the private sector. Fortunately, as these skills have become more central to all sectors and industries, a wide variety of resources for learning these skills have emerged. In this post, we’d like to highlight just a few resources for getting started with programming

Codecademy is one of the better known online resources for learning programming languages and other technical skills. When you explore the site, you’ll see that it has courses divided into different categories, including web developer skills, languages, and simple projects (for instance, how to create an animation of your name). Each course is divided into several units, which are further divided into lessons that are built in a step-by-step manner. Lessons often begin by introducing the basics of a concept, and then having you apply the concept by walking through a simple procedure. For instance, the JavaScript course introduces functions, and then has you create a simple “rock, paper, scissors” game that is built out of functions.

One downside to Codeacademy is that, due to its step by step design, you may feel that you aren’t acquiring an understanding of the relevant concepts at the level you desire. So depending on your learning style, you might want to consider supplementing Codecademy with other resources.

One option would Lynda.com. Lynda offers video tutorials on a wide variety of topics and skills, with a focus on software and technical skills. For many topics, beginner level tutorials are offered. These provide a general overview of the subject matter, along with accessible explanations of key concepts. Lessons of this sort may serve as a nice complement to a more hands on, step by step, setup, such as that offered in Codecademy. University of Illinois students, faculty, and staff have free access to Lynda’s resources. To log in with your Illinois credentials, visit go.illinois.edu/lynda.

If you’re simply interested in familiarizing yourself with common programming terms and concepts, check out MIT’s Scratch. Scratch is a programming language and online community where you can create your own interactive stories, games, and animations. Scratch is, admittedly, designed with children in mind (in fact, it’s a project of the MIT Media Lab’s Lifelong Kindergarten group). Nevertheless, it can serve as a wonderful resource, especially for those completely new to coding (and I can report from first-hand experience that it is used in at least one class at the iSchool at Illinois). It can also be a lot of fun!

An image of a simple (and very clunky!) maze game I made for one of my classes using Scratch.

A simple (and very clunky!) game I made for one of my classes using Scratch. Scratch is developed by the Lifelong Kindergarten Group at the MIT Media Lab. See http://scratch.mit.edu.

If you would like some one-on-one assistance with programming projects, you can drop by the Scholarly Commons for Data Help Open Hours, a joint service of the Scholarly Commons and the Research Data Service. In addition to getting help with Python coding, you can get help with R, SQL, and XML. If you’re ready to go more in-depth, check out our reference collection which contains books on Python, Java, R, and many more topics.

Do you know of any other good resources for learning to program? Let us know in the comments below!