This course covers all basic knowledge needed for programming in python. The course designed based on the assumption that students want to work in the software industry, but it's also useful for academic purposes.

Course Calendar & Materials

All available resources for this course will be added to the following table.

SessionDateSubjectsSlidesCodesHomeworkSolutions
1February 8, 2018Python Philosophy, What is Python, Python 2.x vs Python 3.x, Python Installation and Setup, Why Python, Python Shell, Python Basic Syntax, Variables, Basic Data Types, Operators, Type Conversion, Truth Value Testing, Sequences, Sequence Operators, List Comprehension, String Formatting, Tuples, PyCharm Integrated Development Environment py_basics_v2.html-1, 2, 3-
2February 15, 2018Control Structures, Loops, Sets, Dictionaries, Functionspy_dtypes.html1, 2, 3, 41, 2, 31, 2, 3
3February 22, 2018Problem Solving, Modules Concepts, time Module, random Module, math Module, dir() Function, Packages in python, Working with Python Package Manager and VirtualEnvpy_modules.html, py_libs.html-0, 1, 2, 31-1, 1-2, 2, 3
4March 1, 2018Problem Solving, Version Control Systemsgit-version-control-system---
5March 8, 2018Writing a real-world program using some well-known high-level python packages, Regular Expressionspy_regex.html11, 2, 31, 2, 3
6March 15, 2018Object Oriented Concepts, Class and Object in Python, Instance Objects, Method Objects, Class and Instance Variables, Random Remarks, Inheritance, Multiple Inheritance, Odds and Ends, Special Methods, Underscore in Pythonpy_oop.html---
7April 5, 2018Exceptions Handling, Some Basic Terms in Software Engineering, Cohesion and Coupling Levelspy_errors.html, coh_coup.html---

Project

Here you can find a list of awesome beginners-friendly projects implemented in Python.

#Project NameDescriptionStarsOpen Issues
1catapultCatapult home for performance tools.654List of Open Issues
2Python BabelThe Python Internationalization Library.640List of Open Issues
3KintoA lightweight JSON storage service with synchronization and sharing abilities.3221List of Open Issues
4BorgBackupDeduplicating backup program with compression and authenticated encryption.2688List of Open Issues
5pylearn2A Machine Learning library based on Theano.2446List of Open Issues
6scrapyA fast high-level web crawling & scraping framework for Python.22272List of Open Issues
7mitmproxyAn interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers8282List of Open Issues
8MailpileA free & open modern, fast email client with user-friendly encryption and privacy features7043List of Open Issues
9coalaA unified command-line interface for linting and fixing all your code, regardless of the programming languages you use.1435List of Open Issues
10jarvisA personal assistant for Linux based on Command line Interface.742List of Open Issues
11qutebrowserA keyboard-driven, vim-like browser based on PyQt5.2276List of Open Issues
12Pybee/vocA transpiler that converts Python code into Java bytecode.512List of Open Issues
13Pybee/bataviaA Javascript implementation of the Python virtual machine.705List of Open Issues
14JARVIS-on-MessengerA community-driven python bot that aims to be as simple as possible to serve humans with their everyday tasks http://m.me/J.A.R.V.I.S.on.Messenger517List of Open Issues
15PytestThe pytest framework makes it easy to write small tests, yet scales to support complex functional testing.1627List of Open Issues
16GratipayHelping companies and others pay for open source.1088List of Open Issues
17FabricPythonic remote execution and deployment.8949List of Open Issues

Additional Resources

Useful Links

What's the next?

  • Advanced Programming in Python
  • Use Python to build web applications with Django
  • Web Scraping in Python
  • Web Information Retrieval