2015年1月29日星期四

CSC148 SLOG for week4

It was a tough night. My teammates and I fought for Assignment 1 all night long and finally finished it at 7 this morning. Thank god! We made it! Though I thought it was a torture during that time, I have to admit I’ve learned something critical for mastering computer science through this procedure.

1.Preciseness. Compared with natural language, programming language needs one hundred percent preciseness to make a command. For instance, once  we used a method imported from a class we had made. All of us thought we were using it in a ‘proper’ way, but it still raised error when we ran it. Having checked several times, we found the reason. Brackets! We wasted more than twenty minutes  just because we forgot to add a pair of brackets after this method’s name. So learning computer science does train us to treat a problem cautiously and precisely.

2.Patience. Without exaggeration, I considered to give up thousands of times during last night. Many times, we thought we had done everything right but it just could not run out successfully. We need to double check again and again in order to find out a little bug, maybe just a pair of brackets. This process sometimes made us feel annoyed and even desperate. I even thought about dropping this course. However, when we clam down digging into the code, we did can find the bug and fix it. The pleasure and sense of achievement we got for the first time running our game successfully was really unforgettable.


3.Teamwork. Many hands make light work. I don’t think I could finish Assignment 1 such ‘perfectly’ without the help from my teammates. They could always come up with some brilliant ideas when I was stuck with difficulties. Thank you guys!

2015年1月25日星期日

CSC148 SLOG for week3

Before today, the word ‘geeks’, in my mind, stood for those people who are talented in coding. So I thought programming might be the only thing they need to care about until I got the topic for  this week’s SLOG. Why geeks need to know how to write? With curiosity, I started digging it and was totally shocked by the power of writing in daily language when I learned the success of Linus Torvalds.

There may be thousands of reasons for why geeks need to write. So I will only mention three of them which are most essential in my opinion. First and foremost, writing is one of the most efficient way for communication. It helps programmer to share idea with others and get others’ comments by the same time which may help you to improve your code. Either of them will eventually contributes to the success of program developing. In other words, mastering a programming language makes you ‘talk’ to computers better, but writing in a daily language such as English gives you chance to exchange ideas with people which is far more critical. Just like Joel Spolsky said, ‘The difference between a tolerable programmer and a great programmer is whether they can communicate their ideas’. Secondly, writing also does good to logical thinking. It may sound weird since we always regard writing as arts workers’ task not for computer scientists. However, writing with a good structure to express your idea clearly and persuasively does need logical thinking. Being good at writing, you are able to tell your user what your code can do via an outstanding technical documentation and this is the best way to show the value of your code. Finally, writing is recording. When you look back to those blog or diary you’ve written through learning, it will be like a ‘milestone’ preserving your process from being a rookie to a real ‘geek’. It’s fun, isn’t it?


In a nutshell, writing skill is as important as programming for geeks. Although writing SLOG every week seems a burden to me now, I will try my best to get used to it and finally handle it.

2014年11月13日星期四

SLOG for week10

Something new: 
1. Big-Ω proof
2. Big-O proofs for general functions
3. Introduction to computability

Something enjoyable:
Finally be able to use magic breakpoint B and under-estimation and over-estimation to give proof on big-Oh and big-Omega problems even when they are general.

Something frustrating:
1. Did bad in term test 2.
2. Still don’t totally get the halting problem and have some difficulty to apply reduction to a specific problem.

Solutions:
1. Review the proving method thoroughly and practice more especially on ‘floor’ problem.
2. Ask my friends for help and read the slides again and again.

Material covered those weeks:
After some practice in class, the big-Oh & big-Omega part is not a problem anymore. However, computability is quite confusing for me now.

Achievement?
Not too much. Did bad in term test 2…

Tutorial&Quiz:
Fortunately, I thought I did bad in last quiz but the result is pretty nice.


That's all for my week10. If anyone has suggestions for me on writing a SLOG, please leave me a comment and I'll appreciate it! Thanks a million!

2014年11月7日星期五

SLOG for week9

Something new: 
1. Exercises of big-Oh proofs
2.Prove big-Oh using limit techniques

Something enjoyable:
I’ve tried my best to find something enjoyable in this lecture. Unfortunately, I failed.

Something frustrating:
EVERYTHING! Picking c and B to show the bounding relation for some complicated polynomial functions and using limit to prove on some non-polynomial function, both of them are miserable. Tortures, literally.
And I think I did really bad in this term test…

Solutions:
Read the slides again and again then pray for the power from GOD.

Material covered those weeks:
Too many mathematical skills involving in this part gets me crazy.

Achievement?
Not too much.

Tutorial&Quiz:
The quiz in this week’s tutorial is quite difficult since the explanation is hard to figure out.


That's all for my week9. If anyone has suggestions for me on writing a SLOG, please leave me a comment and I'll appreciate it! Thanks a million!

2014年11月5日星期三

SLOG for week8

Something new: 
1. Formal definition of O, Ω 
2.Worst-case analyses of two algorithms.
3.Problem solving session

Something enjoyable:
Finally understand ‘O’ ‘Ω’ ‘Θ’ and know how to use their definitions to give some proof.
Be able to figure out insertion sort worst-case running time.

Something frustrating:
The python program of insertion sort and maximum slice are quite confusing. It’s difficult for me to calculate the worst-case running time of them.
Solutions:
Try it in python and try to understand the result of each step. Of course, practice more!

Material covered those weeks:
With more mathematics and python programing, it became much more difficult and this concerns me a lot.

Achievement?
Not too much.

Tutorial&Quiz:
I think it was bad since I’m not pretty sure about the proof structure I used in quiz.

That's all for my week8. If anyone has suggestions for me on writing a SLOG, please leave me a comment and I'll appreciate it! Thanks a million!

2014年10月26日星期日

SLOG for week7

Something new: 
1.Proof by cases
2.Review of proofs
3.Algorithm Analysis and Asymptotic Notation

Something enjoyable:
The rage comic Professor Zhang used in the slides really gave me a relief from the pressure when facing so many confusing proofs.

Something frustrating:
1.Bad performing in Assignment 1.
2.The proofs in class are getting more and more difficult.
3.Still a little confused in worst-case time complexity.

Solutions:
1.Compare my solutions with the sample solutions to find the mistakes and try my best to correct them.
2.Practice my proving skill through Assignment 2.
3.Rereading the slides and discuss it with friends.

Material covered those weeks:
Much more difficult than before so needs more attention.

Achievement?
Not too much. But I will try to do well in Assignment 2 and upcoming term test!

Tutorial&Quiz:
Not bad.


That's all for my week7. If anyone has suggestions for me on writing a SLOG, please leave me a comment and I'll appreciate it! Thanks a million!

2014年10月21日星期二

SLOG for week6

Something new: 
1.Proof about non-boolean functions
2.Proof something false
3.Proof about limits

Something enjoyable:
After seeing more proof in class, I got a further understanding about proof structure which confused me last week. 

Something frustrating:
LIMIT: Actually, the reason is that I didn’t learn this part well in my math course. So I found it’s quite difficult for me to write a proof about limit.

Solutions:
I will keep working on understanding Limits and do more exercise about it.

Material covered those weeks:
All of them except the Limits part(Math problem).

Achievement?
I did pretty well in Term Test 1!

Tutorial&Quiz:
No tutorial this week.


That's all for my week6. If anyone has suggestions for me on writing a SLOG, please leave me a comment and I'll appreciate it! Thanks a million!