Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Georgia Institute of Technology

Computing in Python III: Data Structures

Georgia Institute of Technology via edX


Build on your existing knowledge of conditionals, loops, and functions by studying more about complex Python data structures, including strings, lists, dictionaries, and file input and output. Organized into five chapters, this course starts by covering the basics of data structures, then moves on to these four common data structures in Python:

  • Strings let you perform far more complex reasoning with text.
  • Lists let you process long lists of data, and even lists of lists of data for more complex reasoning.
  • Dictionaries let you more clearly code for complex types of data, and even simulate some basic elements of object-oriented programming.
  • File input and output brings your programs to life, allowing you to persist data across executions of the same program.

By the end of this course, you'll be able to write even more complex programs in Python that process and persist complex data structures. For example, you'll be able to write an ongoing gradebook application that tracks and updates your average over time, a program to calculate the net force based on several force magnitudes and directions, or a program that can turn a string like this into a StRiNg LiKe tHiS.

Structurally, the course is comprised of several parts. Instruction is delivered via a series of short (2-3 minute) videos. In between those videos, you'll complete both multiple choice questions and coding problems to demonstrate your knowledge of the material that was just covered.


Chapter 1. Data Structures. Building the fundamental types of data – Booleans, integers, floating point numbers, and characters -- into more complex strings, lists, and dictionaries that can be persisted in files.

Chapter 2. Strings. Working with series of characters that can represent plaintext messages, passwords, and more, including all the complexities of combining human language with programming code.

Chapter 3. Lists. Taking fundamental data types like strings, integers, and floats and organizing them into tuples or lists that can represent complex structures of data; or for added complexity, creating lists of lists to create 2-dimensional (or more) data structures.

Chapter 4. File Input and Output. Taking information stored in your code and persisting it in an external file that can last after the program has finished executing, or loading data from a file into a program for processing.

Chapter 5. Dictionaries. Organizing key-value pairs (very similar to variables and values) into higher-level structures that can be easily passed around or reused with some intuitive structure.

Taught by

David Joyner

Related Courses


4.8 rating, based on 35 reviews

Start your review of Computing in Python III: Data Structures

  • Anonymous

    Anonymous completed this course.

    This is a great course to take for those relatively or completely unfamiliar with the data structures being discussed in the course language (for me in 2018-19, it was Python 3). Though I was somewhat familiar with strings, lists, file input/output,...
  • Wim Leys completed this course, spending 35 hours a week on it and found the course difficulty to be easy.

    I have programmed - without taking any course - in Python 2.x more than 10 years ago (and I forgot most of it). I am interested in data science and was looking for a Python course as a first step up. I was also looking at an introductory programming course...
  • Anonymous

    Anonymous completed this course.

    My goal was to learn how to program in Python. This course series continues with a primarily academic exercise focus - too much theory. The textbook skims briefly over subjects as do many of the exercises, without in-depth explanation or sufficient programming...
  • Stanley Waiyaki Maina

    Stanley Waiyaki Maina completed this course, spending 16 hours a week on it and found the course difficulty to be hard.

    I thoroughly enjoyed the course .Especially how it was structured and the links to additional resources. I found some problem sets to be particularly challenging; however, persistence and reaching out to the awesome TA's usually provided a breakthrough. David Joyner is an excellent teacher.
  • Anonymous

    Anonymous completed this course.

    This is an amazing course for gaining practical skills in Python. David does a great job of providing practical, real-world examples and practice, for those learners who would rather learn by doing instead of watching. I have tried many online courses, but none have given such fundamental skill nor have been nearly as enjoyable as the X series.
  • Neville A. Cross

    Neville A. Cross completed this course, spending 6 hours a week on it and found the course difficulty to be easy.

    This course teach me about dictionaries and tuples. Why tuples are better than lists in some context. This theoretical explanation was well demonstrated with examples. I highly recommend this course to learn how to program using Python. If you already know how to program, this may be a bit slow.
  • Anonymous

    Anonymous completed this course.

    If you want to really learn programming and not just rote codes, this course is for you. David Joyner is really good at clarifying concepts, and the coding problems get tougher as you progress (at least for those new to programming). I will definitely recommend this course.
  • Joachim Schulze-lauen

    Joachim Schulze-lauen completed this course, spending 12 hours a week on it and found the course difficulty to be hard.

    I could do this in much less than the required 20 words, just say super.
    The course is excellent, structure, concept, the high amount of excercises and problem sets make it a perfect learning medium. Thanks to David and please more of this.
  • Anonymous

    Anonymous completed this course.

    Absolutely amazing lecturer. Was the best course Python course I have taken so far. Lot's of practice and different formats of it helped me to learn a lot. Thank you so much!
  • Anonymous

    Anonymous completed this course.

    Great course overall, very comprehensive, challenging but doable. Lots and lots of practice which makes all the concepts stick in your head for good. 5 stars.
  • Anonymous

    Anonymous completed this course.

    I have found in this course what I was looking for - I was playing with a thought about changing my career path to programming in my head for a while, but didnt know where to start? I think this was really good choice. It is selfpaced (for employed person...
  • Anonymous

    Anonymous completed this course.

    I had previous Python experience (in school and practicing personal projects), and I used this course to practice skills with data structures. The course has a good balance of video lectures, short practice questions, and coding exercises. There was...
  • Anonymous

    Anonymous completed this course.

    The audit track for this course is just as good as the first two in the series. There is enough access to the learning materials to dive deep into the subject matter. I was an audit learner, so I can't complain about anything because I didn't pay. However the audit can be improved without adding anything by including sample answers on the "Practice Problem Sets". They let you know when you get it right, but there isn't a sample answer to see a more optimal way to solve the problem. All in all I think this course gives you a lot of information and practice compared to the other mobile coding apps I've tried, which don't give ample practice for all of the learning materials.
  • David Dana
    Data Structures was a really great, self-paced, online course. I found the work challenging and yet completable during the various hours I was able to find while working full-time and taking care of my family. I did hunger for some more meaty problems, especially ones with real data. Perhaps they can be offered just for fun for those interested? Another neat addition might be an FAQ of Gotcha's like: remember that a method call on an immutable object that isn't assigned to something is like screaming in the wind :) One last question... how many of those blue shirts does Prof Joyner have?
  • Leslie Herr

    Leslie Herr completed this course, spending 6 hours a week on it and found the course difficulty to be medium.

    I have programmed in several languages for decades. Now that I'm picking up Python, I wanted a thorough grounding, not just a cookbook. David has offered a lot of insights into computer science in general and Python in particular. The exercises are fun and well chosen. Even the annoying features of the language, like immutability, were explained well.
    Most MOOCs are worth maybe a week of the real, for-credit course. David has taken the complete for-credit course and structured it like a MOOC. If you complete all 4 parts of the sequence you will definitely know what you are doing.
  • Anonymous

    Anonymous completed this course.

    I have followed the XSeries of Computing in Python and about to start the final chapter. This is my first formal training in python and I now feel confident to start more difficult courses. The material is clear, comprehensive, well-explained and available in bite-sized chunks for the beginner to someone who needs a bit of refreshing.

    With some prior knowledge of Python, I spent approx. 6-8 hours per week on the courses and typically finished with ample time alotted if you choose to audit the course.

    David is an excellent and knowledgeable teacher. Highly recommended!
  • Anonymous
    I found this third part of the course much more demanding than the previous two, but just as engaging. The teaching is well balanced between (short) video presentations, textbook work and tests/programming exercises. The programming tasks are well thought-out and provide a wide range of problems, mostly related to the real-world. I've really enjoyed getting back into programming after a gap of almost 20 years and can even remember some of the theory - although mutability remains a challenge! I'm glad I chose this particular course and am looking forward to Part IV.
  • Anonymous
    This course is excellent. Concepts are explained at the beginning of each section before going on to the details of Python. I just audited the course so I can't speak to the marking and testing but the questions following each short lecture tested the material well to ensure you got a grasp of it. My only criticism would be that some of the questions were too focused on the syntax of Python rather than the understanding of the concepts. It seems to me pointless to ask about things that the interpreter would find for you instantly.
  • Anonymous

    Anonymous completed this course.

    Addictive, lots of problems and coding exercises to be completed. I've learned a lot and this course has motivated me to continue learning.

    There is an even spread between text ( the book ) video lessons and virtual whiteboard and also student exercises which contain helpful hints and also sample answers.

    Not much I can criticize. One aspect which I haven't sorted out is why the course page still asks me to resume course when the course has been completed and certificate issued. I will ask this in due course.
  • Anonymous

    Anonymous completed this course.

    Nice course, educated. I like it, BUT if u are free-user the coding problems are really few. And there is the problem, u don't have enough practice to be ready for final exams coding problems. You can still solve them but is hard. Not because they are tough but because u missing the practice especially in dictionaries you may experience this absence of enough practice, and there are no free alternatives to find on the internet for practicing in the right level of difficulty.

Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free