Conceptual introduction: Topics in computer science, algorithms; modern computer systems: hardware architecture, data representation in computers, software and operating system; Installing Python; basic syntax, interactive shell, editing, saving, and running a script. The concept of data types; variables, assignments; immutable variables; numerical types; arithmetic operators and expressions; comments in the program; understanding error messages.
Conditions, boolean logic, logical operators; ranges; Control statements: if-else, loops (for, while); short-circuit (lazy) evaluation. Strings and text files; manipulating files and directories, os and sys modules; text files: reading/writing text and numbers from/to a file; creating and reading a formatted file (csv or tab- separated). String manipulations: subscript operator, indexing, slicing a string; strings and number system: converting strings to numbers and vice versa. Binary, octal, hexadecimal numbers.
Lists, tuples, and dictionaries; basic list operators, replacing, inserting, removing an element; searching and sorting lists; dictionary literals, adding and removing keys, accessing and replacing values; traversing dictionaries. Design with functions: hiding redundancy, complexity; arguments and return values; formal vs actual arguments, named arguments. Recursive functions. Testing, Debugging, Exceptions, Assertions. Classes and OOP: classes, objects, attributes and methods; defining classes; design with classes, data modeling; persistent storage of objects.