As a new CS student who had never got in touch with the field of coding before the course. I have gone through a stage of confusion and lost, but my persistence finally brought me to the end. Some advices that I found are very useful are listed below. These strategies are essential to help you achieve in the course.
In order to apply your creativity in your design, the first step is to understand the type of the function. Most commands can categorize into the groups of list, number, string, function, boolean and image. By understand the contract, we will get a comprehending regarding what type of input is required to the gets the result that we want. For example:
In this case, the input is a number, and the output is an image.
Another advice that helps to get more flexibility in your design is Conditional function. Conditional function is a useful tool that enables you to set up a unique computational action and selectively evaluate the answer based on the condition you set.
If (Boolean Condition) then(consequent)
To analyze it, if you get #true, then run the consequent. Else, run the alternative. Conditional statement helps to achieve a causational logic pattern in your design.
In this case the Boolean condition is (list? x), if the input x is a list, then the consequent is 2, otherwise it will be 1.
First and foremost, PRACTICE is the key to success in this course. Test questions are usually based on the exercises that were given by the professor. Practice the exercise over and over will get you familiar with the format of the test while enhancing your speed of writing (the time for the test is very tight).
Secondly, I would strongly suggest the new students make a good use of the “step” command. This is a very useful tool that helps you understand the intermediate steps. Throughout the term, I always use steps to understand the correlation between each part and how each step get to another.
Lastly, get extra help. School provided lots of academic resource and helping room to the student, such as Office hour, Piazza etc. These support will be beneficial for new student to tackle some problems at the beginning stage.