Computer Programming I

CP1 — Python, Notebook-based

📚 Dr. Arif Solmaz
📅 Fall 2026-27
⏱ 14 weeks · 5 hrs/week
📧 arif.solmaz@istun.edu.tr
"I can solve a problem step by step with code"

Course Information

Course Code
CP1
Semester
Fall 2026-27
Credits / Hours
5 hours/week
Format
Google Colab Notebooks
Language
Python 3
Office Hours
Wednesday, 09:00–11:00 AM

Course Description

This course teaches algorithmic thinking through Python programming. Given any problem, students learn to decompose it into sequential steps and express those steps as a working program using variables, conditions, loops, and functions. Every week introduces new vocabulary (syntax, tools, patterns) in service of one core skill: step-by-step problem solving with code.

The course uses Google Colab or Jupyter notebooks. Each five-hour session includes explanations, worked examples, checkpoints, four short breaks, guided practice and review. Weeks 1–13 have eight core exercises each; Week 14 has ten core project milestones. Additional exercises are optional. Weekly notebooks are private practice and are not collected as homework. Complete worked-solution companions support self-study.

Learning Outcomes

Upon successful completion of this course, the student will be able to:

  1. Decompose a real-world problem into sequential algorithmic steps and translate them into Python code.
  2. Use variables, data types, operators, and formatted output to represent and display data.
  3. Apply conditionals (if/elif/else) and loops (for, while) to control program flow and handle repetitive tasks.
  4. Recognize and apply common programming patterns (accumulator, search, min/max, counter) to solve problems.
  5. Organize and process collections of data using lists, 2D lists, and string operations.
  6. Define, document, and compose functions to build modular, reusable solutions.
  7. Handle errors gracefully with try/except and read/write persistent data with file I/O.
  8. Complete a capstone project that integrates all course concepts into a working data-processing application.

Weekly Topic Sequence

Week numbers identify the topic sequence. Follow the instructor's official announcements for teaching dates, holidays and exam dates. Read the simple course guide or browse all worked solutions.

Week Topic Key Content Notebook
01
Colab Setup, Variables & Data Types
8 core / 7 optional
Understand what Python is and why it is widely used; Navigate Google Colab and work with notebook cells; Use the print() function to display outputOpen lesson →
02
Operators, F-Strings & Type Conversion
8 core / 4 optional
Use all arithmetic operators confidently, including // and %; Compare values using comparison operators; Use assignment operators (+=, -=, etc.) for concise codeOpen lesson →
03
Conditionals & Decision Making
8 core / 4 optional
Understand and use Boolean expressions (True / False); Write if, if/else, and if/elif/else statements; Combine conditions with logical operators (and, or, not)Open lesson →
04
for Loops & range -- Repetition
8 core / 4 optional
Understand why loops are essential in programming; Write for loops to repeat actions; Use the range() function with 1, 2, and 3 argumentsOpen lesson →
05
while Loops, break & continue
8 core / 4 optional
Understand the difference between for loops and while loops; Write while loops for condition-controlled repetition; Recognize and avoid infinite loopsOpen lesson →
06
Problem-Solving Patterns
8 core / 4 optional
Apply the sum pattern to accumulate values in a loop; Apply the count pattern to count items meeting a condition; Apply the min/max pattern to find extreme valuesOpen lesson →
07
Lists Fundamentals
8 core / 4 optional
Understand what lists are and why they are essential in programming; Create lists with different types of data; Access list elements using positive and negative indexingOpen lesson →
08
2D Lists & Nested Loops
8 core / 4 optional
Understand the concept of 2D lists (lists of lists) and how they represent tables/matrices; Create and initialize 2D lists; Access individual elements using row and column indicesOpen lesson →
09
String Processing
8 core / 4 optional
Use common string methods to manipulate text; Split strings into lists and join lists into strings; Iterate over strings character by characterOpen lesson →
10
Functions — Basics
8 core / 4 optional
Understand why functions are essential in programming; Define and call your own functions; Use parameters and arguments to pass data to functionsOpen lesson →
11
Scope & Mini-Library
8 core / 4 optional
Understand the difference between local and global scope; Explain the lifetime of variables inside functions; Use the global keyword (and know when to avoid it)Open lesson →
12
Error Handling
8 core / 4 optional
Distinguish between syntax errors, runtime errors, and logical errors; Recognize common Python error types (TypeError, ValueError, IndexError, etc.); Use try/except blocks to catch and handle errors gracefullyOpen lesson →
13
File I/O & CSV
8 core / 4 optional
Understand why programs need to read and write files; Open, read, and close files using Python's open() function and the with statement; Write data to text files using write() and writelines()Open lesson →
14
Mini Project — Sensor Log Summary
10 core / 2 optional
Apply file I/O and CSV skills in a real-world project; Read and parse CSV sensor data from a file; Validate and clean messy data with error handlingOpen lesson →

Course Delivery & Learning Contract

What Students Can Expect Every Week

  • Protected class time: the 5-hour session starts and finishes according to the official timetable, with a visible agenda and planned breaks.
  • Clear explanation: each major idea follows explain → worked example → prediction → test → interpretation.
  • Questions and voice: questions are welcome throughout; checkpoints reserve explicit time for think-pair-explain, misconceptions, and open questions.
  • Professional purpose: the course is designed for Mechatronics Engineering students and repeatedly connects concepts to programming decisions used in sensing, automation, data processing, and control.
  • Exam alignment: notebooks label the reasoning moves rehearsed on assessments. Exams use the same verbs and standards with new values or contexts.
  • Materials: weekly notes, runnable examples, core practice, worked solutions, concept checkpoints, optional extensions, and references support study throughout the term.
  • Feedback: concept checks compare short predictions. The final practice list is an explicit self-report, not an automatic grade or proof of correctness.

Assessment & Grading

ComponentWeightDescription
Midterm Exam 50% Written/practical exam covering Weeks 1-7 concepts
Final Exam 50% Comprehensive exam covering all 14 weeks

Assessment consists only of the midterm exam (50%) and final exam (50%). Weekly notebooks, exercises, projects, demonstrations and presentations are ungraded practice; no weekly submission is required.

Practice Feedback Checklist

  • Completeness: Core functionality explored during practice
  • Correctness: Code produces expected output for given inputs
  • Code quality: Readable variable names, proper indentation, comments where appropriate
  • Problem-solving approach: Evidence of step-by-step decomposition, not just brute-force solutions

Course Policies

Attendance

Regular attendance is expected. Students who miss more than 30% of classes may be denied the right to take the final exam, per university regulations.

Academic Honesty

For private practice, discussion and the provided worked solutions are permitted learning aids. Try the problem first, compare your reasoning, then solve a changed example independently. In exams, follow the stated rules, explain your own reasoning and acknowledge assistance. The following are violations in assessed work:

  • Copying code from another student or external source without attribution
  • Sharing answers during an exam or a restricted assessed task
  • Using work generated entirely by AI tools without understanding and modification

AI Tool Usage

AI assistants (ChatGPT, Copilot, etc.) may be used as learning aids to understand concepts. However, you must be able to explain and modify any code you write. Exercises are designed to build your skills progressively — bypassing them with AI defeats the purpose and will leave you unprepared for exams.

Communication

For course-related questions, email arif.solmaz@istun.edu.tr with your course code (CP1) in the subject line. Office hours: Wednesday, 09:00–11:00 AM.

References & Resources