Python portion of Programming Languages Course at RTU Fall 2025
This 5-week course introduces Python to students who have completed the C Programming course and already know C++ and/or Java.
It emphasizes translating structured C-style programming into idiomatic Python and prepares students for data-oriented and scripting tasks.
Each week includes one lecture (2Γ45 min) and one lab (2Γ45 min).
Week | Topic | Focus Keywords |
---|---|---|
1 | Python Basics, Branching & Iteration | syntax, variables, input/output, if , for , while , basic functions |
2 | Functions, Strings & Iteration Patterns | parameters, return values, scope, string operations, slicing |
3 | Core Data Structures & Functional Tools | lists, tuples, sets, dicts, comprehensions, map , filter , zip , apply |
4 | File I/O, Modules & Exceptions | reading/writing files, modularity, error handling |
5 | Object-Oriented Python & Project Integration | classes, testing, integration with C parser project |
Lecture
- Python syntax vs C syntax: indentation, comments, dynamic typing
- Variables, literals, and basic data types (
int
,float
,bool
,str
) - Input/output using
input()
and formattedprint()
(f-strings) - Arithmetic and comparison operators
- Conditional statements (
if
,elif
,else
) - Loops:
for
andwhile
(no nested data structures yet) - Basic function definition and calling (
def
,return
)
Lab
- Convert C arithmetic and looping examples into Python
- Write a small calculator using user input and branching
- Create a simple menu-driven program using loops and functions
- Explore Pythonβs
range()
and indentation rules
Lecture
- Function parameters, return values, and default arguments
- Local vs global variables; scoping rules
- String basics and operations: concatenation, repetition, indexing, slicing
- String methods:
split()
,join()
,strip()
,replace()
,find()
- Iterating through strings and sequences (
for char in string
) - Reusable code style: docstrings and comments
Lab
- Implement text-based arithmetic analyzer using functions
- Write helper functions for counting characters and words
- Explore string slicing and iteration patterns
- Practice writing functions that transform and return text results
Lecture
- Lists, tuples, sets, and dictionaries: creation, indexing, iteration
- Mutability and immutability concepts
- List methods and slicing
- Dictionary keyβvalue operations and nested structures
- Set operations: union, intersection, difference
- Comprehensions (
list
,dict
,set
) - Functional programming tools:
map()
,filter()
,zip()
,apply()
(from Pandas preview) - When to use loops vs comprehensions vs functional style
Lab
- Build simple datasets (lists/dicts) and compute aggregates
- Practice comprehensions and transformations
- Implement frequency counter for arithmetic operators and operands
- Experiment with
map()
andfilter()
to process lists
Lecture
- Reading/writing text files with
open()
andwith
- Basic CSV and JSON handling
- Organizing code into modules;
import
,from
,as
- Exception handling:
try
,except
,finally
- Reusing modular design concepts from C
Lab
- Read/write structured data from files
- Create helper module
arithutils.py
- Handle division-by-zero and invalid inputs gracefully
- Log program output to file
Lecture
- Classes and objects; defining
__init__
and instance methods - Encapsulation and inheritance basics
- Magic methods (
__str__
,__repr__
) - Unit testing with
unittest
andpytest
- Integrating C and Python components conceptually (data types, APIs)
Lab
- Implement
Expression
class with evaluation method - Write and run unit tests
- Package project as a module with documentation
- Bonus: visualize expression tree recursively
By the end of the course, students will be able to:
- Write readable, modular Python code using branching, iteration, and functions
- Work fluently with strings, lists, tuples, sets, and dictionaries
- Employ comprehensions and functional programming tools for data transformation
- Handle files and exceptions safely
- Organize code into reusable modules and classes
- Integrate and test Python programs effectively
- Transition smoothly from C-style logic to expressive, idiomatic Python