Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

INTRODUCTION TO PYTHON

PROGRAMMING
OVERVIEW
Learn and practice the most important concepts and features of the Python language
in a 4 week, remote, professor lead, intensive, highly practical course.

REAL CLASSES, REAL PROFESSORS


There are classes happening remotely with a real teacher who will go through all the
important Python topics explaining them in depth. Beyond simple concepts, which can
be learned from books, professors will focus in real-life experience and advising you
about making technical decisions.

HIGHLY PRACTICAL
The same way you won’t learn to play basketball by sitting and watching the NBA, you
won’t learn to code by reading or watching videos. The only way to learn to code, is by
sitting, and coding. That’s why this course focuses on practice. There are three,
non-optional, mentor guided, practical meetings every week in which you’ll get
together with your fellow classmates to work on real life projects. The number one
issue when learning to code arises when you feel you’re stuck, and you can’t figure out
how to continue. In those situations, coding with other people and having mentors
available will ease up the process.

REQUIRED KNOWLEDGE TO BE ADMITTED


Even though this is an introductory program, we do require some initial knowledge to
be admitted. Super basic concepts, like “what’s a variable?” or “what’s the difference
between a `for` loop and a `while` loop?” won’t be covered during the course. You
are suppose to at least barely know the most basic programming concepts.
We will jump directly to learn how to do those things in the Python language, and
make lots of practice to master the basic and intermediate features of it.

CURRICULUM
● Intro to the Python environment:
○ Python versions. Differences.
○ Interfaces
○ Reading and understanding test cases
○ Installing Python
○ Using REPL
○ Executing scripts from the command line
○ Reading and understanding Python errors
● Basic
○ Variables (what they are, how to properly name them)
○ Values
○ Types
○ Operators. Basic. Mathematical operators.
○ Order and precedence of operations. Use of parentheses.
○ Comments
○ Getting input from user (raw_input)
● Control flow structures
○ Block indentation
○ Variable context. local vs global
○ If, else, elif
○ While-loop
○ For-loop
○ try-except
● Data Types
○ Numbers: int, long, float, decimal.
○ Strings. Unicode, formatting, sequence-interface. Common methods(len,
split, sort, startswith, etc)
○ Booleans
○ Boolean operators. Falsy values.
○ None
○ type()
● Collections
○ Lists
○ Tuples
○ Dicts
○ Sets
● Function:
○ Basic definition
○ Invocation
○ Function scopes
○ Returning from functions
○ Basic arguments
○ Named arguments
○ Default values for arguments
○ Advanced invocation with *args and **kwargs
● Modules
○ Importing: datetime, random, etc
○ Creating modules and importing
○ Creating packages and importing
● Exceptions
○ Catching exceptions
○ Raising exceptions
○ Declaring Exceptions
● Object Oriented Programming
○ Understanding classes and objects differences
○ Defining classes
○ Classes and objects relationship
○ Creating objects instances from classes
○ Understanding attributes. Various forms of definitions
○ Understanding methods. Invoking methods
○ Defining methods. Methods as functions
○ Basic inheritance
○ Polymorphism

HIGHLIGHTS
You will find hundreds of Python courses/tutorials out there in the Internet, which are
probably really good. Sadly, most of them do not cover the important topics about
what being a great Python developer means. Topics that make the difference between
a regular and an experienced Python developer. For example:

● Concentrate in good practices and conventions.


● Learn the “pythonic” way of resolving problems.
● Get used to work collaboratively with other people in similar scenarios as you
will face in real life jobs.
● Start working with highly used tools in the market, like GIT and github.
● Learn the most important concepts about Object Oriented Programming.
Something you will need for sure in your future as professional developer.

This course aims to ship you straight to the next level of expertise, not only in the
Python programming field, but also as a professional developer. Concepts you will be
learning, like Procedural and Object Oriented Programming paradigm, will be useful
every single day of your professional career.
CURRICULUM
● Python Basics
○ Introduction to the Python environment
○ Python Data Types
○ Python Operators
○ Control flow structures
● Python collections
● Python functions
○ Definition and invocation
○ Advanced argument passing
○ Advanced concepts: scopes, annotations, local-nonlocal
○ Nested functions
○ Special attributes __name__, __doc__
● Functional programming
○ map, reduce, filter
○ List Comprehensions
○ High order functions
○ Immutability
● Advanced Object Oriented programming
○ Magic methods
○ Inheritance and mixins
○ Polymorphism
○ Descriptors, metaclasses and properties
● Iterators and Generators
● Modules and Packages
● Decorators
● Context Managers
● File Handling
● HTTP fundamentals
● Introduction to webdev with Flask
● Advanced Flask concepts
REQUIRED KNOWLEDGE TO BE ADMITTED
This is not an introductory DJango course. We will cover advanced topics about Django,
Web Development, APIs and webservices in general. That’s why we require some initial
knowledge to be admitted in this course.
Basic topics like HTTP protocol, client-server workflow, MVC framework components,
database concepts, basic SQL and all the common Django concepts are taken for
granted in this course.
If you want to test yourself before applying to the course, you can go through the
whole Django introductory tutorial [0]. You should be ready to apply once you
complete the tutorial.

[0] https://docs.djangoproject.com/en/1.9/intro/tutorial01/

CURRICULUM
● Introduction
○ Why Django
○ What's MVC?
○ Project layout conventions
● ORM
○ Model Fields, Relationships, Managers, etc
○ Migrations
● Django Shell
● URL resolution
● Function vs. Class Based Views
● Django Template engine
● Static and Media files
● Forms / ModelForms
● Django contrib auth
● Middlewares
● Context Processors
● Signals
● Walk through most common Django third party apps
● Writing custom Django Commands
● Working with Django admin
● RESTful APIs and webservices
○ RESTful API concepts
○ Authentication, Pagination, Serialization, etc
○ Testing
HIGHLIGHTS
You will find hundreds of Django courses/tutorials out there in the Internet, which are
probably really good. Sadly, most of them do not cover the important topics about
Web Development with Django. Topics that make the difference between a regular and
an experienced Django developer. For example:

● Learn how to deploy a Django app (the correct way).


● Write reusable django apps and publish them in PyPi.
● Build RESTful APIs with “django-rest-framework”.
● Concentrate in good practices and conventions.

This course aims to ship you straight to the next level of expertise in the Web
Development field.

You might also like