Course title, code: Basic programming skills, GAJABAN-PROGRAMA-1
This 13-week course provides a foundational understanding of programming concepts and their implementation using the Python language. Students will learn fundamental programming constructs, data structures, and problem-solving techniques. The course emphasizes hands-on practice and developing practical programming skills.
Week 1-2: Introduction to Programming & Python Fundamentals • What is programming? • Why Python? • Setting up the programming environment (installing Python and an IDE). • Basic syntax: variables, data types (integers, floats, strings, booleans), operators. • Input/Output: getting user input and displaying output. Week 3-4: Control Flow • Conditional statements: if, elif, else. • Loops: for and while loops, break and continue statements. • Nested loops. • Practical examples: simple games, number guessing. Week 5-6: Functions • Defining and calling functions. • Function arguments and parameters. • Return values. • Scope and local/global variables. • Recursion (optional). Week 7-8: Data Structures • Lists: creating, accessing, modifying, manipulating lists (append, insert, remove, slicing). • Tuples: immutability, unpacking. • Dictionaries: key-value pairs, accessing and modifying dictionary elements. Week 9-10: Working with Strings • String manipulation: slicing, concatenation, methods (split, join, find, replace). • String formatting. • Regular expressions (basic introduction). Week 11-12: Introduction to Object-Oriented Programming (OOP) • Classes and objects: defining classes, creating objects (instances). • Attributes and methods. • Basic OOP concepts: encapsulation, inheritance, polymorphism (brief overview). Week 13: Project/Review • Final project: students work on a small programming project that integrates concepts learned throughout the course. • Course review and Q&A session.
Course content - labs:
• Understand basic programming concepts: variables, data types, operators, control flow (if-else, loops), functions. • Learn to work with fundamental data structures: lists, tuples, dictionaries. • Gain proficiency in writing, debugging, and testing Python code. • Develop problem-solving and algorithmic thinking skills. • Apply Python to solve simple real-world problems. • Understand the importance of code readability, maintainability, and best practices.
Knowledge:
Mid-term study requirements:
Evaluation: 1,if%∈[0,30); 2,if%∈[30,50); 3,if%∈[50,65); 4,if%∈[65,80); 5,if%∈[80,100] • Homework: 25% • Final project: 25% • Participation in practices and tests: 30% • Participation and activity in lectures: 20%
Exam requirements:
The recommended literature, the programs written in the exercises, the help file of the development environment. During the exercises, each student is provided with separate, modern computer access. Internet resources are available in the computer service room reserved for students.
[1] Python documentation: https://docs.python.org/ [2] Eric Matthes: Python Crash Course: A Hands-On, Project-Based Introduction to Programming, 3rd Edition, No Starch Press (2023) ISBN-10: 1718502702, ISBN-13: 978-1718502703 [3] Al Sweigart: Automate the Boring Stuff with Python, 3rd Edition, No Starch Press (2025) ISBN-10: 1718503407, ISBN-13: 978-1718503403
[4] Ramses van Zon: Introduction to Programming (SCMP142), (2024) All lecture slides: https://education.scinet.utoronto.ca/mod/resource/view.php?id=3486 [5] Marty Stepp, Moshe Goldstein: Introduction to Programming with Python (2016) Slides: https://sites.cs.ucsb.edu/~tyang/class/240a16w/slides/pythonQuick.pdf