This plan is structured into 57 days, with 10 to 12 programs per day, categorized for maximum learning efficiency. Each program is described clearly and assigned a unique filename.
Focus: Input/Output, Arithmetic, and Basic Variable Manipulation.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 1 | Swap the values of two variables (using temporary variable AND Python tuple unpacking). | A. Basics | A01_swap_values.py |
| 2 | Calculate the sum of the first and last digit of a 4-digit integer. | A. Basics | A02_digit_sum.py |
| 3 | Convert distance in Kilometers (km) to Centimeters (cm), Meters, Feet, and Inches. | A. Basics | A03_unit_convert.py |
| 4 | Implement a simple calculator: take two numbers and an operator (+, -, *, /) as input and display the result. | A. Basics | A04_simple_calc.py |
| 5 | Calculate the Simple Interest (SI) given Principal, Rate, and Time. | A. Math | A05_simple_interest.py |
| 6 | Calculate the Compound Interest (CI) given Principal, Rate, and Time. | A. Math | A06_compound_interest.py |
| 7 | Calculate the Area of a Circle given its radius ( |
A. Math | A07_circle_area.py |
| 8 | Calculate the Perimeter of a Rectangle given its length and breadth. | A. Math | A08_rect_perimeter.py |
| 9 | Calculate the Cube of a number ( |
A. Math | A09_cube_number.py |
| 10 | Calculate the Average of three numbers. | A. Math | A10_average_three.py |
| 11 | Convert temperature from Fahrenheit to Celsius (using the formula: |
A. Math | A11_f_to_c.py |
Focus: if, elif, else blocks, Boolean logic, and comparison.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 12 | Determine if a user is eligible to vote (age |
B. Conditionals | B01_vote_eligibility.py |
| 13 | Determine if a number is positive, negative, or zero. | B. Conditionals | B02_pos_neg_zero.py |
| 14 | Determine if a number is Even or Odd. | B. Conditionals | B03_even_odd.py |
| 15 | Find the Largest of Three input numbers. | B. Conditionals | B04_max_of_three.py |
| 16 | Determine a person's life stage (Kid, Teenager, Adult, Senior Citizen) based on input age using tiered elif checks. |
B. Conditionals | B05_life_stage.py |
| 17 | Calculate student Total, Percentage, Result (Pass/Fail), and Grade for 5 subjects. Must be marked Fail if any subject mark is below 40. | B. Logic | B06_student_grade.py |
| 18 | Determine if a given year is a Leap Year (divisible by 4, except for years divisible by 100 but not by 400). | B. Logic | B07_leap_year.py |
| 19 | Check if a single input character is a vowel (a, e, i, o, u) or not. |
B. Logic | B08_is_vowel.py |
| 20 | Convert an input character to lowercase if it's uppercase, and vice-versa. | B. Logic | B09_toggle_case.py |
| 21 |
Advanced Discount Logic: Calculate bill payment with a tiered discount based on purchase amount (e.g., |
B. Logic | B10_bill_discount_tiered.py |
| 22 | Taxable Income Check: Determine if income is taxable based on gender (Male > 700000, Female > 500000). | B. Logic | B11_tax_check.py |
Focus: for and while loops, basic counting, and tables.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 23 | Print numbers from 1 to 10 using a while loop. |
C. Loops | C01_while_1_to_10.py |
| 24 | Print numbers from 1 to 10 using a for loop and the range() function. |
C. Loops | C02_for_1_to_10.py |
| 25 | Print all even numbers up to a user-defined limit (while loop. |
C. Loops | C03_while_even_n.py |
| 26 | Print all odd numbers from 1 to a user-defined limit (for loop. |
C. Loops | C04_for_odd_n.py |
| 27 | Print the multiplication table of a given number (for loop. |
C. Loops | C05_table_for.py |
| 28 | Print the multiplication table of a given number (while loop. |
C. Loops | C06_table_while.py |
| 29 | Print numbers in reverse order from 100 down to 90 using range(). |
C. Loops | C07_for_100_90.py |
| 30 | Find all numbers between 2000 and 3200 (inclusive) which are divisible by 7 but NOT a multiple of 5. | C. Loops | C08_range_filter.py |
| 31 | Calculate the Factorial of a number ( |
C. Math | C09_factorial_iter.py |
| 32 | Print the first 10 natural numbers along with their squares and cubes in a tabular format. | C. Loops | C10_sq_cube_table.py |
| 33 | Print all numbers that are divisible by 7 between 1 and 200. | C. Loops | C11_divisible_by_7.py |
Focus: Digit manipulation, sequences, and advanced loop usage.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 34 | Calculate the sum of digits of a given integer number ( |
C. Math | C12_sum_of_digits.py |
| 35 |
Reverse a given integer number ( |
C. Math | C13_reverse_number.py |
| 36 | Check if a given number is a Palindrome (reads the same forwards and backwards). | C. Logic | C14_palindrome_num.py |
| 37 | Check if a given number is an Armstrong Number (sum of cubes of digits equals the number). | C. Logic | C15_armstrong.py |
| 38 | Generate the Fibonacci series up to |
C. Sequence | C16_fibonacci.py |
| 39 | Find all Prime Numbers up to a user-defined limit ( |
C. Sequence | C17_primes_in_range.py |
| 40 | Print characters from an input string that are present at even index positions using a loop. | C. String | C18_string_even_index.py |
| 41 | Use the else block with a for loop to display a message ("Loop completed successfully") only when the loop finishes without a break. |
C. Advanced | C19_for_else.py |
| 42 | Use a loop to display elements from a given list that are present at odd index positions. | C. List | C20_list_odd_index.py |
| 43 | Find the total number of words in an input string. | C. String | C21_count_words.py |
| 44 | Count the number of times a specific word appears in a given string. | C. String | C22_count_word_freq.py |
Focus: Defining functions, return values, basic math, and arguments.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 45 | Create a function calculate_area_circle(radius) to calculate and return the area of a circle. |
D. Function | D01_func_area_circle.py |
| 46 | Create two separate functions, square(n) and cube(n), that return the square and cube of a number, respectively. |
D. Function | D02_func_sq_cube.py |
| 47 | Create a function calculate_simple_interest(P, R, T) to calculate simple interest. |
D. Function | D03_func_si.py |
| 48 | Create a function is_prime(n) that checks if a number is prime and returns a Boolean (True or False). |
D. Function | D04_func_is_prime.py |
| 49 | Create a function string_length(s) that returns the length of a string without using the built-in len(). |
D. Function | D05_func_str_len.py |
| 50 | Create a function factorial_rec(n) that calculates the factorial of a number using recursion. |
D. Recursion | D06_func_factorial_rec.py |
| 51 | Create a function encrypt_string(s) that replaces all vowels (a, e, i, o, u) with 'x'. |
D. Function | D07_func_encrypt_vowel.py |
| 52 | Implement the recursive Fibonacci sequence function. | D. Recursion | D08_func_fib_rec.py |
| 53 | Implement the Tower of Hanoi problem using recursion. | D. Recursion | D09_func_hanoi.py |
| 54 | Write a program to demonstrate the four ways to pass arguments to a function: Required, Keyword, Default, and Variable-length (*args, **kwargs). |
D. Arguments | D10_func_arg_types.py |
| 55 | Create a single function that accepts 3 arguments (2 numbers and 1 arithmetic operator string) and uses an if/elif/else structure to return the calculated result. |
D. Function | D11_func_op_calc.py |
Focus: List manipulation, comprehensions, and tuple basics.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 56 | Accept a sequence of comma-separated numbers from the user and generate a list and a tuple of those numbers. | E. List/Tuple | E01_list_tuple_from_csv.py |
| 57 | Display the first and last elements from a predefined list (e.g., a color list). | E. List | E02_list_first_last.py |
| 58 | Create a dynamic list by repeatedly taking elements from the user until a sentinel value is entered, then display the final list. | E. List | E03_dynamic_list.py |
| 59 | Write a program to find the maximum, minimum, and length of a list using user-defined functions. | E. List | E04_list_min_max_func.py |
| 60 | Create a new list using a List Comprehension that stores the squares of numbers from 1 to |
E. List Comp | E05_list_squares_comp.py |
| 61 | Implement the Two Sum Problem: Given a list of numbers and a target, find the indices of the two numbers that add up to the target. | E. Algorithm | E06_two_sum.py |
| 62 | Move Zeroes: Move all zeroes in a list to the end while maintaining the relative order of the non-zero elements. | E. List Ops | E07_move_zeroes.py |
| 63 | Merge Sorted Lists: Merge two already sorted lists into a single sorted list. | E. List Ops | E08_merge_sorted_lists.py |
| 64 | Find all Duplicate Elements in a given list. | E. List Ops | E09_find_duplicates.py |
| 65 |
Rotate an Array: Rotate a list of |
E. List Ops | E10_rotate_array.py |
| 66 | Product of Array Except Self: Compute a new list where each element is the product of all elements in the original list except the element at the current index. | E. Advanced | E11_product_except_self.py |
Focus: String methods, character-level logic, and basic search.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 67 | Reverse an input string without using slicing ([::-1]) or the reversed() function (use a loop). |
F. String Ops | F01_str_reverse_manual.py |
| 68 | Check if an input string is a Palindrome (reads the same forwards and backwards). | F. String Logic | F02_str_palindrome.py |
| 69 | Convert an input string entirely to uppercase letters. | F. String Ops | F03_str_to_upper.py |
| 70 | Convert an input string entirely to lowercase letters. | F. String Ops | F04_str_to_lower.py |
| 71 | Concatenate two input strings. | F. String Ops | F05_str_concatenate.py |
| 72 | Compare two strings to check if they are exactly the same (case-sensitive and case-insensitive check). | F. String Logic | F06_str_compare.py |
| 73 | Find the number of spaces and vowels in an input string. | F. String Logic | F07_str_vowels_spaces.py |
| 74 | Check if two strings are Anagrams of each other (contain the same characters in a different order). | F. String Logic | F08_check_anagram.py |
| 75 | Find the First Non-Repeating Character in a string. | F. String Logic | F09_first_unique_char.py |
| 76 | Remove all blank spaces from an input string. | F. String Ops | F10_remove_spaces.py |
| 77 | Find the Highest Frequency Character (the one that occurs most frequently) in a string. | F. String Logic | F11_highest_freq_char.py |
Focus: Advanced collection manipulation using Pythonic syntax.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 78 | Create a dictionary where keys are numbers from 1 to |
G. Dict Comp | G01_dict_squares_comp.py |
| 79 | Create a dictionary from a string, where keys are characters and values are their frequencies (occurrences). | G. Dictionary | G02_dict_char_freq.py |
| 80 | Merge two dictionaries into a single dictionary. Handle key conflicts by using values from the second dictionary. | G. Dictionary | G03_dict_merge.py |
| 81 | Filter a dictionary to include only items where the value is greater than a specified threshold. | G. Dict Comp | G04_dict_filter_value.py |
| 82 | Invert a dictionary: swap keys and values. Handle cases where multiple keys map to the same value (values become lists of keys). | G. Dictionary | G05_dict_invert.py |
| 83 | Access nested data: From a sample JSON API response (dictionary), extract a specific nested field (e.g., city name). | G. Dictionary | G06_dict_nested_access.py |
| 84 | Create a Set from a list to automatically remove duplicate elements. | G. Sets | G07_set_remove_duplicates.py |
| 85 | Perform Set Operations: Union, Intersection, and Difference between two sets of numbers. | G. Sets | G08_set_operations.py |
| 86 | Use a Set Comprehension to create a set of unique square roots of numbers from a list. | G. Set Comp | G09_set_root_comp.py |
| 87 | List Comprehension with Conditional: Create a new list containing only the even numbers from an existing list. | G. List Comp | G10_list_comp_if.py |
| 88 | Nested List Comprehension: Flatten a list of lists (a 2D structure) into a single 1D list. | G. List Comp | G11_list_comp_nested.py |
| 89 | Use a Dictionary Comprehension to swap the positions of keys and values for selected pairs in a dictionary. | G. Dict Comp | G12_dict_comp_swap_filter.py |
Focus: Reading, writing, and basic analysis of text files.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 90 | Write and create a text file and input multi-line text into it from the user. | H. File I/O | H01_file_write_text.py |
| 91 | Read a text file line by line and print the content to the console. | H. File I/O | H02_file_read_line.py |
| 92 | Count Characters, Spaces, and Lines in a given text file. | H. File Analysis | H03_file_analyze_char.py |
| 93 | Copy the content of one text file into a brand new duplicate file. | H. File I/O | H04_file_copy.py |
| 94 | Append new content to the end of an existing text file. | H. File I/O | H05_file_append.py |
| 95 | Read a file containing numbers (one per line) and display the total sum and average. | H. File Analysis | H06_file_sum_avg_numbers.py |
| 96 | Read a file and replace all occurrences of a specific character (e.g., 'a') with another (e.g., 'x'). | H. File Update | H07_file_replace_char.py |
| 97 | Filter file content: Read a file with numbers (1 to 10), and write odd numbers to ODD.txt and even numbers to EVEN.txt. |
H. File Filter | H08_file_filter_odd_even.py |
| 98 | Read a text file and count the number of uppercase, lowercase, and digit characters. | H. File Analysis | H09_file_count_case.py |
| 99 | Find the size of a file in bytes without reading its entire content (using os module). |
H. File Analysis | H10_file_size.py |
| 100 | Read two filenames as command-line arguments and copy the content of the first file into the second. | H. Advanced | H11_file_cli_copy.py |
Focus: Word analysis, serialization, and advanced string problems.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 101 | Word Frequency Counter: Read a text file and compute the frequency of each word, displaying the output sorted alphabetically. | I. Text Analysis | I01_file_word_frequency.py |
| 102 | Read a file and store all found special characters (symbols) into a separate file. | I. Text Analysis | I02_file_extract_symbols.py |
| 103 | Read a file and find the employee who earns the highest salary based on a structured record (name, salary). | I. Text Analysis | I03_file_highest_salary.py |
| 104 | Binary File: Write structured data (e.g., a simple record) into a binary file using the pickle module. |
I. Binary I/O | I04_file_write_binary.py |
| 105 | Binary File: Read the structured data written in the previous program from the binary file using pickle. |
I. Binary I/O | I05_file_read_binary.py |
| 106 | Positioning: Demonstrate the use of seek(), tell(), and truncate() functions for file pointer management. |
I. Advanced | I06_file_seek_tell.py |
| 107 | Read a list of names from the keyboard and store them into a text file. | I. File I/O | I07_file_store_names.py |
| 108 | Caesar Cipher Encryption: Implement the Caesar Cipher to encrypt an input string with a given shift key. | I. String Crypto | I08_caesar_cipher_enc.py |
| 109 | Caesar Cipher Decryption: Implement the Caesar Cipher to decrypt a given encrypted string with the known shift key. | I. String Crypto | I09_caesar_cipher_dec.py |
| 110 | Brackets/Parentheses Checker: Check if a string containing parentheses, braces, and brackets is balanced and properly nested. | I. Data Struct | I10_balanced_brackets.py |
| 111 | String to Integer (atoi): Implement a function to convert a string representation of an integer to its actual integer value, handling potential overflow, sign, and non-digit characters. | I. Advanced | I11_string_to_int.py |
| 112 | Validate an IP Address: Create a function to check if a given string is a valid IPv4 address. | I. Advanced | I12_validate_ip.py |
Focus: Robust code, error types, and custom exceptions.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 113 | Implement a basic try...except block to handle a ZeroDivisionError. |
J. Exception | J01_except_zero_division.py |
| 114 | Implement a try...except block to handle a ValueError when converting a non-numeric input string to an integer. |
J. Exception | J02_except_value_error.py |
| 115 | Use Multiple except blocks to handle different types of exceptions (TypeError, IndexError) in a single try block. |
J. Exception | J03_except_multiple.py |
| 116 | Demonstrate the use of the finally block to execute cleanup code regardless of whether an exception occurred or not. |
J. Exception | J04_except_finally.py |
| 117 | Use a try...except...else structure. The else block should execute only if no exception is raised. |
J. Exception | J05_except_else.py |
| 118 | Safely Read Configuration File: Implement robust code using try...except to read a configuration file (config.txt) and handle FileNotFoundError. |
J. Robustness | J06_except_file_not_found.py |
| 119 | Raise a custom exception (InvalidAgeError) using the raise keyword when the input age is negative or unrealistically high. |
J. Custom Except | J07_except_raise_custom.py |
| 120 | Custom Exception Class: Define and use a custom exception class, inheriting from Exception, to provide meaningful error messages. |
J. Custom Except | J08_except_custom_class.py |
| 121 | Handling API Errors (Mock): Simulate a robust function that handles potential dictionary KeyError or network-related exceptions during a mock API request. |
J. Robustness | J09_except_api_robust.py |
| 122 | SSH Connection Failure (Mock): Simulate handling connection-related exceptions (like TimeoutError) when trying to connect to a remote server. |
J. Robustness | J10_except_ssh_mock.py |
| 123 | Argument Validation: Use try...except to validate that a script received the correct number and type of command-line arguments. |
J. Robustness | J11_except_validate_args.py |
Focus: Classes, Objects, Methods, and Constructors.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 124 | Define a simple Class and Object (Student class with name and roll_number attributes) and create an instance. |
K. OOP Basics | K01_class_object.py |
| 125 | Implement a Constructor (__init__) in a class (Car) to initialize object attributes (color, model). |
K. OOP Basics | K02_class_constructor.py |
| 126 | Add a Method to the Car class (e.g., start_engine()) that prints a message and access an attribute. |
K. OOP Basics | K03_class_method.py |
| 127 | Create a Circle class with radius as an attribute and methods to calculate the Area and Circumference. |
K. OOP Basics | K04_class_circle.py |
| 128 | Create a Bank class with methods for deposit and withdraw money, tracking the balance attribute. |
K. OOP Basics | K05_class_bank_system.py |
| 129 | Define a class method (@classmethod) to create a new object using an alternative constructor (e.g., creating a Date object from a string). |
K. OOP Basics | K06_class_classmethod.py |
| 130 | Define a static method (@staticmethod) that performs a utility function related to the class but doesn't need self or cls (e.g., is_working_day). |
K. OOP Basics | K07_class_staticmethod.py |
| 131 | Demonstrate the use of the __str__ magic method for a user-friendly string representation of an object. |
K. OOP Basics | K08_class_str_repr.py |
| 132 | Implement the Vending Machine as a class, managing inventory (dictionary) and handling user transactions. | K. OOP Project | K09_class_vending_machine.py |
| 133 | Create a Student class and use a dictionary of objects to store records for multiple students. |
K. OOP Data | K10_class_dict_of_objects.py |
| 134 | Implement the Binary Search algorithm as a method within a dedicated Search class. |
K. OOP Algo | K11_class_binary_search.py |
| 135 | Overload comparison operators (__lt__, __gt__, __eq__) in a class (e.g., comparing two Point objects based on distance from origin). |
K. OOP Advanced | K12_class_operator_overload.py |
Focus: Inheritance types, method overriding, and abstraction.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 136 | Demonstrate Single Inheritance: Create a Vehicle base class and a Car derived class. |
L. Inheritance | L01_single_inheritance.py |
| 137 | Demonstrate Multilevel Inheritance: Animal Dog Puppy. |
L. Inheritance | L02_multilevel_inheritance.py |
| 138 | Demonstrate Hierarchical Inheritance: One base class (Shape) inherited by multiple derived classes (Circle, Square). |
L. Inheritance | L03_hierarchical_inheritance.py |
| 139 | Demonstrate Polymorphism using Method Overriding: Base class speak() method is overridden in derived classes (Dog, Cat). |
L. Polymorphism | L04_method_overriding.py |
| 140 | Demonstrate Polymorphism using Duck Typing (two unrelated classes having the same method name, fly()). |
L. Polymorphism | L05_duck_typing.py |
| 141 | Simulate Method Overloading using default arguments or by checking argument types/counts within a single Python method. | L. Polymorphism | L06_method_overloading.py |
| 142 | Use the super() function in the derived class constructor (__init__) to call the parent class constructor. |
L. Inheritance | L07_super_function.py |
| 143 | Implement an Abstract Base Class (ABC) (Shape) that defines an abstract method (area()) which must be implemented by subclasses. |
L. Abstraction | L08_abstract_class.py |
| 144 | Demonstrate Data Hiding/Encapsulation using single (_variable) and double (__variable) leading underscores. |
L. Encapsulation | L09_data_encapsulation.py |
| 145 | Create a Mixin Class (LoggableMixin) to add reusable logging functionality to multiple, unrelated classes. |
L. OOP Advanced | L10_mixin_class.py |
| 146 | Implement a basic Adapter Design Pattern where an existing class's interface is converted to another one expected by a client. | L. OOP Design | L11_adapter_pattern.py |
Focus: Fundamental list operations and search algorithms.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 147 | Input |
M. List Basics | M01_list_linear_search.py |
| 148 | Input |
M. List Basics | M02_list_sum_avg.py |
| 149 | Find the Largest (Maximum) and Smallest (Minimum) value from a list of |
M. List Basics | M03_list_max_min.py |
| 150 | Count how many elements in a list are positive, negative, even, and odd. | M. List Logic | M04_list_count_stats.py |
| 151 | Copy the elements of one list into a new list. (Shallow vs. Deep copy explanation in comments). | M. List Ops | M05_list_copy_elements.py |
| 152 | Arrange the elements of a list in reverse order (without using list.reverse() or slicing). |
M. List Ops | M06_list_reverse_manual.py |
| 153 | Insert an element into the list at a user-defined position (index). | M. List Ops | M07_list_insert_at_pos.py |
| 154 | Delete an element from the list at a user-defined position (index). | M. List Ops | M08_list_delete_at_pos.py |
| 155 |
Merge two lists ( |
M. List Ops | M09_list_merge_two.py |
| 156 | Perform vector addition on two lists of equal size |
M. List Ops | M10_list_vector_add.py |
| 157 | Implement the Binary Search algorithm without using recursion. | M. Search | M11_binary_search_iter.py |
| 158 | Implement the Binary Search algorithm using recursion. | M. Search | M12_binary_search_rec.py |
Focus: Representing and manipulating 2D data structures.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 159 | Create and print a simple |
N. Matrix Basics | N01_matrix_3x3_print.py |
| 160 |
Add two matrices (of the same dimensions, e.g., |
N. Matrix Ops | N02_matrix_add.py |
| 161 | Subtract two matrices (of the same dimensions). | N. Matrix Ops | N03_matrix_subtract.py |
| 162 |
Multiply two matrices ( |
N. Matrix Ops | N04_matrix_multiply.py |
| 163 | Find the Transpose of a given matrix. | N. Matrix Ops | N05_matrix_transpose.py |
| 164 | Calculate the Sum of all elements in a matrix. | N. Matrix Ops | N06_matrix_sum_elements.py |
| 165 | Calculate the Sum of elements along the main diagonal of a square matrix. | N. Matrix Ops | N07_matrix_diag_sum.py |
| 166 | Create a function to initialize a matrix with random values. | N. Matrix Utility | N08_matrix_random_init.py |
| 167 | Multiply two matrices using list comprehensions for a more concise solution. | N. Matrix Comp | N09_matrix_multiply_comp.py |
| 168 | Matrix Rotation: Rotate a square matrix 90 degrees clockwise in place. | N. Matrix Advanced | N10_matrix_rotate_90.py |
| 169 | Saddle Point: Find a Saddle Point in a matrix (an element that is the minimum in its row and maximum in its column). | N. Matrix Advanced | N11_matrix_saddle_point.py |
Focus: Implementing classic sorting techniques from scratch.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 170 | Implement Bubble Sort to arrange a list in ascending order. | O. Sorting | O01_sort_bubble_asc.py |
| 171 | Implement Bubble Sort to arrange a list in descending order. | O. Sorting | O02_sort_bubble_desc.py |
| 172 | Implement Selection Sort to arrange a list in ascending order. | O. Sorting | O03_sort_selection.py |
| 173 | Implement Insertion Sort to arrange a list in ascending order. | O. Sorting | O04_sort_insertion.py |
| 174 | Implement Quick Sort (choose pivot, partition, recurse) to arrange a list in ascending order. | O. Sorting | O05_sort_quick.py |
| 175 | Implement Merge Sort (divide and conquer) to arrange a list in ascending order. | O. Sorting | O06_sort_merge.py |
| 176 | Implement Shell Sort to arrange a list in ascending order. | O. Sorting | O07_sort_shell.py |
| 177 | Sort a list of strings in descending order (lexicographically). | O. Sorting | O08_sort_strings_desc.py |
| 178 | Counting Sort: Implement a basic counting sort algorithm for a list of small positive integers. | O. Sorting | O09_sort_counting.py |
| 179 | Radix Sort: Implement Radix Sort for sorting a list of integers. | O. Sorting | O10_sort_radix.py |
| 180 | Sort Objects: Sort a list of custom objects (e.g., Employee objects) based on an attribute (e.g., salary) using the key argument. |
O. Sorting | O11_sort_objects_key.py |
Focus: LIFO principle and classic Stack applications.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 181 | Implement a Stack using a Python list with basic push, pop, and display operations. |
P. Stack | P01_stack_basic_list.py |
| 182 | Add peek (view top element without removal) and is_empty methods to the Stack implementation. |
P. Stack | P02_stack_peek_empty.py |
| 183 | Write a program to reverse a string using a Stack data structure. | P. Stack App | P03_stack_reverse_string.py |
| 184 | Use a Stack to check if a sequence of parentheses/brackets is Balanced. (Revisiting I10 with Stack implementation). | P. Stack App | P04_stack_balanced_brackets.py |
| 185 | Calculate the Factorial of a number using the Stack concept (simulating recursion/call stack). | P. Stack App | P05_stack_factorial.py |
| 186 | Calculate the Power of a Number ( |
P. Stack App | P06_stack_power_of_num.py |
| 187 | Convert an Infix expression to a Postfix expression using a Stack. | P. Stack Adv | P07_stack_infix_to_postfix.py |
| 188 | Evaluate a Postfix expression using a Stack. | P. Stack Adv | P08_stack_evaluate_postfix.py |
| 189 | Find the Next Greater Element for every element in a list using a Stack. | P. Stack Adv | P09_stack_next_greater.py |
| 190 | Implement a Stack that supports push, pop, and also a method getMin() that returns the minimum element in |
P. Stack Adv | P10_stack_get_min_O1.py |
| 191 | Implement a Stack using the collections.deque module for faster append/pop operations. |
P. Stack Impl | P11_stack_deque.py |
| 192 | Implement a Limited-Size Stack that raises an exception when trying to push onto a full stack. | P. Stack Impl | P12_stack_limited_size.py |
Focus: FIFO principle, deque, and advanced Queue types.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 193 | Implement a simple Queue using a Python list with insert (enqueue) and delete (dequeue) operations. |
Q. Queue | Q01_queue_basic_list.py |
| 194 | Implement a Queue using the collections.deque for efficient FIFO operations. |
Q. Queue Impl | Q02_queue_deque.py |
| 195 | Implement a Simple Queue using a Python class structure with methods: insert(), delete(), display(), and is_empty(). |
Q. Queue | Q03_queue_class.py |
| 196 | Implement a Circular Queue using a list and indices to handle wraparound. | Q. Queue Adv | Q04_queue_circular.py |
| 197 | Implement a Priority Queue using the heapq module. Insert elements with priorities and extract the highest priority element. |
Q. Queue Adv | Q05_queue_priority_heapq.py |
| 198 | Use a Queue to perform Breadth-First Search (BFS) on a simple mock graph (adjacency list). | Q. Queue App | Q06_queue_bfs_mock.py |
| 199 | Implement a Double-Ended Queue (Deque) using collections.deque and demonstrate adding/removing from both ends. |
Q. Queue Adv | Q07_queue_deque_all_ops.py |
| 200 | Queue from Stacks: Implement a Queue data structure using two Stacks. | Q. Queue Impl | Q08_queue_from_stacks.py |
| 201 | Circular Tour Problem: Given a list of petrol pumps, find the starting point of a circular tour using a Queue/loop. | Q. Queue Adv | Q09_queue_circular_tour.py |
| 202 | First Non-Repeating Character in a Stream: Use a Queue to efficiently find the first non-repeating character in a mock stream of characters. | Q. Queue Adv | Q10_queue_first_non_repeat.py |
| 203 | Use the multiprocessing.Queue to demonstrate safe inter-process communication between a producer and a consumer function. |
Q. Queue Adv | Q11_queue_multiprocessing.py |
Focus: Node structures, traversal, and core list manipulations.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 204 | Define a Node class and a basic SinglyLinkedList class to create and display a linked list. |
R. SLL Basics | R01_sll_create_display.py |
| 205 | Implement insertion at the beginning (insert_at_start) of the Singly Linked List. |
R. SLL Ops | R02_sll_insert_start.py |
| 206 | Implement insertion at the end (insert_at_end) of the Singly Linked List. |
R. SLL Ops | R03_sll_insert_end.py |
| 207 | Implement insertion after a specific node (insert_after_node). |
R. SLL Ops | R04_sll_insert_after.py |
| 208 | Implement deletion of the first node (delete_start). |
R. SLL Ops | R05_sll_delete_start.py |
| 209 | Implement deletion of the last node (delete_end). |
R. SLL Ops | R06_sll_delete_end.py |
| 210 | Implement deletion of a node by value (delete_by_value). |
R. SLL Ops | R07_sll_delete_by_value.py |
| 211 | Count the number of nodes available in the linked list. | R. SLL Utility | R08_sll_count_nodes.py |
| 212 | Reverse the Singly Linked List (iterative approach). | R. SLL Adv | R09_sll_reverse.py |
| 213 | Find the Middle Node of the linked list in a single pass. | R. SLL Adv | R10_sll_find_middle.py |
| 214 | Detect if the linked list contains a Cycle (loop) using Floyd's Tortoise and Hare algorithm. | R. SLL Adv | R11_sll_detect_cycle.py |
| 215 | Given two non-empty linked lists representing two non-negative integers (digits stored in reverse order), add the two numbers and return the sum as a new linked list. | R. SLL Leet | R12_sll_add_two_numbers.py |
Focus: Two-way traversal and circular connections.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 216 | Define a DoublyNode class and a basic DoublyLinkedList class to create and display a Doubly Linked List (DLL). |
S. DLL Basics | S01_dll_create_display.py |
| 217 | Implement insertion at the beginning (insert_at_start) of the DLL. |
S. DLL Ops | S02_dll_insert_start.py |
| 218 | Implement insertion at the end (insert_at_end) of the DLL. |
S. DLL Ops | S03_dll_insert_end.py |
| 219 | Implement insertion before a specific node (insert_before_node) in the DLL. |
S. DLL Ops | S04_dll_insert_before.py |
| 220 | Implement deletion of a node by value in the DLL. | S. DLL Ops | S05_dll_delete_by_value.py |
| 221 | Define a CircularSinglyLinkedList (CSLL) to create and display a circular linked list. |
S. CLL Basics | S06_csll_create_display.py |
| 222 | Implement insertion at the beginning of the CSLL. | S. CLL Ops | S07_csll_insert_start.py |
| 223 | Implement insertion at the end of the CSLL. | S. CLL Ops | S08_csll_insert_end.py |
| 224 | Implement insertion after a specific node in the CSLL. | S. CLL Ops | S09_csll_insert_after.py |
| 225 | Implement deletion of a node by value in the CSLL. | S. CLL Ops | S10_csll_delete_by_value.py |
| 226 | Traverse the DLL in reverse order starting from the tail node. | S. DLL Utility | S11_dll_reverse_traverse.py |
Focus: Binary Tree structure and various traversal algorithms.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 227 | Define a Node class and a basic BinaryTree class to create a simple binary tree. |
T. Tree Basics | T01_tree_create_basic.py |
| 228 | Implement In-order Traversal (Left |
T. Tree Traversal | T02_tree_traverse_inorder.py |
| 229 | Implement Pre-order Traversal (Root |
T. Tree Traversal | T03_tree_traverse_preorder.py |
| 230 | Implement Post-order Traversal (Left |
T. Tree Traversal | T04_tree_traverse_postorder.py |
| 231 | Implement Level-order Traversal (Breadth-First) on a Binary Tree using a Queue. | T. Tree Traversal | T05_tree_traverse_level.py |
| 232 | Implement the insertion of a node into a Binary Search Tree (BST). | T. BST Ops | T06_bst_insert_node.py |
| 233 | Implement the search for a specific value in a BST. | T. BST Ops | T07_bst_search_value.py |
| 234 | Implement the calculation of the Height of the Tree (maximum depth). | T. Tree Utility | T08_tree_calculate_height.py |
| 235 | Implement the calculation of the Total Number of Nodes in the Tree. | T. Tree Utility | T09_tree_count_nodes.py |
| 236 | Implement the deletion of a node from a BST, handling 0, 1, and 2 children cases. | T. BST Adv | T10_bst_delete_node.py |
| 237 | Check if a given Binary Tree is a valid Binary Search Tree (BST). | T. Tree Adv | T11_tree_is_bst.py |
Focus: Fundamental mathematical algorithms and classic coding problems.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 238 | Find the Greatest Common Divisor (GCD) of two numbers using the Euclidean algorithm (recursive). | U. Math | U01_math_gcd_recursive.py |
| 239 | Find the Greatest Common Divisor (GCD) of two numbers using an iterative approach. | U. Math | U02_math_gcd_iterative.py |
| 240 | Find the Least Common Multiple (LCM) of two numbers. | U. Math | U03_math_lcm.py |
| 241 | Find the Smallest Common Divisor (SCD) for a given number (this is essentially the smallest prime factor, or 1 if prime). | U. Math | U04_math_smallest_divisor.py |
| 242 | Check if a given number is a Perfect Number (sum of its proper positive divisors is equal to the number itself). | U. Math | U05_math_perfect_number.py |
| 243 | Find the Missing Number in a sequence of [1, 2, 4, 5], find 3). |
U. Algo | U06_algo_missing_number.py |
| 244 | Find the Kth Largest Element in a list (without sorting the entire list). | U. Algo | U07_algo_kth_largest.py |
| 245 | Find the Majority Element in a list (the one that appears more than |
U. Algo | U08_algo_majority_element.py |
| 246 | Implement Climbing Stairs: Given |
U. Algo | U09_algo_climbing_stairs.py |
| 247 | Implement the Coin Change Problem: Given a set of coin denominations and a total amount, find the minimum number of coins needed to make up that amount (Dynamic Programming approach). | U. Algo Adv | U10_algo_coin_change.py |
| 248 | Container With Most Water: Find two lines in a list that, along with the x-axis, form a container that holds the most water. | U. Algo Adv | U11_algo_container_water.py |
Focus: Recursive thinking and exploration algorithms.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 249 | Find the maximum and minimum number from a list using recursion. | V. Recursion | V01_rec_max_min_list.py |
| 250 | Calculate the power of a number ( |
V. Recursion | V02_rec_power_of_num.py |
| 251 | Reverse a given integer using recursion (digit manipulation). | V. Recursion | V03_rec_reverse_integer.py |
| 252 | Reverse a string using recursion. | V. Recursion | V04_rec_reverse_string.py |
| 253 | Check for Palindrome (string) using recursion. | V. Recursion | V05_rec_palindrome_check.py |
| 254 | Generate All Permutations of a list of unique numbers using backtracking. | V. Backtracking | V06_back_generate_permutations.py |
| 255 | Generate All Subsets (Power Set) of a list of numbers using backtracking. | V. Backtracking | V07_back_generate_subsets.py |
| 256 | Implement the N-Queens Problem using backtracking to find all safe placements of |
V. Backtracking | V08_back_n_queens.py |
| 257 | Implement a basic Sudoku Solver using backtracking. | V. Backtracking | V09_back_sudoku_solver.py |
| 258 | Letter Combinations of a Phone Number: Given a string containing digits from 2-9, return all possible letter combinations that the number could represent. | V. Backtracking | V10_back_phone_combinations.py |
| 259 | Implement Depth-First Search (DFS) traversal on a simple graph using recursion. | V. Recursion App | V11_rec_dfs_mock.py |
Focus: Applying basic logic to build fun, interactive terminal applications.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 260 | Band Name Generator: CLI script that asks for a city name and a pet name, then combines them to suggest a band name. | W. CLI Project | W01_cli_band_name_gen.py |
| 261 | Tip Calculator: CLI script that takes total bill, tip percentage, and number of people, then calculates how much each person pays. | W. CLI Project | W02_cli_tip_calculator.py |
| 262 | Rock, Paper, Scissors: A CLI game where the user plays against the computer. | W. CLI Game | W03_cli_rock_paper_scissors.py |
| 263 | Treasure Island - Choose Your Own Adventure: A simple interactive story game using conditional logic and user input. | W. CLI Game | W04_cli_treasure_island.py |
| 264 | PyPassword Generator: CLI script that generates a random, strong password based on user-specified length and inclusion of letters, symbols, and numbers. | W. CLI Project | W05_cli_password_generator.py |
| 265 | Number Guessing Game: CLI game where the computer selects a random number and the user has limited attempts to guess it. | W. CLI Game | W06_cli_number_guesser.py |
| 266 | Blackjack (Simplified): A text-based, simplified version of the card game Blackjack. | W. CLI Game | W07_cli_blackjack_simple.py |
| 267 | Higher Lower Game: CLI game where the user guesses which of two entities has a higher attribute (e.g., follower count). | W. CLI Game | W08_cli_higher_lower.py |
| 268 | Text-Based Tic Tac Toe: A simple 3x3 grid game played between two human players in the terminal. | W. CLI Game | W09_cli_tictactoe.py |
| 269 | Secret Auction: CLI script that uses a dictionary to track bids and finds the highest bidder (blind auction). | W. CLI Project | W10_cli_secret_auction.py |
| 270 | Text to Morse Code Converter: A script that takes a string input and converts it to Morse code using a dictionary lookup. | W. CLI Project | W11_cli_morse_converter.py |
Focus: Building utility scripts and refactoring with OOP principles.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 271 | Calculator (Advanced CLI): A script that implements recursive calculation capabilities (allows continuous operations). | X. CLI App | X01_cli_calculator_adv.py |
| 272 | The Coffee Machine (CLI): A simulation of a coffee machine that manages resources (water, milk, coffee) and handles transactions. | X. CLI App | X02_cli_coffee_machine.py |
| 273 | OOP Version of the Coffee Machine: Reimplement the coffee machine using Classes and Objects for better structure and state management. | X. OOP App | X03_oop_coffee_machine.py |
| 274 | The Quiz Game (CLI/OOP): An OOP-based true/false quiz game that loads questions from a list and tracks the user's score. | X. OOP App | X04_oop_quiz_game.py |
| 275 | Disappearing Text Writing App (CLI concept): A function that starts a timer; if the user stops typing for 5 seconds, all current text is cleared. | X. CLI App | X05_cli_disappearing_text.py |
| 276 | Automated Folder Backup (Basic os): A script using the os module to copy a source directory's files to a destination directory. |
X. System Tool | X06_tool_folder_backup.py |
| 277 | System Monitoring Mock: A script that periodically checks mock server health statuses (OK/Error) and logs the output. | X. System Tool | X07_tool_system_monitor_mock.py |
| 278 | Cleaning Up Old Log Files: A script using the os and datetime modules to delete files in a specified directory that are older than 30 days. |
X. System Tool | X08_tool_clean_old_logs.py |
| 279 | Automating Git Status Check: A script that iterates through a list of directories and uses the subprocess module to run git status in each. |
X. System Tool | X09_tool_git_status.py |
| 280 | Validate YAML/JSON Configuration: A script that uses the json module to load and validate the syntax of a given JSON file. |
X. System Tool | X10_tool_validate_json.py |
| 281 | Calculate File Checksum (SHA-256): A script using the hashlib module to calculate and print the SHA-256 hash of a specified file. |
X. System Tool | X11_tool_file_checksum.py |
Focus: Building desktop apps with simple graphical user interfaces.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 282 | Mile to Kilometer Converter: A simple Tkinter GUI with an input box, a button, and a label to perform the conversion. | Y. Tkinter GUI | Y01_tk_mile_to_km_converter.py |
| 283 | Simple GUI Window: Create a basic Tkinter window with a title, size, and a central label. | Y. Tkinter GUI | Y02_tk_basic_window.py |
| 284 | Button and Event Handling: Create a button that changes a label's text when clicked. | Y. Tkinter GUI | Y03_tk_button_event.py |
| 285 | Input/Entry Widget: Create a Tkinter entry field and retrieve the text entered by the user. | Y. Tkinter GUI | Y04_tk_entry_input.py |
| 286 | Grid Layout Manager: Arrange widgets (labels, buttons, inputs) in a responsive grid structure. | Y. Tkinter GUI | Y05_tk_grid_layout.py |
| 287 | Pomodoro Timer (Basic): A Tkinter app with a Start/Stop button and a timer display (no breaks yet). | Y. Tkinter Project | Y06_tk_pomodoro_basic.py |
| 288 | Pomodoro Timer (Advanced): Add functionality for Work, Short Break, and Long Break periods. | Y. Tkinter Project | Y07_tk_pomodoro_adv.py |
| 289 | Password Manager (Data Entry): Tkinter app that collects website, email, and password, and prints the data to the console. | Y. Tkinter Project | Y08_tk_password_manager_entry.py |
| 290 | Password Manager (JSON Storage): Update the manager to save credentials securely to a JSON file. | Y. Tkinter Project | Y09_tk_password_manager_json.py |
| 291 | Password Manager (Search): Add a search button to retrieve and display credentials for a given website from the JSON file. | Y. Tkinter Project | Y10_tk_password_manager_search.py |
| 292 | Flash Card App (GUI Logic): Tkinter app that displays a word on the front, flips to show the translation after a delay, and presents the next card. | Y. Tkinter Project | Y11_tk_flash_card_logic.py |
| 293 | Image Watermarking App (Basic): Tkinter app that allows a user to upload an image and add a simple text watermark to it. | Y. Tkinter Project | Y12_tk_image_watermarker.py |
Focus: Using the Turtle library for drawing, animations, and game development.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 294 | Basic Turtle Drawing: Create a turtle window and draw a simple square shape. | Z. Turtle Graphics | Z01_turtle_draw_square.py |
| 295 | Drawing Dashed Line: Use the penup() and pendown() methods to draw a dashed line. |
Z. Turtle Graphics | Z02_turtle_dashed_line.py |
| 296 | Drawing Geometric Shapes: Use a loop to draw an equilateral triangle, square, pentagon, hexagon, etc., up to a decagon. | Z. Turtle Graphics | Z03_turtle_geometric_shapes.py |
| 297 | Random Walk: Make the turtle move in random directions and draw with random colors. | Z. Turtle Graphics | Z04_turtle_random_walk.py |
| 298 | Spirograph/Hirst Painting: Draw a series of interlocking circles with varying colors to create a complex pattern (like a Hirst spot painting). | Z. Turtle Graphics | Z05_turtle_spirograph.py |
| 299 | Turtle Racing Game (Setup): Create multiple turtle objects, assign them random colors, and set them up at a starting line. | Z. Turtle Project | Z06_turtle_race_setup.py |
| 300 | Turtle Racing Game (Logic): Implement the race logic where each turtle moves a random distance per turn, and declare the winner. | Z. Turtle Project | Z07_turtle_race_logic.py |
| 301 | Snake Game (Part 1 - Head & Movement): Create the snake's head and implement basic forward movement and turning controls (keyboard input). | Z. Turtle Project | Z08_turtle_snake_part1.py |
| 302 | Snake Game (Part 2 - Body & Food): Add the body segments, segment following logic, and create food that the snake can consume. | Z. Turtle Project | Z09_turtle_snake_part2.py |
| 303 | Pong Game (Setup): Create the screen, paddles, ball, and scoreboards. | Z. Turtle Project | Z10_turtle_pong_setup.py |
| 304 | Pong Game (Physics): Implement ball movement, wall collision detection, and paddle collision detection. | Z. Turtle Project | Z11_turtle_pong_physics.py |
Focus: Handling structured data using the csv module and introducing pandas.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 305 | Reading a CSV File: Use Python's built-in csv module to read data from a CSV file. |
AA. CSV | AA01_csv_read_basic.py |
| 306 | Reading CSV with pandas: Use the pandas library to read and display the head of a CSV file (e.g., weather data). |
AA. Pandas | AA02_pd_read_csv.py |
| 307 | Data Series Access: Using Pandas, access and print a single column (Series) from the loaded data. | AA. Pandas | AA03_pd_access_series.py |
| 308 | Data Filtering: Use Pandas to filter the DataFrame based on a condition (e.g., all rows where temperature is above 20 degrees). | AA. Pandas | AA04_pd_filter_data.py |
| 309 | Data Conversion: Use Pandas to calculate the mean (average) of a numeric column. | AA. Pandas | AA05_pd_calculate_mean.py |
| 310 | Creating a DataFrame: Create a Pandas DataFrame from a Python dictionary and save it to a new CSV file. | AA. Pandas | AA06_pd_create_save_csv.py |
| 311 | US States Game (Data Prep): Load the US states CSV and create a dictionary mapping state names to their coordinates. | AA. Project | AA07_us_states_data_prep.py |
| 312 | US States Game (Turtle Integration): Use the Turtle library to display the map image and place the user's correct guess name at the correct coordinate. | AA. Project | AA08_us_states_turtle_draw.py |
| 313 | NATO Phonetic Alphabet Generator (Setup): Load a CSV file containing letter-to-code mapping and create a dictionary from it. | AA. Project | AA09_nato_data_load.py |
| 314 | NATO Phonetic Alphabet Generator (Logic): Take a word input from the user and convert it into a list of NATO phonetic codes (e.g., "W-H-I-S-K-E-Y"). | AA. Project | AA10_nato_generator.py |
| 315 | Error Handling in Pandas: Use try...except to handle a KeyError when trying to access a non-existent column in a DataFrame. |
AA. Pandas | AA11_pd_except_keyerror.py |
Focus: Networking, sending emails (smtplib), and making HTTP requests (requests).
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 316 | Basic Email Sending (smtplib): Use smtplib to connect to an SMTP server (e.g., Gmail) and send a simple plain-text email. |
BB. Networking | BB01_smtp_send_basic_email.py |
| 317 | Automated Birthday Wisher (Data Load): Use Pandas to load a CSV of names and birthdays. | BB. Email App | BB02_bday_wisher_data.py |
| 318 | Automated Birthday Wisher (Logic): Check if today matches any birthday in the data and send a personalized email using a random quote/template. | BB. Email App | BB03_bday_wisher_logic.py |
| 319 | Basic GET Request (requests): Use the requests library to make a simple GET request to a public API (e.g., JSON Placeholder) and print the status code and text. |
BB. Requests | BB04_req_basic_get.py |
| 320 | ISS Overhead Notifier (API Call): Query the ISS position API to get the current location and next overhead time for a given latitude/longitude. | BB. Requests App | BB05_req_iss_api.py |
| 321 | ISS Overhead Notifier (Full App): Combine the API call with smtplib to send an email notification when the ISS is overhead and it is dark outside. |
BB. Requests App | BB06_req_iss_notifier.py |
| 322 | Quizzler App (API Fetch): Use requests to fetch 10 random True/False questions from the Open Trivia Database API. |
BB. Requests App | BB07_req_trivia_fetch.py |
| 323 | Rain Alert App (One Call API): Use a weather API (mock) to check the forecast for the next 12 hours. | BB. Requests App | BB08_req_weather_api.py |
| 324 | Rain Alert App (Twilio SMS Mock): If rain is predicted, use Twilio (mock) to send an SMS alert (or print the message to console). | BB. Requests App | BB09_req_twilio_mock.py |
| 325 | Checking the Health of a Web Service: Use requests to make a GET request and check if the HTTP status code is 200 (OK). |
BB. DevOps | BB10_req_check_service_health.py |
| 326 | Automating GitHub: Creating a New Repository (Mock): Simulate a POST request to the GitHub API to create a new repo. | BB. Requests Adv | BB11_req_github_mock_post.py |
| 327 | Sending Notifications to Slack via Webhooks (Mock): Use requests to send a formatted JSON payload to a mock Slack webhook URL. |
BB. DevOps | BB12_req_slack_webhook.py |
Focus: Parsing HTML content to extract meaningful data.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 328 | Basic HTML Parsing (bs4): Use BeautifulSoup to parse a local HTML file (mock content) and print the title tag. |
CC. Web Scraping | CC01_bs4_basic_parse.py |
| 329 | Find Element by Tag: Use find() to locate and print the content of the first <p> tag in a mock HTML page. |
CC. Web Scraping | CC02_bs4_find_tag.py |
| 330 | Find All Elements: Use find_all() to extract all anchor tags (<a>) and print their text content and href attributes. |
CC. Web Scraping | CC03_bs4_find_all_links.py |
| 331 | Find Element by Class/ID: Use selectors to find an element with a specific CSS class or ID. | CC. Web Scraping | CC04_bs4_find_by_selector.py |
| 332 | CSS Selector (Advanced): Use the select() method to find all elements matching a complex CSS selector (e.g., div > p.highlight). |
CC. Web Scraping | CC05_bs4_css_selector.py |
| 333 | Top 100 Movies Scraper (Data Fetch): Use requests to fetch the HTML content of a public list of top 100 movies. |
CC. Project | CC06_bs4_movies_fetch.py |
| 334 | Top 100 Movies Scraper (Data Extract): Use BeautifulSoup to extract the title and year of all 100 movies. |
CC. Project | CC07_bs4_movies_extract.py |
| 335 | Amazon Price Tracker (Setup): Scrape the current price of a single product page (mock data) and convert the string price to a float. | CC. Project | CC08_bs4_price_tracker_extract.py |
| 336 | Amazon Price Tracker (Alert Logic): If the scraped price is below a target price, send an email alert using smtplib (mock). |
CC. Project | CC09_bs4_price_tracker_alert.py |
| 337 | Extracting Table Data: Scrape a mock HTML table and extract the content row by row into a list of lists. | CC. Web Scraping | CC10_bs4_extract_table.py |
| 338 | Handling Empty/Missing Tags: Implement robust error handling (e.g., checking if the result of find() is None) when scraping elements that might not exist. |
CC. Web Scraping | CC11_bs4_robust_handling.py |
Focus: Automating browser interaction for complex tasks.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 339 | Basic WebDriver Setup: Set up the Selenium WebDriver (mocking the driver manager) and open a website (e.g., Python.org). | DD. Selenium | DD01_selenium_basic_setup.py |
| 340 | Find Element by ID: Use find_element(By.ID, ...) to locate and print the text of an element on a mock page. |
DD. Selenium | DD02_selenium_find_by_id.py |
| 341 | Find Element by CSS Selector: Use find_element(By.CSS_SELECTOR, ...) to locate an element using a CSS selector path. |
DD. Selenium | DD03_selenium_find_by_css.py |
| 342 | Find Elements by XPath: Use find_elements(By.XPATH, ...) to locate multiple elements using an XPath expression. |
DD. Selenium | DD04_selenium_find_by_xpath.py |
| 343 | Clicking and Interacting: Navigate to a mock login page, find the login button, and click it. | DD. Selenium | DD05_selenium_click_button.py |
| 344 | Form Submission: Locate a search bar/input field, type text into it (send_keys), and submit the form. |
DD. Selenium | DD06_selenium_form_submit.py |
| 345 | Automated Gym Booking Bot (Mock Login): Simulate the process of logging into a system with credentials. | DD. Project | DD07_selenium_gym_login_mock.py |
| 346 | Automated Gym Booking Bot (Booking Logic): After logging in, navigate to a booking calendar and click a specific time slot button. | DD. Project | DD08_selenium_gym_booking_logic.py |
| 347 | Auto Tinder Swiping Bot (Mock): Simulate finding and clicking the 'like' or 'dislike' buttons repeatedly. | DD. Project | DD09_selenium_tinder_swipe.py |
| 348 | Automated Internet Speed Complaint Bot: Log in to a speed test site, find the current speeds, and fill out a complaint form if speeds are too low. | DD. Project | DD10_selenium_speed_complaint.py |
| 349 | Automating the Google Dinosaur Game: Use Selenium to detect obstacles and send a jump command (spacebar). |
DD. Project | DD11_selenium_dino_bot.py |
| 350 | Handling Waits: Use Explicit Waits (WebDriverWait) to wait for a specific element to be clickable or visible before interacting with it. |
DD. Selenium Adv | DD12_selenium_explicit_wait.py |
Focus: Building small web applications and understanding routing and templates.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 351 | First Flask Server: Create a minimal Flask application that runs on localhost:5000 and returns a simple "Hello World!" string. |
EE. Flask Basics | EE01_flask_hello_world.py |
| 352 | Basic HTML Response: Modify the Flask route to return a full HTML page (basic structure with a header). | EE. Flask Basics | EE02_flask_html_response.py |
| 353 | URL Variables: Create a route that takes a variable (e.g., name) from the URL path (/user/<name>) and prints it on the page. |
EE. Flask Basics | EE03_flask_url_variable.py |
| 354 | HTML Templating (render_template): Use the render_template function to display a separate HTML template file (mocking Jinja). |
EE. Flask Templating | EE04_flask_render_template.py |
| 355 | Higher or Lower Web Game (Setup): Flask app that randomly generates a number (0-9) when the route is accessed. | EE. Flask Project | EE05_flask_high_low_setup.py |
| 356 | Higher or Lower Web Game (Logic): Add logic to the route to accept a user guess from the URL and compare it to the random number, providing feedback. | EE. Flask Project | EE06_flask_high_low_logic.py |
| 357 | Digital Name Card: A Flask route that renders a detailed HTML template to serve as a digital business card. | EE. Flask Project | EE07_flask_name_card.py |
| 358 | Handling POST Requests: Create a route that can handle a submitted HTML form using the request.form object. |
EE. Flask Forms | EE08_flask_handle_post.py |
| 359 | A Templated Blog (Data): Create a Flask app that reads mock blog post data from a Python list of dictionaries and passes it to the template. | EE. Flask Project | EE09_flask_templated_blog.py |
| 360 | Functional Blog Contact Form: Create a Flask route that validates form data and "sends" a mock email when the contact form is submitted. | EE. Flask Forms | EE10_flask_contact_form.py |
| 361 | Error Handling (404): Implement a custom error handler for the HTTP 404 (Not Found) status code. | EE. Flask Adv | EE11_flask_error_handler.py |
Focus: Implementing CRUD operations and user authentication with Flask extensions.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 362 | Virtual Bookshelf (Setup - Flask-SQLAlchemy): Configure Flask-SQLAlchemy and define a simple Book model with id and title. |
FF. Flask DB | FF01_flask_db_setup.py |
| 363 | Create/Read (CRUD - Add): Implement a route to Add (Create) a new book entry to the SQLite database. | FF. Flask DB | FF02_flask_db_crud_create.py |
| 364 | Create/Read (CRUD - View): Implement a route to View (Read) all books from the database. | FF. Flask DB | FF03_flask_db_crud_read.py |
| 365 | Update (CRUD - Edit): Implement a route to Edit (Update) the title of an existing book by its ID. | FF. Flask DB | FF04_flask_db_crud_update.py |
| 366 | Delete (CRUD - Remove): Implement a route to Delete a book entry by its ID. | FF. Flask DB | FF05_flask_db_crud_delete.py |
| 367 | Top Movies Website (Full CRUD): Design a single-page Flask app with a form and list to manage a list of favorite movies. | FF. Flask Project | FF06_flask_crud_movies.py |
| 368 | Cafe & Wifi API (Setup): Flask app that returns a simple list of mock cafes as JSON data when accessing a /all route. |
FF. Flask API | FF07_flask_api_read.py |
| 369 | Cafe & Wifi API (Search): Implement a /search route that accepts a query parameter (e.g., location) and returns matching cafe data. |
FF. Flask API | FF08_flask_api_search.py |
| 370 | Authentication with Flask-Login (Setup): Configure Flask-Login and create a simple User class for basic user management. |
FF. Flask Auth | FF09_flask_auth_setup.py |
| 371 | Authentication with Flask-Login (Login/Logout): Implement /login and /logout routes using Flask-Login functions. |
FF. Flask Auth | FF10_flask_auth_login.py |
| 372 | Authentication with Flask-Login (@login_required): Protect a sensitive route using the @login_required decorator. |
FF. Flask Auth | FF11_flask_auth_protect.py |
Focus: Manipulating structured data and visualizing results.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 373 | Pandas Basics: Create a DataFrame from a dictionary and inspect its column data types (.dtypes). |
GG. Pandas Basics | GG01_pd_create_and_inspect.py |
| 374 | Data Cleaning: Handle Missing Data (NaN values) by dropping rows with dropna() or filling them with fillna(). |
GG. Data Prep | GG02_pd_handle_missing_data.py |
| 375 | Data Aggregation: Use .groupby() to group data by a category column and calculate the sum of another column for each group. |
GG. Data Analysis | GG03_pd_groupby_aggregate.py |
| 376 | Merging DataFrames: Merge two DataFrames based on a common key (e.g., merging student records with grades). | GG. Data Analysis | GG04_pd_merge_dataframes.py |
| 377 | Time-Series Data: Load time-series data and convert a date column to the proper datetime format. | GG. Time Series | GG05_pd_time_series_prep.py |
| 378 | Basic Line Plot (Matplotlib): Create a simple line plot to visualize a single column of data over time. |
GG. Visualization | GG06_plt_basic_line_plot.py |
| 379 | Bar Chart: Create a bar chart using Matplotlib to visualize the counts of categorical data. | GG. Visualization | GG07_plt_basic_bar_chart.py |
| 380 | Scatter Plot: Create a scatter plot to visualize the relationship between two numeric variables. | GG. Visualization | GG08_plt_basic_scatter.py |
| 381 | LEGO Dataset Analysis (Count): Load a mock LEGO dataset and find the total number of themes and sets. | GG. Project | GG09_pd_lego_count.py |
| 382 | LEGO Dataset Analysis (By Year): Use Pandas to count the number of LEGO sets released each year and plot it. | GG. Project | GG10_pd_lego_sets_by_year.py |
| 383 | Noble Prize Winners Analysis (Gender): Load a mock Nobel Prize dataset and find the percentage of male vs. female winners. | GG. Project | GG11_pd_nobel_gender.py |
| 384 | Noble Prize Winners Analysis (By Age): Calculate the average age of Nobel winners by filtering and aggregation. | GG. Project | GG12_pd_nobel_avg_age.py |
Focus: Numerical computing fundamentals and introduction to Machine Learning models.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 385 | NumPy Array Creation: Create a 1D, 2D, and 3D NumPy array and print their shapes. | HH. NumPy | HH01_np_array_creation.py |
| 386 | NumPy Arithmetic: Perform basic element-wise arithmetic (addition, multiplication) on two NumPy arrays. | HH. NumPy | HH02_np_arithmetic.py |
| 387 | NumPy Indexing/Slicing: Demonstrate advanced indexing and slicing (e.g., selecting all rows where a condition is met). | HH. NumPy | HH03_np_indexing_slicing.py |
| 388 |
NumPy Linear Algebra: Perform matrix multiplication (np.dot) on two NumPy 2D arrays. |
HH. NumPy Adv | HH04_np_matrix_mult.py |
| 389 | NumPy Broadcasting: Demonstrate how broadcasting works when adding a scalar to a 2D array. | HH. NumPy Adv | HH05_np_broadcasting.py |
| 390 |
Simple Linear Regression (Data Prep): Use NumPy to create mock data ( |
HH. ML Prep | HH06_ml_linear_prep.py |
| 391 |
Simple Linear Regression (Manual Fit): Manually calculate the slope ( |
HH. ML Algo | HH07_ml_linear_manual_fit.py |
| 392 |
Simple Linear Regression (Scikit-Learn): Use sklearn.linear_model.LinearRegression to fit a model to the mock data. |
HH. ML Scikit | HH08_ml_linear_sklearn.py |
| 393 |
Making Predictions: Use the trained Scikit-Learn model to predict the |
HH. ML Scikit | HH09_ml_linear_predict.py |
| 394 |
Evaluating the Model: Calculate the Mean Squared Error (MSE) and |
HH. ML Scikit | HH10_ml_linear_evaluate.py |
| 395 | Visualizing the Fit: Use Matplotlib/Seaborn to plot the original data points and the fitted regression line. | HH. Visualization | HH11_ml_linear_visualize.py |
Focus: Combining APIs, logic, and networking for real-world automation tasks.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 396 | Stock Monitoring (Price Check): Use a mock API to get the closing price for a stock yesterday and the day before. | II. API Project | II01_stock_price_check.py |
| 397 | Stock Monitoring (Volatility): Calculate the percentage difference between the two closing prices. | II. API Project | II02_stock_calculate_volatility.py |
| 398 | Stock Monitoring (News Fetch): If the volatility exceeds a threshold (e.g., 5%), use a mock News API to fetch the top three articles related to the stock. | II. API Project | II03_stock_news_fetch.py |
| 399 | Stock Monitoring (Twilio Alert): Format the stock change and news into a concise message and send it via Twilio (mock/console print). | II. API Project | II04_stock_twilio_alert.py |
| 400 | Habit Tracker (Pixela API - User): Simulate a POST request to create a new user account on the Pixela API. | II. API Project | II05_pixela_create_user.py |
| 401 | Habit Tracker (Pixela API - Graph): Simulate a POST request to create a new, trackable graph (e.g., "coding-hours") for the user. | II. API Project | II06_pixela_create_graph.py |
| 402 | Habit Tracker (Pixela API - Post Pixel): Simulate a POST request to record a new pixel (value) for the graph today. | II. API Project | II07_pixela_post_pixel.py |
| 403 | Habit Tracker (Pixela API - Update): Simulate a PUT request to update the value of a pixel recorded on a specific date. | II. API Project | II08_pixela_update_pixel.py |
| 404 | Workout Tracking Application (Setup): Create a function that takes exercise, duration, and calories and stores it in a mock list of dictionaries. | II. API Project | II09_workout_tracker_setup.py |
| 405 | Workout Tracking Application (Data Entry): Simulate natural language input parsing (e.g., "I ran for 30 minutes and did 10 pushups") and save the structured data. | II. API Project | II10_workout_tracker_parse.py |
| 406 | Workout Tracking Application (Sheet Mock): Simulate using the data to make a POST request to a mock Google Sheet API to log the workout. | II. API Project | II11_workout_tracker_sheet.py |
| 407 | Dotenv/Environment Variables: Read a sensitive API key from an environment variable (mocking .env file loading). |
II. DevOps | II12_devops_dotenv.py |
Focus: Complex data fetching, comparison logic, and user notification systems.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 408 | Flight Deal Finder (Data Structure): Define the required data structure (list of dictionaries) to hold city, IATA code, lowest price, and departure date. | JJ. Flight Project | JJ01_flight_data_structure.py |
| 409 | Flight Deal Finder (Sheety/DB Load): Simulate loading the list of target cities from a mock Google Sheet API (via Sheety). | JJ. Flight Project | JJ02_flight_load_cities.py |
| 410 | Flight Deal Finder (Teekila API - IATA Mock): Simulate a GET request to a Teekila-like API to get the IATA code for a city name. | JJ. Flight Project | JJ03_flight_iata_mock.py |
| 411 | Flight Deal Finder (Update Sheet with IATA): Simulate a PUT request to update the mock Google Sheet with the fetched IATA codes for each city. | JJ. Flight Project | JJ04_flight_update_iata.py |
| 412 | Flight Deal Finder (Search - Mock): Simulate a GET request to search for the cheapest flight from a home airport to a target city within a given date range. | JJ. Flight Project | JJ05_flight_search_mock.py |
| 413 | Flight Deal Finder (Deal Check): Process the mock flight search response and determine if the current price is lower than the recorded lowest price. | JJ. Flight Project | JJ06_flight_deal_check.py |
| 414 | Flight Deal Finder (Twilio Alert - Deal): If a deal is found, send a descriptive SMS alert (mock/console print) with the price and dates. | JJ. Flight Project | JJ07_flight_twilio_deal.py |
| 415 | Flight Deal Finder (Twilio Alert - Stopover): If the cheapest deal involves a stopover, modify the SMS alert to include the stopover city. | JJ. Flight Project | JJ08_flight_twilio_stopover.py |
| 416 | Flight Deal Finder (User Sign-up Mock): Simulate adding new user emails to a mock database/sheet. | JJ. Flight Project | JJ09_flight_user_signup.py |
| 417 | Flight Deal Finder (Email List): If a deal is found, use smtplib to send an email to the entire list of subscribed users. |
JJ. Flight Project | JJ10_flight_email_list.py |
| 418 | Handling API Authorization: Demonstrate using requests.auth.HTTPBasicAuth for a mock API request that requires username/password. |
JJ. Requests Adv | JJ11_req_http_auth.py |
Focus: System-level automation, file management, and interacting with the command line.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 419 | Execute a Simple Shell Command: Use subprocess.run() to execute a basic command like ls -l and print the output. |
KK. Subprocess | KK01_sub_run_ls.py |
| 420 | Capture Command Output: Use subprocess.run() with capture_output=True to get the output as a string and process it (e.g., count lines). |
KK. Subprocess | KK02_sub_capture_output.py |
| 421 | Handle Command Error: Use subprocess.run() with check=True and a try...except block to catch a CalledProcessError for a failed command. |
KK. Subprocess | KK03_sub_handle_error.py |
| 422 | Automating Git Operations (Clone Mock): Use subprocess to run a mock git clone <repo_url>. |
KK. Subprocess App | KK04_sub_git_clone_mock.py |
| 423 | Automating Git Operations (Commit/Push Mock): Use a sequence of subprocess calls to simulate git add ., git commit -m "update", and git push. |
KK. Subprocess App | KK05_sub_git_commit_push.py |
| 424 | Check Git Status Across Multiple Repositories: Iterate over a list of directories and use subprocess to check the status of each Git repository. |
KK. Subprocess App | KK06_sub_check_multi_repo.py |
| 425 | List Files in a Directory: Use os.listdir() to list all files and folders in the current working directory. |
KK. OS Module | KK07_os_list_dir.py |
| 426 | Creating and Deleting a Directory: Use os.mkdir() and os.rmdir() to create and then safely remove a new folder. |
KK. OS Module | KK08_os_create_delete_dir.py |
| 427 | File Path Manipulation: Use os.path.join() and os.path.basename() to create a platform-independent file path and extract the filename. |
KK. OS Module | KK09_os_path_manipulation.py |
| 428 | Walk a Directory Tree: Use os.walk() to traverse a directory tree and print the file paths. |
KK. OS Module | KK10_os_walk_tree.py |
| 429 | Find Large Files: Use os.walk() combined with os.path.getsize to find all files in a directory tree larger than 10MB. |
KK. OS App | KK11_os_find_large_files.py |
| 430 | Compare Two Directory Trees: Compare the contents of two directories recursively to check if they are identical (file names and sizes). | KK. OS App | KK12_os_compare_dirs.py |
Focus: Interacting with Amazon Web Services (AWS) using the Boto3 library.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 431 | Boto3 Setup/Session: Initialize a Boto3 session and mock the client connection to an AWS service (e.g., S3). | LL. Boto3 Basics | LL01_boto3_setup_client.py |
| 432 | S3: List Buckets (Mock): Use the S3 client to list all mock S3 buckets in the account. | LL. Boto3 S3 | LL02_boto3_s3_list_buckets.py |
| 433 | S3: Create a Bucket (Mock): Use the S3 client to create a new S3 bucket with a globally unique name. | LL. Boto3 S3 | LL03_boto3_s3_create_bucket.py |
| 434 | S3: Upload a File (Mock): Use the S3 client to upload a local file to a specified bucket and key. | LL. Boto3 S3 | LL04_boto3_s3_upload_file.py |
| 435 | S3: Download a File (Mock): Use the S3 client to download an object from S3 to a local file path. | LL. Boto3 S3 | LL05_boto3_s3_download_file.py |
| 436 | S3: Delete an Object (Mock): Use the S3 client to delete a specific object from a bucket. | LL. Boto3 S3 | LL06_boto3_s3_delete_object.py |
| 437 | S3: Handling a Non-Existent Bucket: Implement try...except to catch and handle the error when trying to access a bucket that doesn't exist. |
LL. Boto3 Error | LL07_boto3_s3_handle_not_found.py |
| 438 | EC2: List Instances (Mock): Use the EC2 client to describe (list) all running instances, filtering by state. | LL. Boto3 EC2 | LL08_boto3_ec2_list_instances.py |
| 439 | EC2: Start an Instance (Mock): Use the EC2 client to start a specific instance by its ID. | LL. Boto3 EC2 | LL09_boto3_ec2_start_instance.py |
| 440 | EC2: Stop an Instance (Mock): Use the EC2 client to gracefully stop a specific instance by its ID. | LL. Boto3 EC2 | LL10_boto3_ec2_stop_instance.py |
| 441 | IAM: List Users (Mock): Use the IAM client to list all user accounts in the AWS account. | LL. Boto3 IAM | LL11_boto3_iam_list_users.py |
| 442 | IAM: Create a User (Mock): Use the IAM client to create a new user with a specific name. | LL. Boto3 IAM | LL12_boto3_iam_create_user.py |
Focus: Securely connecting to and executing commands on remote Linux servers.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 443 | Paramiko Setup: Create a SSHClient object and set the policy to automatically add the host key. |
MM. Paramiko | MM01_pmk_ssh_setup.py |
| 444 | Basic Connection (Mock Password): Simulate connecting to a remote server using a username and password. | MM. Paramiko | MM02_pmk_connect_password_mock.py |
| 445 | Secure Connection (Mock Key): Simulate connecting using an SSH private key file path. | MM. Paramiko | MM03_pmk_connect_key_mock.py |
| 446 | Execute Remote Command: Connect to a mock server and execute a single remote command (e.g., uptime) and print stdout/stderr. |
MM. Paramiko | MM04_pmk_execute_command.py |
| 447 | Execute Command with Input (Mock SUDO): Send input to the remote command (e.g., sending a password to a sudo prompt). |
MM. Paramiko Adv | MM05_pmk_execute_with_input.py |
| 448 | Handle Connection Errors: Implement try...except to handle common connection failures like AuthenticationException or NoValidConnectionsError. |
MM. Paramiko Error | MM06_pmk_handle_errors.py |
| 449 | SFTP: Upload a File: Use SFTPClient to upload a local file to a specified path on the remote server. |
MM. Paramiko SFTP | MM07_pmk_sftp_upload.py |
| 450 | SFTP: Download a File: Use SFTPClient to download a file from the remote server to a local path. |
MM. Paramiko SFTP | MM08_pmk_sftp_download.py |
| 451 | SFTP: List Remote Directory: Use SFTPClient to list the contents of a directory on the remote machine. |
MM. Paramiko SFTP | MM09_pmk_sftp_list_dir.py |
| 452 | Advanced Script Execution: Write a Python function that executes a multi-line shell script remotely and collects all outputs. | MM. Paramiko Adv | MM10_pmk_execute_script.py |
| 453 | Checking Remote File Existence: Use SFTPClient to check if a specific file exists on the remote server before attempting to download. |
MM. Paramiko Adv | MM11_pmk_check_file_exists.py |
Focus: Programmatically controlling and automating Docker containers and images.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 454 | Docker Client Setup: Initialize the Docker client connection. | NN. Docker SDK | NN01_docker_client_setup.py |
| 455 | List Running Containers: Use the client to list all currently running Docker containers. | NN. Docker Containers | NN02_docker_list_containers.py |
| 456 | List All Images: Use the client to list all Docker images available locally. | NN. Docker Images | NN03_docker_list_images.py |
| 457 | Pull an Image (Mock): Use the client to pull a specified Docker image from a registry (e.g., nginx:latest). |
NN. Docker Images | NN04_docker_pull_image.py |
| 458 | Run a Container (Simple): Use the client to run a simple, detached container (e.g., running hello-world). |
NN. Docker Containers | NN05_docker_run_simple.py |
| 459 | Stop and Remove a Container: Find a container by name/ID, stop it, and remove it (remove=True). |
NN. Docker Containers | NN06_docker_stop_remove.py |
| 460 | Build an Image from a Dockerfile (Mock): Use the client to build an image given a path to a Dockerfile. |
NN. Docker Images | NN07_docker_build_image.py |
| 461 | A CI/CD Script to Build and Push an Image (Mock): Combine build, tag, and push operations (simulated) for a CI workflow. | NN. Docker App | NN08_docker_ci_push_mock.py |
| 462 | Container Health Check: Inspect a running container's status to check if it's "running" or "exited." | NN. Docker Containers | NN09_docker_health_check.py |
| 463 | Docker System Cleanup Script: Use client.containers.prune() and client.images.prune() to clean up unused resources. |
NN. Docker App | NN10_docker_cleanup_script.py |
| 464 | Handling Common Docker Exceptions: Implement try...except to handle exceptions like ImageNotFound or NotFound (for containers). |
NN. Docker Error | NN11_docker_handle_exceptions.py |
Focus: Managing and monitoring Kubernetes clusters and resources.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 465 | Kubernetes Config Setup: Load the Kube config file from its default location. | OO. K8s SDK | OO01_k8s_config_load.py |
| 466 | List Pods in a Namespace: Use the CoreV1Api to list all Pods in the 'default' namespace. |
OO. K8s Core | OO02_k8s_list_pods.py |
| 467 | Create a Namespace: Use the CoreV1Api to programmatically create a new namespace. |
OO. K8s Core | OO03_k8s_create_namespace.py |
| 468 | Monitoring Pod Health: List pods and check their status.phase (e.g., 'Running', 'Pending', 'Failed') to monitor health. |
OO. K8s App | OO04_k8s_monitor_pod_health.py |
| 469 | Create a Deployment: Use the AppsV1Api to create a new deployment (specifying image, replicas). |
OO. K8s Apps | OO05_k8s_create_deployment.py |
| 470 | Get Deployment Status: Check the status of a specific deployment (e.g., checking readyReplicas). |
OO. K8s Apps | OO06_k8s_get_deployment_status.py |
| 471 | Create a Service: Use the CoreV1Api to create a NodePort or LoadBalancer Service that exposes the deployment. |
OO. K8s Core | OO07_k8s_create_service.py |
| 472 | Automating a Rolling Update: Use the AppsV1Api to patch a deployment's image version to trigger a rolling update. |
OO. K8s App | OO08_k8s_rolling_update.py |
| 473 | Running and Monitoring a Job: Create a simple batch Job and use a loop to wait for the job to complete successfully. |
OO. K8s Batch | OO09_k8s_run_monitor_job.py |
| 474 | Scale a Deployment: Use the AppsV1Api to scale the number of replicas for an existing deployment. |
OO. K8s Apps | OO10_k8s_scale_deployment.py |
| 475 | Delete a Deployment: Use the AppsV1Api to delete a deployment by its name. |
OO. K8s Apps | OO11_k8s_delete_deployment.py |
| 476 | Handling Kubernetes API Exceptions: Implement try...except blocks to handle generic API exceptions (ApiException) during operations. |
OO. K8s Error | OO12_k8s_handle_api_errors.py |
Focus: Complex string processing, sub-problems, and pattern matching.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 477 | Find Longest Substring Without Repeating Characters: Find the length of the longest substring without any repeating characters. | PP. String Adv | PP01_str_longest_substring.py |
| 478 | Find All Substrings: Generate and print all possible substrings of a given input string. | PP. String Adv | PP02_str_find_all_substrings.py |
| 479 | Group Anagrams: Given a list of words, group the anagrams together. | PP. String Adv | PP03_str_group_anagrams.py |
| 480 |
Reverse Words and Swap Cases: Reverse the order of words in a sentence and swap the case of all letters (e.g., "Hello World" |
PP. String Adv | PP04_str_reverse_swap_case.py |
| 481 | Excel Column Title to Number: Convert an Excel column title string (e.g., 'A', 'AB', 'ZY') to its corresponding column number. | PP. String Adv | PP05_str_excel_col_to_num.py |
| 482 |
Regex: Basic Search: Use re.search() to find the first occurrence of a pattern (e.g., a number) in a string. |
PP. Regex | PP06_regex_basic_search.py |
| 483 |
Regex: Find All Matches: Use re.findall() to extract all email addresses from a sample text block. |
PP. Regex | PP07_regex_find_all_emails.py |
| 484 |
Regex: Substitution: Use re.sub() to replace all instances of a pattern (e.g., all whitespace) with a different character (e.g., a hyphen). |
PP. Regex | PP08_regex_substitution.py |
| 485 |
Find Most Frequent IP in a Log File: Use regex (re.match or re.search) to extract IPs from a mock log file and count the most frequent one. |
PP. Regex App | PP09_regex_frequent_ip_log.py |
| 486 | Parsing a Log File for Error Lines: Use regex to specifically identify and extract lines containing the word "ERROR" and the timestamp associated with it. | PP. Regex App | PP10_regex_parse_error_log.py |
| 487 | Creating a Set of Unique User Roles from a Config: Use regex to extract all unique user roles mentioned across a mock config file. | PP. Regex App | PP11_regex_extract_roles.py |
Focus: Scraper robustness, pagination, and advanced automation tasks.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 488 | Scraper: Extracting Specific Data: Scrape a mock sports results page and extract the final score for a specific team. | QQ. Web Scraping | QQ01_scrape_sports_score.py |
| 489 | Scraper: Pagination (Mock): Create a function that iterates through mock page numbers in a URL to scrape data from multiple pages. | QQ. Web Scraping | QQ02_scrape_pagination.py |
| 490 | Scraper: Custom Web Scraper for Top 100 Books (Full): Fetch a mock top book list, extract the title, author, and price, and store it in a Pandas DataFrame. | QQ. Project | QQ03_scrape_top_books_full.py |
| 491 | Selenium: Instagram Follower Bot (Mock Follow): Use Selenium to log in and simulate finding a target user's profile and clicking the 'Follow' button. | QQ. Project | QQ04_selenium_ig_follow_mock.py |
| 492 | Selenium: Data Entry Automation (Form): Scrape data from one source (mock) and use Selenium to automatically fill out a separate web form with that data. | QQ. Project | QQ05_selenium_data_entry_form.py |
| 493 | Selenium: Data Entry Automation (Capcha Mock): Implement a necessary wait and mock logic for handling a CAPTCHA or reCAPTCHA page element. | QQ. Project | QQ06_selenium_captcha_mock.py |
| 494 | Selenium: Handling Alerts (Pop-ups): Use driver.switch_to.alert to accept or dismiss a JavaScript alert box. |
QQ. Selenium Adv | QQ07_selenium_handle_alert.py |
| 495 | Selenium: Screenshot Capture: Take a screenshot of the current page and save it to a local file. | QQ. Selenium Adv | QQ08_selenium_capture_screenshot.py |
| 496 | Selenium: Downloads Folder Organizer (Setup): Create a script that watches a mock downloads folder and automatically moves files based on extension (.pdf, .jpg) into category folders. |
QQ. Project | QQ09_selenium_downloads_organizer.py |
| 497 | Selenium: Headless Browser Mode: Configure the WebDriver to run in headless mode (without opening a visible browser window). | QQ. Selenium Adv | QQ10_selenium_headless_mode.py |
| 498 | Scraper: Extracting and Parsing Dates: Scrape a mock event list and parse the date strings into Python datetime objects. |
QQ. Web Scraping | QQ11_scrape_parse_dates.py |
Focus: Using Matplotlib and Seaborn to create insightful plots and charts.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 499 | Matplotlib: Subplots: Create a figure with two side-by-side subplots (e.g., a line plot and a scatter plot). | RR. Matplotlib | RR01_plt_subplots.py |
| 500 | Matplotlib: Histograms: Create a histogram to visualize the distribution of a mock dataset (e.g., test scores). | RR. Matplotlib | RR02_plt_histogram.py |
| 501 | Matplotlib: Pie Chart: Create a pie chart to visualize the percentage breakdown of categorical data. | RR. Matplotlib | RR03_plt_pie_chart.py |
| 502 | Matplotlib: Customization: Add titles, axis labels, legends, and gridlines to a plot for better readability. | RR. Matplotlib | RR04_plt_customization.py |
| 503 | Seaborn: Scatter Plot: Use Seaborn to create a scatter plot of two variables and use a third variable to color the points (hue). |
RR. Seaborn | RR05_sns_scatter_hue.py |
| 504 | Seaborn: Box Plot: Create a box plot to visualize the distribution and outliers of a numeric variable for different categories. | RR. Seaborn | RR06_sns_box_plot.py |
| 505 | Space Race Analysis (Data Prep): Load a mock space mission dataset and clean the 'Date' column for analysis. | RR. Project | RR07_data_prep_space_race.py |
| 506 | Space Race Analysis (Visualization): Use Matplotlib/Pandas to plot the cumulative number of missions over time. | RR. Project | RR08_plt_space_race_cumulative.py |
| 507 | Deaths by Police Analysis (Visualization): Use Seaborn to create a bar chart showing the count of incidents by race/ethnicity. | RR. Project | RR09_sns_deaths_by_race.py |
| 508 | Deaths by Police Analysis (Trends): Plot the incident count over the years (time series) to analyze trends. | RR. Project | RR10_plt_deaths_over_time.py |
| 509 | Google Play Store App Analytics (Prep): Load a mock app dataset, clean the 'Reviews' column, and filter for high-review apps. | RR. Project | RR11_data_prep_app_analytics.py |
| 510 | Google Play Store App Analytics (Plotly Mock): Use Plotly (mock) to create an interactive scatter plot of app size vs. installs. | RR. Project | RR12_plt_app_size_vs_installs.py |
Focus: Utility development (audio, image), and high-level web app components.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 511 | Text to Audiobook Converter (Setup): Use a mock text-to-speech library to convert a simple string to an audio file. | SS. Project Adv | SS01_tts_basic_convert.py |
| 512 | Text to Audiobook Converter (File Input): Read the content of a .txt file and convert the entire content to speech. |
SS. Project Adv | SS02_tts_file_input.py |
| 513 | PDF to Audiobook Converter (Mock PyPDF2): Mock reading text from a PDF file and passing it to the TTS function. |
SS. Project Adv | SS03_tts_pdf_mock.py |
| 514 | Image Color Palette Generator (Setup): Use a mock image processing library (Pillow) to open an image file. |
SS. Project Adv | SS04_img_palette_setup.py |
| 515 | Image Color Palette Generator (Logic): Extract the 10 most common colors (RGB/Hex) from the mock image data. | SS. Project Adv | SS05_img_palette_logic.py |
| 516 | Custom API Based Website (Data): Flask app that fetches data from an external mock API and renders it in a template. | SS. Flask API | SS06_flask_custom_api_site.py |
| 517 | eCommerce Website (Product List): Flask app that displays a list of mock products from a database. | SS. Flask Project | SS07_flask_ecommerce_product.py |
| 518 | eCommerce Website (Shopping Cart Logic): Implement session-based logic to add and display items in a shopping cart. | SS. Flask Project | SS08_flask_ecommerce_cart.py |
| 519 | eCommerce Website (Payment Processing Mock): Simulate the process of submitting payment information to a mock service (e.g., Stripe/PayPal). | SS. Flask Project | SS09_flask_ecommerce_payment_mock.py |
| 520 | Simple Chat Application (Setup - Mock DB): Create a basic Flask route to display the last 10 messages from a mock database. | SS. Project Adv | SS10_flask_chat_setup.py |
| 521 | Simple Chat Application (Post Message): Implement a POST route to allow a user to submit a new message to the mock database. | SS. Project Adv | SS11_flask_chat_post.py |
| 522 | Kanban-Style Todo List Website (CRUD): Implement the core Flask-SQLAlchemy CRUD functions for managing a single list of todo items. | SS. Flask Project | SS12_flask_todo_crud.py |
Focus: Hashing, encryption concepts, and web security basics.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 523 | SHA-256 Hashing: Use hashlib to calculate the SHA-256 hash of an input string. |
TT. Cryptography | TT01_hash_sha256.py |
| 524 | MD5 Hashing: Use hashlib to calculate the MD5 hash of an input string. |
TT. Cryptography | TT02_hash_md5.py |
| 525 | Password Hashing (bcrypt Mock): Simulate the process of generating a salted hash for a user password using a modern library (e.g., bcrypt). |
TT. Cryptography | TT03_hash_password_bcrypt_mock.py |
| 526 | Password Verification (bcrypt Mock): Simulate verifying a user-provided password against the stored hash. |
TT. Cryptography | TT04_hash_password_verify_mock.py |
| 527 | RSA: Key Generation (Mock): Simulate the generation of public and private RSA keys. | TT. Cryptography | TT05_crypto_rsa_key_gen_mock.py |
| 528 | RSA: Encryption (Mock): Simulate encrypting a short message using the RSA public key. | TT. Cryptography | TT06_crypto_rsa_encrypt_mock.py |
| 529 | RSA: Decryption (Mock): Simulate decrypting the message using the RSA private key. | TT. Cryptography | TT07_crypto_rsa_decrypt_mock.py |
| 530 | Diffie-Hellman Key Exchange (Mock): Simulate the steps for two parties (Alice and Bob) to securely agree on a shared secret key. | TT. Cryptography | TT08_crypto_diffie_hellman_mock.py |
| 531 | URL Encoding/Decoding: Use the urllib.parse module to encode and decode a URL string (e.g., handling spaces and special characters). |
TT. Web Security | TT09_web_url_encoding.py |
| 532 | Sanitizing User Input: Create a function to remove common exploit characters (e.g., <script>, &) from user input before display. |
TT. Web Security | TT10_web_input_sanitization.py |
| 533 | Basic XSS Filter: Implement a simple regex-based filter to detect and neutralize basic Cross-Site Scripting (XSS) payload attempts. | TT. Web Security | TT11_web_xss_filter.py |
Focus: Advanced Python features like decorators, generators, and design patterns.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 534 | Iterator Pattern: Implement a simple custom iterable class (e.g., RangeIterator) that supports the __iter__ and __next__ methods. |
UU. Design Patterns | UU01_design_iterator_pattern.py |
| 535 | Generator Function: Write a simple Python generator function using yield (e.g., an infinite sequence generator). |
UU. OOP Adv | UU02_oop_generator_function.py |
| 536 | Context Manager (with statement): Implement a custom class with __enter__ and __exit__ to create a context manager (e.g., for managing a file handle). |
UU. OOP Adv | UU03_oop_context_manager.py |
| 537 | Decorator (Basic): Implement a simple Python decorator to time the execution of a function. | UU. OOP Adv | UU04_oop_basic_decorator.py |
| 538 | Factory Method Pattern: Implement a Factory Method to create different types of objects (e.g., Car, Bike) based on a single input string. |
UU. Design Patterns | UU05_design_factory_method.py |
| 539 | Singleton Pattern (Basic): Implement the Singleton pattern to ensure that only one instance of a specific class exists. | UU. Design Patterns | UU06_design_singleton.py |
| 540 | Observer Pattern (Basic): Implement a simple Observer pattern where a Subject notifies multiple attached Observers of a state change. | UU. Design Patterns | UU07_design_observer_pattern.py |
| 541 | Proxy Pattern: Implement a Proxy class that acts as a placeholder for another object (e.g., controlling access or adding logging). | UU. Design Patterns | UU08_design_proxy_pattern.py |
| 542 | Chaining Functions: Demonstrate how to use methods in a class to allow method chaining (returning self after each operation). |
UU. OOP Adv | UU09_oop_method_chaining.py |
| 543 | Property Decorator (Getter/Setter): Use the @property decorator to define getter and setter methods for a private attribute. |
UU. OOP Adv | UU10_oop_property_decorator.py |
| 544 | Dependency Injection (Simple): Implement a class that uses a dependency passed into its constructor instead of creating it internally. | UU. OOP Adv | UU11_oop_dependency_injection.py |
Focus: Heaps, Graphs, and Dynamic Programming concepts.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 545 | Heap/Priority Queue: Use the heapq module to implement a Min-Heap and demonstrate pushing and popping elements. |
VV. Data Struct | VV01_ds_min_heap_heapq.py |
| 546 | Graph Traversal (Adjacency List): Represent a simple directed graph using an adjacency list (dictionary of lists). | VV. Graph | VV02_graph_adjacency_list.py |
| 547 | Graph: Breadth-First Search (BFS): Implement the BFS algorithm on the mock graph. | VV. Graph | VV03_graph_bfs.py |
| 548 | Graph: Depth-First Search (DFS): Implement the DFS algorithm (iterative using a stack) on the mock graph. | VV. Graph | VV04_graph_dfs_iterative.py |
| 549 | Shortest Path (Dijkstra's Algorithm): Implement Dijkstra's algorithm to find the shortest path between two nodes in a weighted graph. | VV. Graph Adv | VV05_graph_dijkstra.py |
| 550 | Graph: Kruskal's Algorithm: Implement Kruskal's algorithm to find the Minimum Spanning Tree (MST) of a connected, undirected graph. | VV. Graph Adv | VV06_graph_kruskal.py |
| 551 | Graph: Prim's Algorithm: Implement Prim's algorithm to find the Minimum Spanning Tree (MST) using a Priority Queue. | VV. Graph Adv | VV07_graph_prim.py |
| 552 | Dynamic Programming: Fibonacci: Implement the Fibonacci sequence using memoization (top-down DP) for optimal performance. | VV. DP | VV08_dp_fibonacci_memo.py |
| 553 | Dynamic Programming: Knapsack (0/1): Implement the 0/1 Knapsack problem using a bottom-up DP approach. | VV. DP | VV09_dp_knapsack.py |
| 554 | Dynamic Programming: Longest Common Subsequence (LCS): Implement the LCS problem using a DP table. | VV. DP | VV10_dp_lcs.py |
| 555 | Dynamic Programming: Edit Distance: Implement the Edit Distance (Levenshtein distance) calculation using DP. | VV. DP | VV11_dp_edit_distance.py |
Focus: Data transformations, advanced ML models, and predictive modeling.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 556 |
Multi-Variable Regression (Data Prep): Load mock housing price data with multiple features ( |
WW. ML Adv | WW01_ml_multi_var_prep.py |
| 557 |
Multi-Variable Regression (Sklearn Fit): Use sklearn.linear_model.LinearRegression to fit a model with multiple independent variables. |
WW. ML Adv | WW02_ml_multi_var_fit.py |
| 558 | Classification (Logistic Regression): Use Scikit-Learn to implement a Logistic Regression model for a binary classification problem (mock data). | WW. ML Adv | WW03_ml_logistic_regression.py |
| 559 | Classification (Decision Tree): Implement a Decision Tree Classifier for a categorical dataset (mock data). | WW. ML Adv | WW04_ml_decision_tree.py |
| 560 | Clustering (K-Means): Use Scikit-Learn to implement K-Means clustering on an unlabeled dataset (mock data). | WW. ML Adv | WW05_ml_k_means_clustering.py |
| 561 | Model Evaluation: Calculate the Confusion Matrix and Classification Report (precision, recall, F1-score) for a classification model. | WW. ML Adv | WW06_ml_confusion_matrix.py |
| 562 | Feature Scaling: Implement Min-Max Scaling (normalization) on a mock numeric column using Pandas/NumPy. | WW. Data Prep | WW07_data_feature_scaling.py |
| 563 | One-Hot Encoding: Convert a categorical column in a Pandas DataFrame into numeric format using One-Hot Encoding. | WW. Data Prep | WW08_data_one_hot_encode.py |
| 564 | Time Series: Moving Average: Calculate the 7-day Moving Average for a mock time-series column in Pandas. | WW. Data Analysis | WW09_data_moving_average.py |
| 565 | Data Detective Story (Mock Data): Load a mock dataset on historical events, clean it, and aggregate data to find trends based on a hypothesis. | WW. Data Analysis | WW10_data_detective_story.py |
| 566 |
Pandas: Apply/Lambda: Use the .apply() method with a lambda function to create a new column based on complex logic involving multiple existing columns. |
WW. Data Analysis | WW11_data_pandas_apply.py |
Focus: Connecting and interacting with relational databases using Python's DB API.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 567 | DB Connection Setup (Mock mysql.connector): Set up a mock database connection and cursor object. |
XX. DB Basics | XX01_db_connect_mock.py |
| 568 | SQL: Create Table (Mock): Execute a mock SQL command to CREATE a new table (Products). |
XX. DB CRUD | XX02_db_sql_create_table.py |
| 569 | SQL: Insert Data (Mock): Execute a mock SQL command to INSERT a single record into the table. | XX. DB CRUD | XX03_db_sql_insert_one.py |
| 570 | SQL: Insert Multiple Data (Mock): Use cursor.executemany() to INSERT multiple records from a Python list into the table efficiently. |
XX. DB CRUD | XX04_db_sql_insert_many.py |
| 571 | SQL: Select All Data (Mock): Execute a mock SELECT * query and fetch all results using cursor.fetchall(). |
XX. DB CRUD | XX05_db_sql_select_all.py |
| 572 | SQL: Select Filtered Data (Mock): Execute a mock SELECT query with a WHERE clause to filter results (e.g., price > 100). |
XX. DB CRUD | XX06_db_sql_select_where.py |
| 573 | SQL: Update Data (Mock): Execute a mock SQL command to UPDATE a specific record. | XX. DB CRUD | XX07_db_sql_update.py |
| 574 | SQL: Delete Data (Mock): Execute a mock SQL command to DELETE a record based on a condition. | XX. DB CRUD | XX08_db_sql_delete.py |
| 575 | SQL: Prepared Statements (Mock): Use parameterized queries (prepared statements) to execute a mock SELECT query safely. | XX. DB Security | XX09_db_sql_prepared_stmt.py |
| 576 | SQL: Join Operation (Mock): Execute a mock SQL query to perform a LEFT JOIN between two tables (Orders and Customers). |
XX. DB Advanced | XX10_db_sql_left_join.py |
| 577 | SQL: Aggregate Functions (Mock): Execute a mock query using GROUP BY and an aggregate function like SUM() or COUNT(). |
XX. DB Advanced | XX11_db_sql_aggregate.py |
| 578 | SQL: Stored Procedures (Mock Callable Statement): Simulate calling a stored procedure using a database API (mock callproc). |
XX. DB Advanced | XX12_db_sql_stored_proc.py |
Focus: Connecting and interacting with document databases using Python's driver.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 579 |
MongoDB Connection Setup (Mock pymongo): Set up a mock client connection to a MongoDB instance/database. |
YY. MongoDB Basics | YY01_mongo_connect_mock.py |
| 580 | MongoDB: Insert One Document (Mock): Insert a single JSON-like document into a mock collection. | YY. MongoDB CRUD | YY02_mongo_insert_one.py |
| 581 | MongoDB: Insert Many Documents (Mock): Insert a list of documents into a mock collection. | YY. MongoDB CRUD | YY03_mongo_insert_many.py |
| 582 | MongoDB: Find All Documents (Mock): Retrieve and print all documents from a collection. | YY. MongoDB CRUD | YY04_mongo_find_all.py |
| 583 |
MongoDB: Find Filtered Documents (Mock): Query documents using a filter criteria (e.g., {'status': 'pending'}). |
YY. MongoDB CRUD | YY05_mongo_find_filter.py |
| 584 | MongoDB: Find with Projection (Mock): Query documents but only retrieve specific fields (projection) to limit data transfer. | YY. MongoDB CRUD | YY06_mongo_find_projection.py |
| 585 |
MongoDB: Update One Document (Mock): Use $set operator to update a specific field in one document. |
YY. MongoDB CRUD | YY07_mongo_update_one.py |
| 586 | MongoDB: Update Many Documents (Mock): Update a specific field for multiple documents matching a criteria. | YY. MongoDB CRUD | YY08_mongo_update_many.py |
| 587 | MongoDB: Delete One Document (Mock): Delete a single document matching a specific criteria. | YY. MongoDB CRUD | YY09_mongo_delete_one.py |
| 588 |
MongoDB: Aggregation Pipeline (Mock): Simulate a basic aggregation pipeline using $match and $group operators. |
YY. MongoDB Adv | YY10_mongo_aggregate.py |
| 589 | MongoDB: Indexing (Mock): Simulate creating an index on a specific field to improve query performance. | YY. MongoDB Adv | YY11_mongo_create_index.py |
Focus: Practical system utilities and advanced Python language features.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 590 | URL Shortener (Logic): Implement a simple base-62 encoding scheme to convert a sequential integer ID into a short, unique code (mock URL). | ZZ. Utility | ZZ01_utility_url_shortener.py |
| 591 | Downloads Folder Organizer (Full Logic): Implement the core logic to categorize and move files based on their extensions using shutil (mock). |
ZZ. Utility | ZZ02_utility_folder_organizer.py |
| 592 | Image Resizer (Mock): Use a mock imaging library to resize a batch of images in a folder to a specific dimension. | ZZ. Utility | ZZ03_utility_image_resizer.py |
| 593 | CSV to JSON Converter: Write a script that reads data from a CSV file and converts the entire dataset into a JSON file format. | ZZ. Data Format | ZZ04_utility_csv_to_json.py |
| 594 | JSON to XML Converter (Mock): Write a function that takes a nested Python dictionary (JSON data) and converts it to a basic XML structure. | ZZ. Data Format | ZZ05_utility_json_to_xml.py |
| 595 | Logging Configuration: Configure Python's standard logging module to log messages of different levels (INFO, WARNING, ERROR) to both the console and a file. |
ZZ. System | ZZ06_system_logging_config.py |
| 596 | Argument Parsing (argparse): Write a script that uses the argparse module to handle command-line arguments and flags efficiently. |
ZZ. System | ZZ07_system_argparse.py |
| 597 | Memory Usage Tracker: Use the psutil library (mock) to check and report the current CPU and memory usage of the running script/system. |
ZZ. System | ZZ08_system_resource_monitor.py |
| 598 | Multithreading (Basic): Use the threading module to run two simple functions concurrently to demonstrate multithreading. |
ZZ. System Adv | ZZ09_system_multithreading.py |
| 599 | Multiprocessing (Basic): Use the multiprocessing module to run two simple functions in parallel processes. |
ZZ. System Adv | ZZ10_system_multiprocessing.py |
| 600 | Producer-Consumer Pattern: Implement the Producer-Consumer pattern using a Queue for thread-safe data exchange between two threads. | ZZ. System Adv | ZZ11_system_producer_consumer.py |
| 601 | Basic Unit Testing (unittest): Write a simple function and create a unit test case for it using Python's built-in unittest module. |
ZZ. System Adv | ZZ12_system_unit_testing.py |
Focus: Finalizing web apps, advanced Flask features, and API design.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 602 | Full CRUD Blog (Database Setup): Implement the full database model for a blog that includes User, Post, and Comment tables (mock). |
AAA. Flask Adv | AAA01_flask_blog_db_model.py |
| 603 | Full CRUD Blog (Commenting): Implement the Flask route and database logic to allow a logged-in user to add a comment to a post. | AAA. Flask Adv | AAA02_flask_blog_comment.py |
| 604 | Full CRUD Blog (Post Deletion): Implement a secure route for deleting a post, ensuring only the original author or an admin can delete it. | AAA. Flask Adv | AAA03_flask_blog_post_delete.py |
| 605 | Flask CLI Commands: Define a custom command using Flask's CLI (@app.cli.command()) for tasks like setting up the database. |
AAA. Flask Adv | AAA04_flask_cli_command.py |
| 606 | Rate Limiting (Mock): Implement a mock rate-limiting mechanism in a Flask route to prevent users from hitting an API endpoint too frequently. | AAA. Flask API | AAA05_flask_api_rate_limit.py |
| 607 | Microservices: Inter-Service Communication (Mock): Simulate a Flask service making an API call to another mock Flask service. | AAA. DevOps | AAA06_devops_microservice_call.py |
| 608 | Environment Check Script: Write a Python script to check for the required Python version, necessary system dependencies (mock), and environment variables before deployment. | AAA. DevOps | AAA07_devops_env_check.py |
| 609 | Flask: API to Manage Server List: Create a Flask API that uses a mock database to manage a list of server hostnames and their statuses (Read/Write). | AAA. DevOps | AAA08_flask_server_list_api.py |
| 610 | Monitoring Web App (Health Check Endpoint): Create a basic Flask app with a /health endpoint that returns JSON status information (e.g., uptime, DB status mock). |
AAA. DevOps | AAA09_flask_health_endpoint.py |
| 611 | Data Pipeline Mock (ETL): Write a function simulating an ETL (Extract, Transform, Load) process using Pandas for the transform stage. | AAA. DevOps | AAA10_devops_etl_mock.py |
| 612 | Version Control Fundamentals (GitPython Mock): Use a mock GitPython client to programmatically commit files and check repository status. |
AAA. DevOps | AAA11_devops_gitpython_mock.py |
Focus: Bringing together multiple concepts in large application scenarios.
| # | Program Description (Focus) | Category | Filename |
|---|---|---|---|
| 613 | Blackjack Game (Full OOP): Fully object-oriented implementation of the card game with Deck, Card, and Player classes. |
BBB. Capstone | BBB01_capstone_blackjack_oop.py |
| 614 | Space Invaders Game (Basic Logic): Implement the core game loop, player movement, and bullet firing logic (using a game library mock). | BBB. Capstone | BBB02_capstone_space_invaders.py |
| 615 | Breakout Game (Collision Logic): Implement ball movement and collision detection logic with paddles and blocks. | BBB. Capstone | BBB03_capstone_breakout_collision.py |
| 616 | Disappearing Text Writing App (Tkinter/Timer): Implement the full Tkinter GUI with the timer and auto-clear functionality. | BBB. Capstone | BBB04_capstone_disappearing_text_gui.py |
| 617 | Personal Portfolio Website (Flask/Templates): Build a multi-page Flask application using templates to display portfolio sections (Home, About, Projects). | BBB. Capstone | BBB05_capstone_portfolio_flask.py |
| 618 | Typing Speed Test Desktop App (Tkinter/Logic): Implement the Tkinter interface, text display, and typing speed calculation logic. | BBB. Capstone | BBB06_capstone_typing_speed_test.py |
| 619 | Cafe & Wifi Website (Kanban CRUD): Implement the full web application for the Kanban/Todo list, allowing items to be moved between status columns (mock DB). | BBB. Capstone | BBB07_capstone_kanban_web.py |
| 620 | Virtual Bookshelf (Advanced UI/Authentication): Combine user authentication (Flask-Login) with the CRUD database for a personalized bookshelf experience. |
BBB. Capstone | BBB08_capstone_bookshelf_auth.py |
| 621 | Deployment: Dockerizing a Flask App: Create a Dockerfile and a simple entry point script (app.py) for a Flask application. |
CCC. Deployment | CCC01_deployment_dockerfile.py |
| 622 | Deployment: Gunicorn/WSGI Server: Write a simple startup script to run the Flask application using Gunicorn (mock). | CCC. Deployment | CCC02_deployment_gunicorn.py |
| 623 | Deployment: CI/CD Pipeline Mock (GitHub Actions): Write a YAML structure that simulates a CI/CD pipeline using GitHub Actions to build, test, and deploy (mock stages). | CCC. Deployment | CCC03_deployment_github_actions.py |
| 624 | Deployment: Serverless Function (Mock Lambda): Write a Python function structured to run in an AWS Lambda or Google Cloud Function environment (event handler). | CCC. Deployment | CCC04_deployment_serverless_mock.py |