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

# Computing in Python II: Control Structures

## Overview

Building on your prior knowledge of variables and operators, this course gets into the meat of programming. Organized into five chapters, this course starts by covering the fundamentals of what control structures are and what they do, then moves on to four common control structures in Python. Conditionals let you modify what your program does based on the values of incoming variables. Loops let you repeat tasks for multiple values or while certain conditions hold true. Functions let you encapsulate complex reasoning into reusable chunks of code. Error handling lets you intelligently recover from anticipated and unanticipated glitches.

By the end of this course, you'll be able to write complex programs in Python that perform useful reasoning. For example, you could write a program that calculates your weight on other planets, calculates the standard deviation of a series of numbers, or checks for the validity of an incoming password.

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.

## Syllabus

Chapter 1: Control Structures. The basic role of control structures in general: lines of code that control other lines of code, determining when they execute.

Chapter 2: Conditionals. Building complex reasoning into our code by letting it make decisions based on the changing values of variables, like recommending a raincoat if it's going to rain or issuing a passing grade if a student's average is over 70.

Chapter 3. Loops. Building even more complex reasoning with for loops and while loops, both of which repeat certain lines of code over and over for every value in a list or while some condition is true.

Chapter 4. Functions. Encapsulating blocks of code into reusable functions that can be called as needed, including specifying their input and dictating their output.

Chapter 5. Error Handling. Reacting gracefully when anticipated or unanticipated errors occur during your program's execution.

David Joyner

## Reviews

4.9 rating, based on 46 reviews

Start your review of Computing in Python II: Control Structures

• 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
This was my first official course for Python. I had taken some Udemy classes prior to this in preparation for a Post Graduate Certificate/Masters in Data Analytics. In the beginning I found the course informative, but as I get into part 3 of the 4 part...
• Anonymous

Anonymous completed this course.

TL;DR: Great introductory course for learning coding fundamentals using Python. Detailed: I do not have a frame of reference for what a course on coding/computing should be like. However, as someone who has spent hours crying (literally) because of...
• Anonymous

Anonymous completed this course.

This course is the best introductory computing course I have ever attended (both on-line and "in person").
The lecturer describes the basic concepts of computing in clear and concise manner. If you are a complete newby to the programming, you should start here. If you have some experience with other languages this course is a good way to brush up on your general computing knowledge.
The rate of the course is optimal. If an additional Python knowledge is needed to resolve the problem, it is disclosed by the lecturer (no need to search through entire Internet to find this one particular function that you need to finish this basic task).
Definately worth trying.

• Anonymous

Anonymous is taking this course right now.

Engaging, encouraging and extremely well executed course.

One of the best ever Moocs and by far the best Intro to computing w/python course you will ever find.

But in no way, it's easy esp. for beginners, needs a lot of effort and a lot of self doubting days!

A bit disappointed with edx policies in restricting access.
It's both a boon and a bane. It helps be disciplined and complete the course within time limit.
But if something comes up in between, u can't finish.
• Anonymous

Anonymous completed this course.

I found the CS1301xII course to be well organized, the lectures are well presented and succinct, and problem sets are extensive and detail common mistakes and nuances. This is an excellent primer into Python concerning if/then/else statements, for and while loops, and error catching with try/except/else/finally blocks. The math required is basic arithmetic. David Joyner seems like a professor to follow.
• Anonymous

Anonymous is taking this course right now.

It is a great course that build's the foundations for programming, I really appreciate Professor David’s way of breaking down concepts to be easily digested.
• Anonymous

Anonymous completed this course.

This course does just about everything right. Sections are broken up into small, easy-to-tackle segments. Videos are short and concise, the explanations given are easy to understand, and the text book is always available for those that prefer to read...
• 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 have taken the first course in this series (Python 1), and i have now just completed Computing in Python II: Control Structures.

It has been an absolute joy taking these courses and they have far exceeded my expectations. The sheer amount of practice problems, auto-graded assignments, and the Smartbook is what made this course great for me. And i must add, I took the free version. If you've taken free classes before, you may have noted that the selection of problem sets are generally restricted unless you pay. This is not the case with Georgia Tech.

David Joyner does an amazing job at articulating things from different points of view. I cannot recommend these series of courses enough. TOP NOTCH!
• Anonymous

Anonymous completed this course.

This is an outstanding introduction to Python and computer science. The materials are concise, comprehensive, clear and coherent. I'm sure there are alternatives as good as this, but I doubt that there are any better. There is some rigor and intensity to the presentation, but at the same time Joyner makes the materials inviting and understandable. Bottom line--great approach if you are serious about learning to program in Python and learning something about computer science. That said, it's a demanding effort--and the course materials provide plenty of interactive practice materials and evaluation.
• Anonymous
Excellent course to teach for all levels of coders, assuming you completed the first course in the sequence without too much difficulty, the learning style of this course is excellent. The cost is affordable, and there is a lot of effective repetition in the teaching style. A few of the problem sets are quite tricky, however it is great practice. On top of that, you can skip a few of the advanced problems and still get a great mark in the class.

Highly recommended if you are looking to learn Python properly from an excellent school.
• Anonymous

Anonymous completed this course.

The course was excellent! I really feel like I could start to at least write small python programs on my own with what I learned in this course and the first. I got a much better understanding of concepts, mainly functions. I also love the fact that we had sample problems and tests to go along with the material we covered. Not just "this does that. now you do it" type of teaching. This course really helps you to understand the logic behind the code so that you can code better on your own. Really worth the time and money!

Bozhidar Madzharov completed this course, spending 12 hours a week on it and found the course difficulty to be medium.

Course is well organized. Videos are frequent and large. Explanations for most of the stuff are comprehensible. I enjoyed the coding exercises the most. As a non-native English speaker, i had sometimes difficulties understanding what exactly tasks ask me to do. Hint for the rest non-native English speakers. Get in touch over internet with natives and ask for help for the meaning of the tasks any time you encounter difficulties.

Am happy to follow the rest of the courses in Computing in Python.
• G Locarso completed this course, spending 10 hours a week on it and found the course difficulty to be medium.

Thank you Mr. David. I have done the chapter 2 and going to chapter 3 soon, but tomorrow is the first day of second semester, maybe i'll continue in a few days. I had studied C++ on first semester so it isn't so hard for me to cope with learning python. But anyone who wants to learn python even from NULL experience can start with this course!! i really recommend it, because the way the lecturer explain things is quite very detail so YOU CAN DO IT!! Best Luck for you!!
• Neville A. Cross

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

This is a great course to learn how to program. If you already know how to program, this may be a bit slow. But if you are trying why is that you use different for and while loops, this is right for you. I tried several time to learn Python and got frustrated with crash courses. I did not need to learn Python, what I needed was to learn how to program using Python. I highly recommend this course series from David Joyner and Georgia Tech.
• Anonymous

Anonymous completed this course.

Very nice course, it is to follow and really fast to finish it if u are dedicated enough. It took me 5-6 days to finish it. My only problem was that there are not enough coding problems. I believe that practice is what makes you better. So, i suggest more coding problems, at least double if not triple the amount of the existing. Problem-solving is what making you familiar with the theoretical knowledge that you are taking from this course.
• Andreas Disser

Andreas Disser completed this course, spending 7 hours a week on it and found the course difficulty to be medium.

The course really helped me to improve my skills in programming with python. It is a good introduction for people who have just little experience in programming and want to be guided step by step. The professor explains everything very well. Because you always make small steps forward, you never feel overwhelmed.
All in all it is a great course that I can recommend to everybody who wants to get started with python programming.
• Anonymous

Anonymous completed this course.

I've learned a lot in this class. As a non-technical, business type, I have found this class challenging and very helpful. I appreciate that the lectures are delivered via audio, video and with subtext, serving all of the different learning styles. I also appreciate that the materials are broken up into smaller sections followed immediately by opportunities to put new information or new approaches to work.
• Anonymous

Anonymous completed this course.

I have particularly enjoyed taking this course! David has been as insightful as ever, giving not only Python related structures, but also a general approach, which just allowed to have an understanding of everything. It seems to me that it's vital to know what you're actually doing. Also, I really enjoyed the fact that all the assessment is compulsory, which just makes you train programming.

### Never Stop Learning!

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