Start programming in Python the professional way
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
2 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Start programming in Python the professional way to your Wishlist.

Add to Wishlist

Start programming in Python the professional way

Beginners: learn from scratch how to become a professional programmer.
0.0 (0 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
2 students enrolled
Created by Sriram V
Last updated 9/2017
Current price: $10 Original price: $20 Discount: 50% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 4 hours on-demand video
  • 42 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
What Will I Learn?
  • Python, PyCharm, Git, databases, etc.
  • Professional programming
  • Agile methodology for software development
  • A Planner program that you will build over the course and can share with others
View Curriculum
  • Very basic computer skills that have already enabled you to reach this course online.
  • Willingness to learn to be precise, logical, systematic, patient, and persistent in your work.
  • Willingness to learn by writing your programs alongside the instructor.

Target Audience: If you want to learn programming but have absolutely no prior programming background, or you have learnt some programming before but want to re-learn it in a better way, then this course is for you. 

Skills Needed: You already have or are willing to develop the habits of precise, logical, and systematic thinking and expression, being organized in your work, and persistence and patience. This course will not only make you a very good beginning programmer, but also perhaps make your approach to all other work as well more methodical.

Course Outcomes: You will learn in an easy, enjoyable, and motivating manner how to develop software programs, that is, the basics of Software Engineering. You will be learning the Python programming language along the way.

Course Mechanics: In the very first lecture you will build your very first program, and with each subsequent lecture you will grow your program organically into something bigger, along the way learning all the different tools, methods, processes and methodologies required. 

Thus, you will pickup the basics of all the different skills needed towards becoming a professional programmer, not just a particular programming language. Just as becoming a good writer involves much more than learning English grammar and vocabulary, becoming a good programmer involves much more than just learning a programming language. This course will start you on the path to becoming a good programmer. 

As you progress in the course, not only will you have your own working Planner program that you can show off to your friends, but also you will grow a beginner programmer skill set of the most in-demand things in the software industry such as:
Python programming language
* Software Engineering basics:
  - Agile software development methodology
  - Requirements specification
  - basic UI (User Interface) design
  - Program design, flowcharts
  - Software Testing: unit testing, regression testing
  - Modular software: basics of Object-Oriented Programming (OOP)
  - IDEs (Integrated Development Environments): PyCharm
  - Version Control: GIT
  - etc etc. 

Additional Course Lectures: This course provides you a unique opportunity to shape the lectures to your benefit. The course has been seeded with an initial 20 lectures, and at least as many more lectures are in preparation and will be added to the course in the near future. These latter lectures will take into account all student feedback on the initial seed lectures. Such development of any product, based on user feedback and involving many releases/upgrades, is referred to as Agile Product Development, a methodology that is taught in this course. Your feedback will shape not only what is taught next but also how it is taught. The earlier you join the course and the more feedback you give, the more you can shape this course to your liking!

So, hop on board and try out this course!

Who is the target audience?
  • Beginners who have no prior programming knowledge but want to learn the science and art behind programming.
  • Managers who want to understand the basics of what goes into software development.
  • Students who want to (re-) learn the basics of software engineering.
  • Beginners who want to learn Python, PyCharm, Git.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
21 Lectures
Start Programming Now
21 Lectures 03:56:05

This lesson teaches you to write your very first tiny program right away, in a couple of minutes!

Preview 07:53

Follow the steps mentioned in the very first lecture to get your own free account on, so that you can start running your own Python programs.
Create your own free account on
2 questions

This lesson teaches how to save your program in a file on, and how to share your program with others.

It encourages you to start sharing your program with your friends, to get their praise and feedback. The praise will keep you going, the feedback will let you constantly evolve your program into something that others and you will find useful and actually use.

Share your Program File

Here is a challenge for you: find a friend who is willing to use the programs that you create in this course and give you feedback on them. Get your friend to create a free account on www.pythonanywhere,com and share with him/her a small program that prints a nice welcome greeting!
Share your first program with a friend
1 question

This lesson teaches the maintenance of a feature list: the list of updates to be done to the program.

This lesson teaches program maintenance: keeping the program readable using comments; saving the  different versions the program evolves through; etc. 

Preview 10:53

This lesson teaches how to let the user control the speed of output of the program. It teaches how to wait for and accept a simple <ENTER> key tap from the user.

Wait for User Input!

This lesson teaches some basics of User Interface design: always keep the user updated about what the program is doing; keep the program output readable; etc.

The lessons also teaches the importance of testing every change to the program: very basic unit testing and regression testing.

The User Interface is Important!

This lesson teaches how to accept text input from the user, remember it

for the current run (execution) of the program, and print it back out.

Let the User add one Reminder per Planner invocation

This lectures teaches the separation of program and data. Data (the reminders) are stored in a separate file, and the program (the planner) processes the data (the reminders), reading them in from the reminders file, printing them to the user, and writing them out to the reminders file.

Store Reminders in a File

Repetitively Process Stored Reminders

Give the User Choice in the Planner's Flow

You will learn about using the Python "while" command.

You will learn to first create a User Interface mock-up of the program feature before actually writing the program code to implement the feature. 

Let the User add Multiple Reminders in a single Planner invocation

In this lecture you will learn about:

  • Design Patterns: Introduces the very basics of Design Patterns in code.

  • User Interface Design: Gets you started on providing a friendly User Interface for the program, one that allows for normal human errors.
Enable the User to correct Typos and such

In this lecture you will learn about:

  • Flowcharts: Decision Diamonds, Action Boxes, and Control Flow.
  • Program Execution Flow: Control flow during a single execution of a program.
Let the User switch between Planner Phases anytime

This gives you a great introduction to timelines! Watch the assignment lecture that has been uploaded as a resource (Lec12-movie-assignment.mp4) and then watch the YouTube movie clip that has been linked to as an external resource for this lecture. 

Don't miss the movie clip!

Watch this Movie Clip to Plan the Phase Switching

In this lecture you will learn about:

  • Program Phases: see how a program could be organized as different phases that the program could be executing in at different times
  • Constructing Flowcharts: learn to plan a program's code as a flowchart
Plan the Planner's Phase Switches

In this lecture you will learn:

  • Python Control Statements
    • flowcharts for Python's control statements
    • if-then-else, for, while, and break statements

  • Program Control Flow:
    • the possible paths through the different program blocks/instructions during program execution
    • abstracting out the program's control flow using a flowchart
    • visual approach to mapping a program's control flow onto Python's control statements

Implement the Planner's Phases: Part 1

In this lecture you will learn:

  • Python:
    • continue statement
  • Mapping a program's control flow onto Python statements:
    • top-down/hierarchical mapping

Implement the Planner's Phases: Part 2

Mistakes in programs are called "bugs". You will now learn to identify your first program bug, and learn how to correct the mistake, which is called "debugging". Bugs are extremely common. In the previous lecture, there is a bug in the Python implementation of the control flow, can you identify it?
Program Debugging: Your first program BUG!
3 questions

In this lecture you will:

  • review the main learnings from designing the Planner's phases
  • identify your first program "bug" in the control-flow implementation, and do your first "bug fix"
Planner Phases: Lessons Learnt

In this lecture you will learn:

  • Agile development
    • how to develop a set of program features in multiple small steps, one subset of features at a time, in each step
    • how to upgrade/enhance the Planner with a subset of the new control flow designed in the previous lecture
  • Software Testing: How to test if a program works correctly, via: 
    • Unit tests 
    • Regression testing 
    • Corner-case testing.
Planner Phases: Putting It All Together

In this lecture you will learn:

  • PyCharm, an Integrated Development Environment (IDE): a software tool that makes writing your programs more of a charm
Planner Phases translated to code

Download and run PyCharm on your computer.
Download the PyCharm software tool to your computer
1 question

In this lecture you will learn:

  • counters and Python arithmetic
  • how to re-write a code fragment
Planner Phases: You finish it now

More Lectures Coming!
About the Instructor
Sriram V
0.0 Average rating
0 Reviews
2 Students
1 Course
Computer Scientist

Sriram Vajapeyam is a computer scientist with a Ph.D. from the University of Wisconsin-Madison and many years of experience in teaching and research. He has taught many courses at the graduate level, a couple of courses at the undergraduate level, and even a little at the high-school level! Vajapeyam has taught several tutorials on cutting-edge research topics at the topmost research conferences in the field of Computer Architecture. Overall, the topics he has taught include Computer Architecture, Operating Systems, and Software Development Methodology.