
Explore Python programming through interactive demos: tic-tac-toe with a smart machine, a grocery store line simulation, and basic animations that illustrate data structures and real world problem solving.
Learn how Python, a high-level, general-purpose, object-oriented, and interpreted language, enables diverse tasks from scientific computing to robotics, and how to install Python and PyCharm on Windows.
Learn Python arithmetic in the PyCharm console, mastering addition, subtraction, multiplication, division, floor division, and exponentiation, with project setup guidance for Pygame.
Explore Python operator precedence from highest to lowest, with power, unary minus, multiplication, division, modulo, and addition, and the role of parentheses in order of operations.
Explore Python types, including integers, floats, strings, booleans, lists, tuples, dictionaries, and sets. Learn type conversion with int, float, and str, and how string and number operations differ.
Python variables act as references to data with dynamic typing. Integers are immutable, while lists are mutable, so shared references propagate changes. Follow naming rules and case sensitivity.
Explore Python strings defined by single quotes, including empty strings, length, concatenation, repetition, indexing and slicing, negative indices, substring checks, and escaping special characters.
Explore Python lists as mutable, ordered collections defined with square brackets, supporting append, insert, pop, indexing, slicing, and nesting with lists-in-lists; compare with immutable tuples.
Explore function basics in Python, including defining functions with def, passing zero or more arguments, returning values, and practical examples like calculating averages and summing numbers.
Explore relational operators in Python, using equality, not equal, less than, greater than, less than or equal, and greater than or equal to compare numbers, strings, and lists, returning true or false.
Explore logical operators and boolean values, using and, or, not and truth tables to evaluate comparisons; practice with Python examples and short-circuit evaluation.
Learn to implement conditional branching in Python using if-else and indentation. Apply logical and/or, nested ifs, and modulo to test even or odd numbers.
Learn how numbers are expressed in different bases, focusing on binary, conversion between decimal and binary, two's complement for signed integers, and basic bitwise operations.
Explore Python conditional branching with if-elif-else, compare nested ifs to elif and dictionary approaches for mapping 1–7 to weekdays, then map scores to letter grades emphasizing condition order.
Learn how variable scope works in Python, including local variables inside functions, global file-level variables, shadowing, and using the global keyword to alter global values.
Explore Python's while loop to execute repeated blocks, print numbers 1 to 9, iterate lists with an index, and generate pattern outputs like a right triangle of asterisks.
Explore loops in Python by using break and continue in while and for loops, generate random numbers, manage time intervals, and build nested loops for permutations.
Demonstrate Python argument passing by assignment and the difference between mutable and immutable types. Learn default values, positional and keyword arguments, and how to copy lists to avoid unintended changes.
Learn to handle Python exceptions with try-except, catch specific then generic errors, and raise validation errors. Use asserts to test functions that sum variable arguments and ensure correct results.
Practice computing with Python through focused exercises on geometric series, Fibonacci terms, prime tests, and basic statistics using a normal distribution.
Learn how a Python module is a self-contained file that provides functionality and can be reused across programs by importing it as a namespace.
Master binary search on a sorted array by repeatedly comparing the middle element, shrinking the search range by half, and returning the index or -1, as demonstrated in Python implementation.
Practice linear interpolation to estimate container volume from measured heights by computing slopes between two known points and extending the line for out-of-range values, with a Python implementation.
Explore recursion with factorial and fibonacci examples, defining base conditions, understanding stack overflow risks, and storing previously computed values to improve performance over naive recursive calls.
Explore simple sorting algorithms in Python, including selection sort, insertion sort, and quick sort, with in-place operations, pivot partitioning, and recursive strategies to analyze their complexity.
Explore rgb color representation and hex, learn screen coordinates and window basics, and master drawing shapes including rectangles, lines, ellipses, circles, arcs, polygons, and donuts with pi game.
Learn to perform 2d graphics transformations in python by translating, scaling, and rotating coordinates to draw shapes like a hexagon and a sine curve with pygame.
Explore Python classes to model real world concepts, initialize instances with constructors, manage attributes through methods and properties, enforce encapsulation, and practice operator overloading with RGB color.
Explore class inheritance in Python with a school example, where a base class person provides shared name attributes and derived classes like student and teacher reuse and override behavior.
Simulate projectile motion in python by modeling x and y components under gravity, using a 2D vector class, transforming screen coordinates, and drawing trajectories for multiple launch angles.
Programming is one aspect of computer science and software engineering. The primary goal of this course is to build a solid foundation of programming knowledge and skills. With what learned in this course, the students should find it is easier to learn more advanced concepts in computer science.
Not everyone will be or want to be a software engineer, however, this course can help them realize how a problem can be solved by using computer program; how Python can help scientists and engineers improve their productivity.
Believe or not, software developers usually join a product development from the very beginning to the very end. (while this is not true for mechanical engineers or electrical engineers). Most importantly, sometimes, updating software is the better solution to fix or improve a product.
The teaching can be viewed as a vehicle to help students develop problem solving skills. This course will use some mathematics or physics, but it is not a math or physics course, and we use them in programming to re-enforce the learning in those fields.
At the end of this course, It would be a great achievement for the students and me when they find they are able to learn some other programming languages or computer science topics not taught in this course by themselves