Project Description

Venci Kolev

Python Developer with more than 7 years of experience

The course will lead our lecturer – Venci Kolev, a programmer with more than 10 years of experience in developing a different kind of softwares, 7 years of 10, he worked on mostly on Python.
Now he is working as a Team Leader at “AltScale” – this is a software company based in Varna. He also leads a different kind of other programming courses.
Except with Python for the past few years Venci works with Ruby and Node. Right now his team in AltScale is outsourced to Intralinks. His previous project was outsourced again this time to – ASML . Both of this companies are very big and they are developing mostly an Enterprise Software.

He participated in a lot of small and medium projects as well. Some of the project he started from scratch. Venci has good experience in all phases of making a software product.

Venci has already made a similar course in Sofia and it was very successful. The course in Sofia was bigger and divided by 3 levels and every level was a few months long. Now he wants to make the same line of courses here in Varna. He sees a lot of potencial in the people here.


Course Info

Every lecture will be 4 hours long.
You will have 2 hours for Theory and 2 hours for Practice
Course starts at 26.11.19

– Programming languages
– Reference to actual Python (in REPR)
– PEP8 & Zen of Python
– Linter
– Pip
– Jupyter
– IDE – Pycharm

In this lecture you’ll learn what’s Python, for what you can use this language, what tools you’ll need to program on this language and how to install them.

– Built-in types
– Numeric types – expressions and operations
– Variables, objects and references – conceptual, use labels and place them on people
– Strings
– Dir, help, type, documentation

Here you’ll learn what are variabels, what types of variables Python has, how to declare them and some of the basic operations of the language with which you could work.

– Lists
– Tuples
– Mutability & Immutability
– Dictionaries
– Sets

You will learn about the different types of collections – sheets, sets, dictionaries, etc. You will also understand why data can be mutable and immutable and what it means.

– More on assignments & expressions
– Conditionals & Booleans
– Loops
– Comprehensions

In this lecture we will look at some of the basic operations for each programming language. Cycles, If-Else, Booleans and more. You will be introduced to some of the most basic algorithms that use these operations (functions).

– Concept and how to in Python
– Scopes
– Arguments
– Recursive functions

Functions are an important part of any programming language. We will learn the basic concepts of how functions work in Python. We will look at what scopes are, where they are used and what the arguments really are, and we will focus on recursion as a function – or the so-called infinite cycle.

– How modules work
– The python standard library
– How python finds modules
– Namespaces
– Importing stuff in different ways
– __all__, __name__, __main__

Modules are an important part of the language. We will also look at standard Python libraries. How the language actually locates modules from these libraries, what “namespace” is, and more key things.

– Why classes?
– Classes and instances, __init__
– First class
– Private, protected, public
– What are the benefits of OOP?
– Compare procedural, functional and OOP code

Here you will learn what Object-Oriented Programming is. Classes, Instances, Abstractions … You will learn the basic principles of OOP and its advantages over functional programming. You will also look at access modifiers and why they are important for Object-oriented programming.

– Inheritance
– Super
– __mro__
– Composition
– “Is a” vs “Has a”

In this lecture we will take a closer look at OOP. We will really see how it is applied and why it is important to be able to use it properly. We’ll look at one of Python’s most useful features, namely Inheritance.

– Dynamic vs static typing
– Polymorphism vs duck typing
– Dunders
– Operator overloading
– Functions vs methods
– Attribute access (instance, class, static, property)

Since OOP is an important topic, we will again focus on it and look at it more thoroughly from the perspective of Python itself. We will learn about dynamic and static types, functions and methods, also about polymorphism (one of the basic principles of OOP).

– Map/ Filter/ Reduce/ Lambdas
– Functions are first-class citizens
– Lazy and non-lazy collections
– Generators & yield
– Decorators

We’ll take a closer look at Python features and what they actually give us as options and what built-in functionalities there are in the language ​​that may be very useful to us. They apply more to all object-oriented languages.

– Parsing stuff
– Working with the OS
– Files
– Context managers
– Version Control
– Why exceptions?
– Handling exceptions (try, except, else, finally)
– Exception hierarchy
– Re-raising issues
– Defining exceptions
– Testing (assertRaises)

We will pay attention to the different exeptions. How to keep them before they break our code. We will focus on the types of errors that you will see in your language work and also how to test your code.

Boy-scout rule
Documenting code

An important part of Object Oriented Programming is Design Patterns. These are different types of implementation of a problem in the OOP. They are important and vital to any good programmer.

– Concepts of testing – end-to-end, integration, unit
– Py
– Mocks, stubs and spies

Test writing is also an important part of developing quality software. You will learn how to write Python tests that will easily detect errors in your code after a change.

Lecture 15 – Real Project

You will create a real project by description
You will need to submit a working demo
You will be able to apply everything learned during the course
Аt the end of the course, the last few lectures, you will have a workshop where you will develop a real Python project using Wreaths. You will go through all the stages of software development and finally you will present a demo and the best of you will get a chance to intern at a prominent Varna company.

Course Schedule

  • Lecture 1 – Theory ( 26.11.19 )
  • Lecture 1 – Practice ( 30.11.19 )
  • Lecture 2 – Theory ( 03.12.19 )
  • Lecture 2 – Practice (07.12.19 )
  • Lecture 3 – Theory ( 10.12.19 )
  • Lecture 3 – Practice ( 14.12.19 )
  • Lecture 4 – Theory ( 17.12.19 )
  • Lecture 4 – Practice ( 21.12.19 )
  • Lecture 5 – Theory ( 07.01.19 )
  • Lecture 5 – Practice ( 11.01.20 )
  • Lecture 6 – Theory ( 14.01.20 )
  • Lecture 6 – Practice ( 18.01.20 )
  • Lecture 7 – Theory ( 21.01.20 )
  • Lecture 7 – Practice ( 25.01.20 )
  • Lecture 8 – Theory ( 28.01.20 )
  • Lecture 8 – Practice ( 01.02.20 )
  • Lecture 9 – Theory ( 04.02.20 )
  • Lecture 9 – Practice ( 08.02.20 )
  • Lecture 10 – Theory ( 11.02.20 )
  • Lecture 10 – Practice ( 15.02.20 )
  • Lecture 11 – Theory ( 18.02.20 )
  • Lecture 11 – Practice (22.02.20 )
  • Lecture 12 – Theory ( 25.02.20 )
  • Lecture 12 – Practice ( 29.02.20 )
  • Lecture 13 – Theory ( 03.03.20 )
  • Lecture 13 – Practice ( 07.03.20 )
  • Lecture 14 – Theory ( 10.03.20 )
  • Lecture 14 – Practice ( 14.03.20 )
  • Lecture 15 – Theory ( 17.03.20 )
  • Lecture 15 – Practice ( 21.03.20 )
  • Lecture 16 – Project ( N/A)
  • Lecture 16 – Project ( N/A)
  • Lecture 16 – Project ( N/A)
  • Lecture 16 – Project ( N/A)
  • Lecture 16 – Project ( N/A)
  • Lecture 16 – Project ( N/A)

Former’s Students Feedback

The course fully met my expectations. The topics were well structured and I liked that there were some real examples. The theory was a bit much, however. We needed a little more practice for some modules, but overall the preparation was at level.
Anonymous, Company: Strypes
The topics were presented in an easy and understandable way. Overall, the course was extremely well structured. Personally, I was missing a little more exercise in OOP modules. This is the matter that needs the most attention.
Anonymous, Company: Strypes
The lecturer is quite fresh. Personally, I liked him as a person a lot. Creating a pleasant environment while teaching is important, it is easier to remember something new by tagging with a chat.
Anonymous, Company: Strypes


Sign up for our beginner course – start your IT career at AltScale

All students will have a chance to start an internship at a prestigious IT company in Varna.

All depends on you.
During the course, our lecturer, Venci, will grade your presentation.
At the end of the course, you will have a chance to show what you have learned through the project that Venci will give you to develop.

In addition to being a lecturer in this course, Venci will also be the personal mentor of all students who begin as interns at AltScale. He will personally make sure you become a real programmer and will continue to work hard with you on real projects.

Sign up for our course for beginners


Real price of the course – 580 leva

Discount price – 490 leva

The discount is valid until – 15.11.19

Duration of the course – 4 months

Duration of each session – 2 hours