First of all, I have never taken a computer programming course prior to CSC108 (last semester), so I was intrigued to discover what new knowledge I would obtain from this course as a second and final programming requirement for my major. To my surprise, I quickly realized that students within the course were not of equal standing in terms of our programming experience. Many students seem to be actively pursuing compsci programs while others were familiarized with programming since high school, making CSC108 a breeze for them. I believe it is because of this discrepancy that the lecture material is not in line with the current programming knowledge that students in this course posses. My biggest difficulty beginning programming was the lack of information provided about the strict rules that Python must follow when implementing algorithms as well as communicating my issues with the professors and TAs. I believe the Piazza platform is a great representation of the confusion that many beginners have especially when responses are given by advanced programmers who seem to become very impatient with their feedback and do not take the appropriate time to thoroughly explain where the issue may have been derived in simple terms to a beginner who is not aware of all the ins and outs of Python. However, seeing as many students in CSC148 are already very comfortable with programming in general, I can see why this issue would arise without being confronted as well as why the course should be adjusted to better suit the learning experience of future students.
Now that the reader of this blog knows the beginners perspective that I am speaking from when discussing course material, I can proceed with my feedback on the first few weeks of this course. During the first week of class, I found it simple to follow what material is intended to be covered within the duration of this course. The following week, we began discussing required methods when developing a class. My only difficulty was not a matter of understanding why such methods needed to exist but how to code them. Again, I felt as if this was something many students already understood how to derive yet beginners would have a hard time with due to a lack of explanation of the thought process required to write the code for such methods. For example, in CSC108 we were not introduced to the ".fornat" code or using "{}" apart from implementing a dictionary. I found it helpful to trace through the code myself and infer why certain pieces of the code had to be written as much as this form of learning is not very definitive and leaves a lot of room for errors in thought process to occur seeing as it is not being taught deliberately. In addition, within the lecture notes I found some of the language used to explain important aspects a little misleading and confusing (i.e.: "We abstract the data and operations and suppress the implementation."). As much as I understood what the message was, when looking back at the slides for some reviewing for the midterm this did not provide efficient insight into what was being taught or what was required to know for future testing. Additionally, I also found spelling mistakes and improper sentence structure within the lecture notes to add to my confusion when reviewing the material (i.e.: "use ternary if when you want an expression that evalutes in different ways, depending on a condition"). As I become more familiarized with the importance of tedious accuracy and proper spelling, punctuation and grammar within programming, I'm finding these same requirements are also necessary in the teaching methods of this course to facilitate a smoother transition into applying what is being taught when beginning to code. During the 3rd week, we discussed Inheritance and Exceptions which I found to be pretty straight forward concepts however, I found the examples used to be very in-depth and trying to sort through the code drew me away from the lesson that was being taught during class time.
As for the lab section, unfortunately due to a previously scheduled driver's test I was unable to attend the second lab at the end of the 3rd week of classes. However, I did attend the first lab which resulted in quite a bit of frustration and confusion. During my lab hours I worked with a partner to implement the required code, however we encountered some difficulty sorting through the given information and figuring out how to approach the problem. We ended up asking the only TA present for some insight however there were many other students in the class facing various issues so her feedback ended up very uninformative in addressing the issues we encountered as well as rushed and dismissive. My partner and I later realized that maybe following the lab worksheet would have helped us with the steps required a bit more, but the TA never pointed this out to us. Seeing as I was informed by the professors to ensure that the lab material is well understood for the midterm this coming Wednesday, as soon as our first assignment is handed in later tonight, I intend to make sure I assert myself in the coming lab tomorrow so that I receive proper guidance in regards to my confusion with the material provided.
Overall, I am finding myself a little overwhelmed by the amount of work required in this course within such short periods of time, with barely any lecture time and explanation of the material, during each week. All of this in addition to 4 other demanding courses during the semester quickly adds up to much more work than there is time to complete everything while giving my best effort.
No comments:
Post a Comment