COURSE

Python Programming

An 18-hour, hands-on introduction to Python. You'll write real programs, break them, fix them, and leave able to build things on your own.

18 hours In person 12 sessions × 1.5h Ages 15+ Beginner friendly
OUTCOMES

What you'll learn

By the end of the course, you'll be able to:

outcomes.txt

After 18 hours:

  • Understand why Python is a general-purpose language
  • Use variables without fighting them
  • Work with lists, tuples, and dictionaries
  • Identify Python object types
  • Use indexing and slicing to access data
  • Write loops and control structures
  • Write functions that do one thing well
  • Handle files with Python
  • Use object-oriented programming
  • Use try/except for error handling
  • Write programs in the Unix design philosophy
requirements.txt

What you need:

  • A functional laptop
  • Basic computer skills
  • Curiosity to learn
  • A stubborn streak for trying things until they work
SYLLABUS

Course curriculum

Seven modules, taught in order, with exercises at every step.

01

Introduction to Basic Data Types

  • Variables
    • Naming and Using Variables
    • Avoiding errors
    • Exercise
  • Strings
    • Combining and Concatenating Strings
    • Stripping Whitespace
    • Syntax Errors
    • Exercise
  • Numbers
    • Integers
    • Floats
    • Avoiding Type errors with str()
    • Exercise
  • Comments
    • Different Ways to Declare Comments
    • Why Comments Are Necessary
02

Introduction to Lists

  • What is a list?
    • Accessing Elements
    • Indexing
  • Modifying list elements
  • Organizing a List
    • Sorting with sort()
    • Sorting with sorted()
    • Finding the Length of a list
    • Exercise
  • Looping Through an Entire List
  • Numerical Lists
    • Range function
  • Slicing a list
  • Tuples
    • Definition
    • Looping Through a Tuple
    • Exercise
03

Introduction to Dictionaries

  • Working with Dictionaries
    • Accessing Values
    • Key-Value Pairs
  • Looping through a dictionary
    • Looping Through Key-Value pairs
    • Looping Through Keys
    • Looping Through all Values
    • Exercise
  • Nesting
    • A List of Dictionaries
    • A List in a Dictionary
    • Exercise
04

Introduction to Control Flow and Functions

  • How the input() function works
    • Clear prompts
    • int() to accept input
    • Modulo Operator
  • while Loops
    • Break to exit loop
    • Continue in a loop
    • Exercise
  • for Loops
  • if Statements
    • Simple if Statements
    • if-else Statements
    • Using if Statements with Lists
  • Functions
    • Function Definition
    • Passing Arguments
    • Return Values
    • Passing a List
    • Passing an Arbitrary Number of Arguments
    • Modules
    • Exercise
05

Introduction to Objects and Classes

  • Creating and Using a Class
  • Working with Classes
    • Set a Default value as attribute
    • Modifying Attribute Values
  • Inheritance
    • init() method
    • Instance as Attributes
  • Importing Classes
  • Python Standard Library
06

Handling Files

  • Reading from a File
    • File Paths
    • Reading an entire file
    • Reading line by line
    • Exercise
  • Writing to a File
    • Writing an Empty File
    • Writing Multiple Lines
    • Exercise
  • Exceptions
    • try-except Blocks
    • The else Block
    • Analysing Text
    • Exercise
  • Storing Data
    • json.dump() and json.load()
    • Refactoring
07

Zen and Programming

  • The Zen of Python
  • History of Unix
  • UNIX Philosophy
BUILD

The project

You'll pick a program of your choice and build it from scratch, using everything from the seven modules. We'll review it with you and help you get it to a state you're happy with.

FEES

What it costs

The ₹1,000 that every student pays goes into a fund that covers the course fee for three people who can't afford it.
PHILOSOPHY

Why we teach it this way

The common perception towards programming is often colored by a sense of begrudging monotony. This is more or less true for any technical pursuit since the public imagination regards subjects that fall into this assortment as lucrative but insufferably tedious or boring. Such an opinion partly owes itself to the nature of these subjects themselves, because they involve the rigorous application of certain rules and methods. Programming, for instance, requires the learning of the special syntax and grammar of specific "programming languages". But unlike the language that we use colloquially, there is little room for ambiguity in programming. Since computers are deterministic and only understand binary operations, we find ourselves in a position where we must explicitly translate our thoughts in a formal medium of expression.

So a programming language is fundamentally a compromise between man and machine. As you learn the language and subject yourself to its rigour, you obtain an understanding of how computers reduce seemingly complex tasks into simple mathematical operations. The process of arriving at this understanding, however, remains strenuous and is partly what creates the impression that in order to talk to machines, we must also become monotonous and machine like. There is some truth to this assumption but it also arises from the misconception that programming merely involves the mastery of rules and syntax.

Although a large part of programming seems highly technical, the process of translating your ideas into the language itself couldn't be farther from it. As I had implied before, programming languages fundamentally establish a bridge between you and the machine. It affords a set of tools which, although are applied technically, can be wielded for our own creative ends. The reason a large part of our interactions with technology is often characterized by frustration is because a lack of understanding on how a piece of software works mystifies it. It precludes the possibility of either changing a program in a way we deem fit or use it in contexts other than those in which it is often applied.

However, in becoming cognizant of the language that dictates the working of any program, you begin to realize how precisely it interacts with the context of daily life. You see in what ways it exercises more control and reclaim the freedom it has almost imperceptibly eaten away. With the knowledge of its inner workings, you slowly mould the use of programs and tailor it to cater to your own specific needs. This process of trying to understand how programs, and perhaps even technology in general, continuously interact and shape human life is also a large part of the study of programming.

So more than mere analysis, the task of writing a program is also guided by intuition and the attempt to discover how one can creatively express themselves within the limits of a binary world. What makes this process enriching and perhaps even artistic lies in the character of this negotiation. You are confronted with what is essentially a logical beast. And as you wrestle with it and attempt to formally express your idea programmatically, the idea itself assumes radically different dimensions.

Therefore a neatly written program is the hard earned product of this tumultuous struggle. It is not only the accumulation of the instructions you have laid out but also represents the incarnation of your thought in reality. So programming, far from being an impersonal task of churning out code, calls for immense personal involvement and creativity. If done properly, it demands the constant refinement of your thought and the ability to express yourself in a manner that is both concise and deliberate. So even for a layman who might not pursue this discipline professionally, there is much to gain from learning to converse with machines.

A part of the reason that technical disciplines, especially those that pertain to computers, have created the impression of being either exceedingly difficult or too mundane to pursue is because of the fact that they have been taught in complete isolation. An engineer or a programmer is rarely informed on the rich history of their discipline and neither are they concerned about the social or the cultural implications of the work they do. As they apply methods and procedures systematically and objectively, their work gradually assumes a direction of its own. This kind of detachment, we are told, is what specialization entails and allows for technology to breed out of its own necessity but it comes at the expense of what makes a pursuit fundamentally human.

So there is not simply a rigid distinction between the technical and the artistic but also the steady encroachment of the former to envelop the latter. Art, in its highest form, requires immense personal sacrifice from its practitioners. It creates a possibility to contemplate on the fundamental unity of all things. But what transpires practically, both in the case of an artist and a technician, is more or less the same. A set of methods and procedures, arrived at through years of practice and experimentation, are applied in a specific context to secure an outcome. Therefore what differentiates the two is that in art we see the individual gleam through his work but in a product that is technical, he vanishes behind the sophistication of its methods.

Such a disparity emerged not from the nature of these pursuits themselves but in the way we have learned to practice them. As much as it is possible to pursue art mechanically and impersonally, it is equally possible to pursue anything that is technical through the avenue of involvement and creative self expression. Although a well written program might not be as universally appreciated as the rhythm of a good song, you are still transformed in the process of creating it. Similar to how art becomes a means to comprehend the unity of things, immersing yourself in a world of 1s and 0s lets you see how daunting complexity can arise out of mechanisms that are breathtakingly simple and elegant. The beauty that is witnessed in both of these instances are strikingly similar despite the obvious differences in their form and context. And in witnessing it, you cannot help but wonder if the line that divides the technical and the artistic is nothing more than mere pretense.

STUDENTS

What students say

Dilshath Shafana

Python Training Student

"The Python training was practical from day one."

I joined SICCSEGV's Python training with almost no coding experience. The sessions were hands-on, the pace was comfortable, and the mentors made sure everyone actually understood what they were writing. By the end I could build small scripts on my own with confidence. I'd recommend it to any student who wants to learn programming properly.

Yashwanth

Python Training Student

"They taught us to think like programmers, not just copy code."

What stood out about SICCSEGV's Python training was the focus on problem-solving. Instead of memorising syntax, we learned how to break problems down and write clean solutions. The trainers were patient, answered every question, and gave feedback that actually helped. It made programming feel approachable and genuinely interesting.

ENROLL

Join the next batch

Send us a message and we'll get back to you with dates and next steps.

Send Us a Message

Fill out the form below and we'll get back to you soon

Python Training
Select a service
Penetration Testing
Linux System Administration
Web Development
Security Training
Python Training
Scripting Services
Custom Development
General Inquiry