Time sure flies! The first three weeks of
this semester have gone by so quickly! In the first week, I felt
completely lost in the lectures, however, as I discovered the great help
offered in this course, along with the weekly extra reading material, I hope to
grow more confidence in programming, as well as understand ~95% of the material
covered each week (or else, I'll have a ton of work to do before exams!). There
were several foreign terms introduced in the lectures, which include ternary,
ADT, Stacks and Recursion. My understanding of these terms was achieved by
doing some extra reading, and taking some time to understand the code. Also,
something that was mentioned by the professor and was new to me was the way in
which one can make some data “private” by adding an underscore (‘_’) before the
name. I really enjoy when my professor relates each ‘topic’ to some
real-world situation, and this helps me understand what exactly is being done
in Python. He usually includes in his slides, a paragraph relating the Python
material to the real world. For example, in introducing Stacks, he summarized
the methods that can be done with Stacks to real situations, and allowed us
some time to read and analyze the paragraph. This really helped me interpret what is
being taught.
In addition to the lectures, there are also
lab tutorials. At first, I disliked the idea of having to work with a partner
in all the labs, since I comfortably worked alone for most of my CSC108
assignments. However, after attending my second lab session, I realized how
important and helpful it is to work with a partner, especially in Computer
Science. Thanks to my brilliant lab partner, we were able to finish the
majority of the tasks provided, and he helped me understand how a ‘Stack’
works.
The first two-three weeks of Intro to
Computer Science were mainly about OOP. What on earth is OOP?? OOP stands for
Object-Oriented Programming, which basically, is creating and using “classes”
and “objects”. From my understanding, a “class” is a ‘blueprint’ that is
defined by an individual (python-user) to represent a type of object and its
operations, and an object is a ‘thing’ created from class, which tells it to do
something. In programming, objects are usually called “instances” of a class.
So, OOP is a type of programming that creates a sort of framework (a
"class") for some data, which includes the functions or methods in
which the data can perform. Some important traits of OOP include reusability
(Inheritance) and “data hiding”. Data hiding is making some data “private” so
that no user can interfere or access the data. Simply adding an underscore
before the variable name does this "data-hiding". Additionally,
“Inheritance” essentially means that one can “transfer” some features of an
existing class and apply it to some new class, which can be extremely useful
and time-saving when dealing with complex object-oriented programs. All of
these outline a few of the many features of OOP.