Imagine you want to keep a reading list: which books you have finished, which you have not started, and how to save your progress so you can pick it up again next time.
With only one book to handle, a few lines of code seem to do the job. Add ten books, and you need to store multiple records; to filter out unread items, you need to spell out the rule for deciding; and only after you close the program do you discover that your changes were never saved.
A very small requirement has already brought several core problems of programming into view. EvoClass's AI001 Introduction to Python Programming arranges ten lessons around these foundational skills, moving from syntax and control flow gradually into lists, functions, dictionaries, modules and file reading and writing.
How does a program know what to do next
When a person looks at a list, they can usually decide naturally which items to handle first. A program needs explicit conditions and steps.
In Lesson 2: Control Flow and Logic, the course moves from sequential execution into conditional judgment, Boolean expressions and multi-branch selection, and also emphasises the code blocks defined by indentation.
Back to the reading list: you can start by asking just one question—is a given record's status "unread"? Based on the answer, decide whether to keep it or skip it, then apply the same rule to the other records.
What is worth practising at this stage is turning a vague requirement into a clear decision. "Find the useful items," for example, is still too broad, whereas "keep items whose status is unread" can already be turned into a checkable rule.
When the data grows, first think about how to store it
Once there is more than one item, the way the data is organised starts to shape how the program is written.
Lesson 3: Using Lists discusses ordered collections, indexing, slicing, and adding and removing elements. A set of book titles can go into a list, and then a loop can process them one by one.
But a book may also include an author, a reading status and a date recorded. At that point, relying on position alone to remember "what the second item is" makes later changes harder. Lesson 8: Using Dictionaries introduces keys and values, giving fields explicit names.
Putting one dictionary for each item in a list is one way this exercise could be organised. It is only a learning suggestion, and the aim is to experience how the choice of data structure makes some operations more direct and also affects how others understand the program.
Doing the same thing repeatedly: how to copy less
If you copy the filtering rule into the screen display, the list export and the count, then changing the condition means checking several places at once.
Lesson 5: Reusing Code with Functions centres on function definitions, parameters, calls and return values, and discusses how to organise a related operation into a reusable unit.
The filtering operation in the reading list can become an exercise in itself: take a set of records as input and return the results that meet the condition. Wherever it is called is responsible for displaying or saving, while the filtering itself keeps its responsibility clear.
Once a function's name, inputs and outputs are clear, checking becomes more concrete. What is returned when there are no records? What happens when every book has been read? These boundary questions often help you understand a program better than one smooth successful run of a piece of code.
After the program closes, how does the result stay
Data kept in variables while a program runs does not automatically become a record that still exists the next time you open the program.
Lesson 9: File Input and Output takes the learning beyond the program itself: reading and writing text, managing file resources, and getting to know common data formats such as CSV and JSON.
The reading list can keep developing along this path: first read in from a file, then process the records, and finally write out the results that need to be kept. When writing, you also need to distinguish overwriting from appending, so that the next run does not change data you meant to keep.
This list is a teaching idea that strings the knowledge together; it is not a complete project the course already provides, nor a software test carried out in this article. Its value lies in letting each new concept respond to a concrete need, rather than treating syntax points as a list of separate items.
On the AI001 course page, you can learn step by step from the basics, or return to the relevant chapter with a small task of your own. In the end, those few lines of runnable code may turn into a tool you can understand, modify, and keep using next time.
This article was prepared based on EvoClass's current course catalogue and course materials; the lesson links point to English materials. The reading list is a learning suggestion; this article did not run the course labs or promise that completing the course delivers production software; conditions for full access and for using the programming features are subject to the notices on the page.