Friday, September 27, 2013

week 5


It is a tough week for me. My partner and I spent much time working on it and finally made it in time! But the cost of it is that I didn’t finish the reading assignments of textbooks and recommended paper. As a result, I am totally lost in this week’s three quizzes.

As for the lecture contents, I think I have gained a lot, especially for the topic of operators. I knew l value and r value during my undergrad studies but my understanding was fairly wrong. I also learnt how to judge whether an operation is legal or not. However, I just tried my best to remember as many examples as possible but didn’t understand why it is legal or illegal at all. This time, from the prospective of l and r value, I could do my own judge with a quite reasonable explanation. That is cool.
We also discussed and compared heap verse stack. It is relatively easy to understand because the professor had mentioned such comparison in previous lectures. The topic of variable is also interesting. It requires you understand pointers and references very well. In fact, I would like to choose pointers and references as the most important and confusing concepts that we need to understand. It appears so frequently in our class. Because it is relatively abstract, you could easily make a mistake on it.

In Friday’s lecture, a presentation about advanced git is given by a graduate student who also has working experience at Waterfall. His ad for this company does make sense and I would like to have a try for an internship position. Let’s go back to git. After doing two projects under git, I am much more familiar with it. It is extremely fast, as the lecturer mentioned. It is because most operation is done by pointers. I also appreciate the word he said at beginning. Git is complex, but worth it. Although I am still confused by some commands of git, I am glad to learn more and take full advantage of it. I am also considering push my previous projects to it because the lecturer said your github would be more appealing to HR. Code won’t lie. That’s pretty true.     

Friday, September 20, 2013

week 4


How time flies. It is already the 4th week of our object-oriented programming.
After attending the three lectures this week, I am confident say that I am accustomed to the teaching here.
In the first lecture, the professor continued to talk about exceptions, while in the third lecture, he talked about types, interfaces and classes. Of course, with the assignment of project 2, we also spent one lecture discussing what the problem is and some ideas about to how to solve this problem straightforward and then in a better way. The instruction is very important for us and makes us be aware of the pipeline of our work.
In the week’s passage, I would talk more about why I say I am feeling much better than before.
First of all, I realized that most students in this class learned Java before. It is not meaningful to spend too much discussing basic data types or syntax such as what is IF/ELSE. As a result, my concern that why the professor skipped such section during my first three weeks is gone now.
Second, when we talked about a new topic, the professor will also show Java version to us first. It helps us to get familiar with what the problem is. We could also brush up our Java skills. For example, I really forgot some details of interfaces implementation in Java before Friday’s lecture. After Java code, we will be shown C plus plus version. In this way, even though we may not understand exactly every sentence of the code, we could make a reasonable guess. Such process is a quite pleasant way to learn something new, especially something hard to understand. Another benefit is a direct comparison between Java and C plus plus helps student to strengthen their understanding of both languages, and more important, the understanding of object-oriented programming.
Last but not least, I realized asking and answering is really an effective way for knowledge transfer. It pushes all students to concentrate on the topic and think out for the solution actively because the professor’s question is context-based. It you happen to miss one question and discussion about it, you will probably find it hard to catch up the following. What’s more, such topics will appear in quizzes of next lectures. So listening carefully and thinking actively is a best way in class.

Friday, September 13, 2013

week 3


First of all, I want to talk about three quizzes in this week. My performances are stable in these three that I could answer most of the questions correctly. However, each time I would have one question wrong. For example, considering the context of collatz, what does n + (n/2) + 1 mean? It may be a little tricky. If I had more time, I think I could solve it. Yes, that is what I want to say. Quiz time is too short to me. From another perspective, I need to react more quickly.

I am still keeping a confusing attitude for the teaching content in class. We have had three weeks’ lectures. What we learnt is not well organized. Yes, we knew assertions and exceptions and we also knew iostream. But shouldn’t we start to learn from Chapter 1 in the textbook? Maybe we should start with what is object and what is object-oriented programming? Then we should talk about how to define a class and what are properties of a class? It I were the professor, this could be my choice. However, I believe the professor has his idea and his teaching experience would ensure that his style has better effect for us. Just listen carefully.

Last but not least, I really appreciate what the professor in Friday’s lecture about pair programming. It really helped me to learn a lot. To be honest, in the past I am a student who is hesitate or even hates to collaborate with other student for projects. It is mainly due to some unsuccessful project experience. I met a lazy and irresponsible teammate who didn’t do his job well. I was very angry with that and spend too much time on it, nearly completing the whole project myself. From then on, I lost confidence of finding a good teammate. Now I think what I did was wrong. I shall have a communication with teammates when I think we need a talk. It would probably solve the problem. As the professor said, most of current software are developed by a team, not an individual. Communication skill is especially important when we hunt for a summer intern or full-time job in the future.

Friday, September 6, 2013

week 2


There are still two lectures in this week due to the labor day. I am not feeling so comfortable, or say, not so accustomed to the class style in U.S.

The professor spoke a little faster than the speed that I could catch every important point. So I missed requirements of how to prepare quizzes. Now I know we should do enough preparations of reading assignments before quizzes. Wish I could do better next week. I also misunderstood what the professor said in the part of git. So I wrote the answer of 1.a,1.b to 1.b,1.c respectively. What a shame! Do practice my listening every time!

I am also a little confused about how will the class continue. It is already two weeks but the professor discussed nothing about object-oriented or how to code in C++. Another reason why I am confused is that, as a graduate student who takes this undergrad course, I have no idea about the prerequisites listed in the course homepage. Also, there are too many required courses. So I don't know what level my classmates are in.  I am wondering about are they be familiar with Java already? Are they even already know C++ very well? According to the responses when students answered questions, they seemed to be quite good at Java and C++. Then what is supposed to be learnt in this course?

However, I really appreciate the professor's patience. We already spent too much time discussing our first project, and it may continue next week. By asking many questions and explaining them, the professor made us very familiar with the project. As a result, it would be easier for us to complete our first task. I also learnt much knowledge during those question-answer sections.

William Vickery, as a student, gave us a great presentation about git. He was a little nervous. But I liked it very much because the talk was presented from a perspective of student. He knew what we are eagle to know at beginning. The slide is easier to understand than any other reference or manual.

In a word, I am falling a little behind the class now. I need to do more preparation work before class. Good luck to myself.

Wednesday, September 4, 2013

week1


This is the first week of my graduate studies. As a student from China, I think the object-oriented programming class here is quite different from the similar programming language course I took previously. 

I was surprised in the first lecture. I thought the professor would spend some minutes discussing the course requirements and course syllabus and began to talk about what is object-oriented. However, the fact is in addition to the course description, we got a chance to know other students around us, which makes it easier for us to choose a partner for future projects. For the rest of time, students are asked questions when reviewing a HelloWorld java program. I was confused about this part because I supposed not many students in this class already know how to program in Java or C++. To some degree, learning OOP is the same to learning Java/C++ from my point of view. But it seems to be wrong here.

In the second lecture the professor introduced requirements of our first project, which is quite impressive to me. The project sets a high requirement for coding, testing, and even compiling. Git is also new to me and looks quite awesome. When I learnt C or Java in China, the lecturer spent most of time explaining syntax, which is right and which isn't. Instead of doing compiling by command line and writing makefile when necessary, we relied heavily on IDE. Another point that is worth mentioning is that I like the seemingly heavy load of the projects. Even though it is the project 1, it is already complex enough for me. Many requirements of the project could help me to sharp my skills and find a good intern job in the summer.

As a result, I think the course will be very challenging for me. However, I am confident of gaining a lot through it. Hopefully I could know how to be a real programmer or even a geek after this course. 

In a word, the first week's classes are quite different from what I thought it would be. I have to spend more time on it to make sure I could be accustomed to such style of teaching and learning.