Taken this course? Share your experience with other students.
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.
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, and dictionaries in Python already, I was very out...
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, and dictionaries in Python already, I was very out of practice, and the course still proved challenging for me. I learned several new ways to manipulate and implement these data structures.
The lectures and Smartbook (online interactive textbook) go together nicely, and there is plenty of room to develop your own optimal method of learning, whether that entails all lecture, all reading, some of both, or a combination of those, exercises in the course, and information from other professor-recommended websites.
I imagine that for people who are new to programming and/or computing (but have completed the prior units in CS1301), this course would be quite challenging at times, but rewarding overall. Even for those with a bit of prior exposure to data structures, this course would be challenging and worth your time. Several coding problems absolutely stumped me at first, but with debugging and reflection, the answers came, and proved surprisingly simple in execution. The process of developing solutions to actual coding problems can be frustrating, but can also prove entertaining, as you come up with strategies on your own that you continually perfect through trial and error.
On the note of coding problems, one criticism I have is that the problems you solve in this course are pretty small and discrete; they usually do not build off of one another directly. It would be nice to be required to use a function you have already written in your new code, as you might in some projects. This is not to say that the problems are not challenging. But you will have to come up with ideas for projects on your own, or find them elsewhere. The knowledge of data structures you will learn here lends itself well to creating your own programs that actually do things that are useful to you (e.g., games, calendars, calculators, unit converters). I recommend doing this for extra practice and fun (It may sound like work, but it can be fun to build your own program for your use).
For those hoping to learn programming for fun, this course would likely be a great choice. For those intending to apply programming in some kind of work, research or academic endeavor (me), this course is also a good choice, but keep in mind that the required material only partially delves into the variety of ways you can use these data structures. I recommend utilizing the supplemental material generously, reading the documentation and using other coding practice websites. Not all of the outside information will directly apply to this particular course, but it will help you understand some of the tougher topics (e.g., scope, mutability), provide some alternate techniques to use in the course, and provide other knowledge and tricks to keep in your back pocket to help you have an edge here or elsewhere. For example, from this course, I learned the valuable essentials of using dictionaries, but in reading and practicing supplemental material, I learned other ways to implement and manipulate them with ease, and got closer to learning what they really are, "under the hood".
If you want to learn how to use data structures in the course programming language, this course might be for you!
NOTE: At time of writing (Summer 2019), auditing this course for free does not include full problem sets for each chapter; to get access to these useful problem sets, you MUST PURCHASE the verified course track for a fee.
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 suitable for my kids; Python is perfect for...
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 suitable for my kids; Python is perfect for that.
I have followed all 4 "Computing in Python"- courses, and I feel ready now to take on more advanced Python courses or books.
Each course is divided in 4 chapters, each chapter ends with an "exam", the course ends with a final exam. Each course took about a week to complete (+- 3 hours/evening and 2 full days in the weekend (+- 8 hours per day). (I had to hurry, the courses were about to get archived.). The programming exercises and debugging take most of the time and are at the same time the most valuable to grok everything.
There is a SmartBook that is provided as a PDF. Next time I would read the PDF instead of viewing the video's, that would have been faster.
The teaching is well structured and the programming problems are fun to make: they are quite basic at the beginning and get more challenging afterwards. You will make so many exercises that programming in Python really becomes an automation and the exercises never become boring.
I have advised my kids (they are almost or around 20 year) to take the courses.
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.
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.
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.
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.
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 practice. There are more practical (and...
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 practice. There are more practical (and intensive) methods for learning the material which are better suited to actually applying the concepts.
In order to get the most out of this course I practiced coding through sites such as exercism.io and coderbyte, as well as studying other texts. For this particular level I found that the Head First Python book was much more instructive and useful - "doing it to get it".
The SmartBook format actually got in the way for me. Instead of being able to review previous chapters, or scan ahead when the course made specific reference to future material, it forces a fixed format of only a page or two at a time.
The videos followed the material in the textbook, there is not so much extra explanation to be found there which was disappointing.
I finished the course in less than two weeks, spending on average 6 hours a day - many of those hours with external resources - reading and practice. I am able to write simple programs now, primarily due to this extra effort.
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 it is necessary), well explained (really, probably the best learning material I have met in my life structurally, explanatory, comprehensive, fluently building on preceding chapters, well - everything it should have, almost fun to go through...) course with lot of practise excercises (you actually program most of the time on real life problems). Also you get the idea where to move next from the exercises topic orientation. I have done all 4 courses from the profesional certificate and I thing it was really well spend money, 5 star, recommending!
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 also an online textbook repeating the content in the lectures, which I did not use that much. Each section ended with references to other coding classes and websites, which was quite helpful.
Much of the graded material is only available to paying students ($95). Nonetheless, there were enough questions and coding problems that were automatically graded in the free version I followed to make it worthwhile for my purposes.
The course took me about 20 hours over two weeks to complete.
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.
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!
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.
Impressive. Excellent material, coaching and examples. Coding problems were really useful in gaining depth on the subject. One star less as couple of 'key' videos could have spent more time on the aspect discussed. Would recommend this for all beginners & intermediate Pythoners.
In this course, I felt like I was beginning to be a "real" programmer. They gave lots of practice and assessments that challenge you, but they teach you so thoroughly that you always feel prepared to tackle the questions. I cannot recommend this class highly enough.