Don't wanna be here? Send us removal request.
Text
SLOG #3
Dec. 6th, 2017
Questions addressed in this SLOG: What advice would you give to a student beginning this course about (a) how to design a function, and (b) how to prepare for this course?
Before this course, I have no idea what a function is and that one day I am able to design a function myself. So what is a function?
Like the professor said, if you find yourself doing something over and over again, you are doing something wrong because programming language is suppose to make your work easier not tedious. Suppose you want to rotate-ccw an image and put it beside that image that’s been scaled to 1/2 of its original size, using the function
(beside (rotate-ccw an-image) (scale 2 an-image))
over and over again. Consider making it a function called rotate-beised or any name you want to call that is not been defined before, then designing it use
(define (rotate-beside an-image)
(beside (rotate-ccw an-image) (scale 2 an-image)))
In this definition, (define (rotate-beside an-image) part is called the function header; and (beside (rotate-ccw an-image) (scale 2 an-image))) part is called the function body. Now you can use the new function rotate-beside instead to save your time. Hopefully you will find defining a function is easy, that is the principle but probably after the first assigned project you will struggle. Some tip that helps me is that always keep in mind of what you are doing and do it step by step. Look closely at the check expect, where you will find what you should write into the function body. There might be a lot to put into the function body, write them down step by step and try them out using “step” functions to see the outcome in DrRacket’s Interaction pane. Good thing is that DrRacket will tell you what you did wrong so you can correct or improve it. Then put them together into the function body to finish your design. Run it to check whether it matches the check expect. If it cannot run, don’t panic. See what it expects and make adjustment.
I don’t know anything before taking this course so I did not prepare anything for it. But I think I made it through well. Don’t think it as an easy course; programming needs patience and practice. Go to your classes and try to follow up the professor, try it out on your computer is always helpful then just listen, and think hopefully you may got it. Try it out yourself and you will know your mistake. When you confused, raise hand and ask. If you feel embarrassed, there are always plenty of office hours and TAs hour that you can go and ask questions. They are very helpful. Before quizzes and tests, practice the exercises that’s posed and look up the terms you mess up in search manuals. When you struggle, start simple again to see your confusion, practice step by step to solve. Don’t jump to the answer right away every time because you will make mistakes frequently that way; see through “step” functions of how it’s done. As long as you follow the instructions patiently and carefully, do all your work, and get your questions solved by professors, TA, or your peers, you will see how you can do with programming; and it is pretty interesting!
0 notes
Text
Dec. 1th
Dec. 1th, 2017
We just finished the second project. It has similar method as the first one where we need to design functions based on the given check-expect. I found challenging and confusing sometime because I always lost track of the previous functions and forgot to put them in use. Together working with my partner and asking questions on Pizza and during office hours did ease my tension for the project and I think we did it well. Also just as the professor suggested, the map function helps, although I struggled again at the “bigbang” animation in the end when changing the elements.
0 notes
Text
Nov. 24th
Nov. 24th, 2017
After the reading break, we talked about the limit of the computation.
We define a function (fib n), which produces the nth number in that sequence, using the CS convention of indexing from 0.
(define (fib a-number)
(cond
[(< a-number 2) 1]
[else (+ (fib (- a-number 2))
(fib (- a-number 1)))]))
But found out that it will take hours, days, or even years to compute the (time (fib…)) will get you the exact time. And the truth is that sometime and but not all the time , it can be replaced by another function that’s not so time-consuming.
0 notes
Text
Nov. 17th
Nov. 17th, 2017 test
We just had test#2, it’s challenging comparing to the first test, consider that it contains the same topic of filling out the check expect and defining a function. But it’s basically what we’ve covered in class, so it is fair. I finished all the past test papers and had my questions answer by TAs before the test. Although I wasted some time figuring out the binaral problems only found out that I won’t be tested this time, I think I won’t have problems about it in the further study. I tripped at the last question where a local definition is found. I will see the outcome of the test and go to the office hour to get it solved.
0 notes
Text
Nov. 3th
Nov. 3th, 2017
The topic of how we can turn tedious work to functions and define anew function. The function we defined in class “stack” which could build a triangle tower of triangles is interesting. Also we know that “bigbang” function can actually turn images to running animation. It impresses me the most but I’m still trying to make sense of it and design one my own. And the rotating lizard actually wont’s fade away in mind for hours.
0 notes
Text
Oct. 20th
Oct. 20th, 2017
This week we learnt how to navigate in two levels involving lots of the interaction pane. The topic is lists of lists, which I found a little challenge at the first. There are many datatypes and function structures within a list that may contain many other lists. That’s confusing sometime about the elements if you don’t pay attention on the parenthesis. It requires a lot of practice which I’m still trying to do.
0 notes
Text
Oct. 13th
Oct. 13th, 2017
This week we talk about the condition functions. On Monday, we talked about the Booleans in the condition functions, which shows us the truth and false question in the condition function. Suppose you enter a bunch of truth or false questions in the condition function followed by the outputs you want. It stops as soon as there is a true answer and show the correspond output without examine the rest. It may seems obvious when the conditions are short and you can tell which are true an which are not, but in computer language, there are times that you cannot tell, that’s when the Boolean in condition functions comes in handy. Functions where computer choose random value and then exam the true or false in condition functions are also useful.
0 notes
Text
SLOG #2
Oct. 27th, 2017
Before the quizzes, like I mentioned before in my first SLOG, I always find the exercises on the course website very helpful. I normally write down my processing steps on papers then check whether its right, also by using the “step” functions in the interactions pane to type in your predict answer before seeing each steps works pretty much the same. During the practices, if I encounter a problem with unfamiliar terms or forget how a particular function works, I always right clicking the word in the interaction area and selecting “Search in Help Desk for” that particular term. If I’m still confused, I will go back to the lecturecasts on Blackboard for reviewing, by going through that topic with the professor one more time may light up some light bulbs in your mind. If I still struggle, I wil first try to talk with my classmate see if they can help out before then certainly go to the professor’s office hour or TAs hours to seek for help. By doing so, I find myself doing well on all quizzes. The key is to practice and try all the question by myself rather than see the computer processing for you and think that I’ve known how to do it.
I won’t say that there are any images that I’ve created by myself that would make me proud of, but I do enjoy the “stack” function we created in class which can save so many tedious work in order to build a triangle-shaped tower with a very basic triangle. Furthermore, there are “scroll-right an-iamge” function:
(define (scroll-right an-image)
(freeze (beside (crop-left an-image (- (image-width an-image) 10)) (crop-right an-image 10))))
and “rotate-a-bit an-image” function:
(define (rotate-a-bit an-image)
(rotate 10 an-image))
, which I’ve had a lot of fun playing with.
Sometimes, I do find myself confused over the condition function ((cond…) and also when it comes to list of list, it gives me dizziness. Especially when the project #1, I was struggling about what should I do exactly. The condition problem I went to check it in the search manual and also I went through the associated chapter in the textbook. Practicing made me better at it. For the list of list question such as those in project 1, my partner for the project helped me a lot I understand them. That’s also when I use the Piazza for the first time. By going through the answers from the professor on the similar questions I had, it helped me clear my mind. Moreover, my partner and me together we went to the office hour and get our questions solved fast!
When doing the project 1, that’s the first time I attend in any office hours. Before that, I always felt a little nervous and embarrassed to ask any questions. And I realized that’s a stupid idea because professor and TAs welcomes for any questions and are more than willing to answer them. Furthermore, the Piazza helped a lot as well, I always find similar questions that’s been answered that eased my mind.
0 notes
Text
SLOG#1
The reason for choosing CSC104 is that it is a required course for further studying in economy, statistics and mathematics, which I intend to major in. I hope to learn how computer works through its language and associated culture and be able to program. I haven’t had any programming experience before so that I expect it to be complicated and tedious. However the course is rather interesting and easier than I expected.
Before quizzes, I usually go back to lecturecasts for reviewing. I can always pick up stuff that may be missed in classes due to occasionally distraction or even absents. Typing in the interaction area in class or while watching the casts helps me understand better rather than just see the professor doing it; because then you can actually see how you can make mistakes and correct them in time. As promised, you can do well in one quiz by doing the designed pre-quiz exercises because it basically covered the main concepts that you need to be understood. You can always check out whether you know the stuffs rather than panicking during a quiz. I find the search manual pretty helpful for check out the specific function you confused with. You can do so by right clicking the word in the interaction area and selecting “Search in Help Desk for” that particular word. Multiple examples can be tried for double-checking an uncertainty. Another useful technique is to use the function “step” or “step-parallel” to see detailed steps of computation (only if there is any). Try to predict yourself and then check whether it match the actual answer. By doing all of the above, I found myself to be confident during a quiz and satisfied by the results afterwards. I expect (and encourage) myself to show up in the office hours if there is any confusion in further studying.
I hope to understand more about the computer systems and its languages for further applications in real word. How to design and analysis an algorithm may be interesting. I also want to know the data structures and how to design a webpage. As a beginner to programming, I find all new concepts attractive.
0 notes