Ruotong's Mid-semester Reflection

by Ruotong Yang

15 Feb 2016

First of all, I am very happy about what I have achived till now!
I have learned how to use assignment statements, variables, strings, lists, conditionals and loops to solve problems and fulfill different features of turtles. Especially, the turtle part really excites me a lot because it is hands-on problems and we have to figure out how to solve problem in a certain circumstance. In the course I’ve taken before about programming, it focuses a lot on algorithm and concepts, which works fine for me but it cannot push me to think in a real-world way. I read something last week about programming is similar to this course’s idea, the article emphasis on start writing programs early. We can try to write something to do what we want, even some parts of the codes we do not understand. Then, start from there, we can figure out the meaning of the codes we used and add these concepts to our knowledge kit. The article decribes this way as find lights and paths, which I think is very vivid. The lights we ignite, the clearer we know about the paths underkneath our feet and the distance between us and other lights.

Of course, sometimes programming can be frustrating, especially when you cannot find out what went wrong in your program.
For example:

In the turtle pair programming in-class exercise, we stuck on how to adjust the number of lines to be shown in the page. Even if you know how to do that, but somehow just cannot correctly do that. It can be really annoying :( I finally did this problem on that day using a rather math way I think. I believe the way that Elliott is trying to tell us is a more programming way with loops and conditionals.

I also tried the advanced features last Thursday:

(In the previous Trinket, I changed all the 10 to width and length to make the program more flexible, but haven’t in this one)
For this one, I haven’t figured out the default poem part. I don’t know how to put the default poem into a list. The lines will remain separately with quotes.

Similar problems in this in-class exercise of chapter 8 (lists). I commented the top few lines, don’t know if can combine the lines together first. I don’t know how to remove quotes in this case either. I found out the problem is that ‘list’ object does not have ‘split’ attribute, so I cannot do it like the way with ‘string’ object.

As lists cannot be splited, in the advanced poetry turtle program, I just did what we did in chapter 8’s exercise 4. But the problem is I cannot deal with adjusting number of lines to be shown. I used the romeo poem as default poem which is 4 lines (that is fine). If the poem has more lines that cannot be fit in the screen, that’s a problem for me. Is there a way to count how may lines are there in a string?

For things done well and struggled with, as I mentioned before, I am better at concepts than doing real problems. It is both because of trainings have been taken in previous education experience and personal preference. Especially with real problems, ususlly the division of problems into small tasks is more required, which I am bad at. I know that the strategy should be do things step by step, but I always end up doing things at one time. Sometimes I do them early, sometimes at last, both are not good experience. In the future, I will try to overcome it. And the strategy I will continue using is searching online and trying to find resources by myself when facing some unknown concepts. Other people’s ideas are inspiring, and thinking ahead is a good way to encourage myself to learn more.

Working with partners, as well as facing unknown concepts, is what we will encounter in a future job. So it is important to try to get used to it and find a way to collaborate better with classmates. Till now, I haven’t figured out that, actually, but I do feel the benefits sometimes. The problem is that we have different ideas and kind of did not really get the partner’s idea. The pair programming for novice like us can be slower, but getting insights from each other can be really helpful for opening minds. I think the key point is that we should try to understand other people’s idea and try to clearly convey oneself’s idea, or we will just end up in saying oneself’s idea again and again without communication and improvements. If partners both think in their own way and try to do in their own way will result in no idea exchanging. In that situation, pair work would be less efficient than working alone. Also I have question about the job of navigator and driver, should the driver do whatever the navigator is thinking about or the idea discussed and agreed by both of them?

For the second half of the semester, I will try to gain as much hands-on skills as possible and try to do things step by step. This problem is not only in this course, and I think I should overcome it since it is a very good working and study strategy since it can make one keep organized. Also, trying to be creative is important. I still remember how I was inpressed by the following two turtle of my classmates. I didn’t even realize that what we had learned could do that!

Also, when doing the reading assignment, I will try to improve reading speed and also try the strategy and do not push myself to finish the reading at one time. Although the feeling will be better to read all at once, since if read parts by parts every time when I come back to the materials I have to recall what I have read, I should practice doing the reading assignment in small parts as it is more like the real world situation (people will have small time slots instead of big time slots). I believe this practice will help my future work.

Ruotong Yang is a master student in STOR department at UNC Chapel Hill. Find Ruotong Yang on Twitter, Github, and on the web.