Wednesday 15 February 2017

CSC318 Blog3

Object: Supreme website
It is the official website of supreme, it looks very cool by just looking at its design. However, the user experience is actually very bad, especially for new user.
Disadvantage: 
1. the background of the web page is white, and the option button is very small and light at the bottom of the page, it is hard to see it and easy to miss it. 
2. in the middle of the page, there are many pictures that links to different category. It is hard to tell which category it is linking to by just looking at the picture, especially for new user. 
3. after clicking into the link, it is redirected a new page that contains the product, however, this category contains many different items, and you can only go through each item by clicking the arrow at the right end conner, and there is no other way to skip the product I don't need, Moreover, for some product, it contains multiple pictures of different angle, it is inconvenience for user to skip over those if they don't want to look specific product.
4. There are not many description on the product.

Experience:
It takes me sometime to find the page of where the product is listing. In addition, after finding the product page, I was looking for looking at the T-shirt of this brand, but it takes me clicking half of the link to find the T-shirt pages because it only contains pictures and nothing else. And I was tired by clicking the next arrow to go over all T-shirt to find the one I want.

Improve:
1. Making the font bigger and clear
2. Adding title of reference beside the picture(example: naming each category beside the picture)
3. Adding the feature of convince searching(example: keyword searching or put all pictures at once and make it smaller so that user can get the product they want faster)
4. Adding more description of the product


Bibliography:
1. http://www.supremenewyork.com/previews/springsummer2017
2. http://www.supremenewyork.com/previews/springsummer2017/t-shirts/sade-tee

Thursday 2 February 2017

CSC318 Blog2

Product: Beats studio wireless 

This is beats studio wireless which everybody is familiar, it is using bluetooth to complete the remote control, one very cool feature is that you can answer the phone by pressing the b button 
Disadvantage: answering phone call without clicking b button will result in disability
Experience: it is a good feature that you can answer the phone my simply clicking the b button, but if you are playing on your phone and phone call comes in, it will be human's first intention to answer the phone by accepting the phone call on the phone instead of clicking the b button. And the head phone will end up with loosing its microphone feature, and you have to disconnect it and reconnect it again.
Improve: it can be improved by upgrading the functionality so that it can support both b button feature and answering phone call on the phone.

Thursday 19 January 2017

CSC318 Blog1



Product: Apple 45W MagSafe 2 Power Adapter


Design:The power adapter actually has a very good design on collecting the cables, it has designed a cable holder so that the cable can be wound neatly around itself. 
Advantage:it is convenience for taking out and the cable holder prevents cable for rolling knot

Disadvantage: the cable is easy to get broken and the only way to repair it is to change the entire power adapter
Experience: The design of cable holder is actually very good,  cable can easily get broken or roll knot without wounding. However, even though this design has reduced the broken rate of the entire cable, damage still occurs on the cable near the MagSafe. And it cannot be repaired by just changing the cable, it is very bad user experience since the Power Adapter is 100$.
Improve: it can be improved by 1. making the quality of the cable better, such as using better materials or making the cable thicker on the easier broken part. 2. it can use the same design as the IPhone adapter, such as separating the power adapter and the cable into two part, so that user only needs to change a new cable instead of buying a new adapter  

Monday 6 April 2015

Last impressions

CSC148 offers me an opportunity to study more deep in the filed of computer science. At the beginning of the course, we have done some reviews on class, which is the main focus in this course. To be more precise, special methods are the most fundamental methods in class, it includes __init__, __str__, __eq__. In addition, you can also define other method by yourself. Moreover, there are parent class and children class. Children will inherit everything from Parent class and it will also have its own method because there will be different cases in each children class. For example, in the parent class employee, there are hourly employee:
    def amount_of_pay(self):
        """
        (Employee) -> number
        
        Return the amount that this Employee should be paid in the next
        pay period.
        
        >>> e = HourlyEmployee(23, 'Barney Rubble', 333333333, \
        'weekly', 1.25)
        >>> e.log_hours(15)
        >>> e.amount_of_pay()
        18.75
        """

        return self.not_yet_paid * self.hourly_wage

and salaried employee:

    def amount_of_pay(self):
        """
        (Employee) -> float
        
        Return the amount that this Employee should be paid in the next
        pay period.
        
        >>> e = SalariedEmployee(14, 'Fred Flintstone', 454121883, \
        'weekly', 5200)
        >>> e.amount_of_pay()
        100.0
        >>> e = SalariedEmployee(99, 'Mr Slate', 999999999, 'monthly', \
        120000)
        >>> e.amount_of_pay()
        10000.0
        """
        
        if self.pay_period == "weekly":
            return self.annual_salary / 52
        else:
            return self.annual_salary / 12
In this two example method, they are paid differently. Therefore, different methods are applied to them separately. 

Abstract data type is one of the most important knowledge we study in CSC148. To begin with, we have studied stack, queue, and tree. The main difference between stack and queue is the data in stack is last in, but first out. Instead, the data in queue is last in, and last out. Furthermore, tree is different from stack and queue. To start with, Tree is constructed by nodes, and each node has its own children nodes, and in the end, it just grows like a tree. Additionally, there are different kinds of tree, such as binary tree and binary search tree. Binary tree is a tree with only left and right children nodes instead of multiple of nodes while binary search tree is the same structure with binary tree, but its left children is always less than its parent node, and right children is always greater than its parent node. 
Moreover, recursion is frequently used in Tree, because the construction of tree is similar to n(n-1)(n-2)...*3*2*1. To be more precise, we need to traverse each children when we are trying to search data in the tree, it is like we are going through the tree one and one step down. And lastly, we have learned big-oh notation (f in O(g)), which means f grows no faster than g, for example, n^2+1 is growing the same as n^2 -10000000, because constant becomes very small when n is huge, and we only need to look at the highest power. 
In conclusion, CSC148 benefits me a lot, and I have learned a lot of knowledge in python so that I am able to write some very simple game such as subtract square. I love programming and CSC148

Sunday 5 April 2015

Revisit an earlier SLOG

I have revisited my slog about Tree, and I agree my analysis  about Tree. To begin with, I understand tree is constructed by multiple of nodes, and in order to traverse, we have to understand the use of recursion first. To start with, the most basic example of recursion is factorial. The fundamental concept of factorial is n(n-1)(n-2)(n-3)......*2*1. Similarly, traversing each children of each nodes is like the process of factorial. Therefore, we can apply recursion in the programming of Tree. In addition, there also different kinds of tree, such as Binary search Tree, which makes sorting and searching faster because it only has left children and right children, and the left children is always smaller than its parent node while the right children is greater. In conclusion, the concept of Tree is pretty straight forward, but the only trick thing is to understand the process of recursion. Firstly, you have to implement the base case of the stop of the recursion, and then you need to write the code for the first few step. And finally, you just need to apply recursion over it. Eventually, Tree becomes easier after you fully understand the concept of recursion.

Tuesday 31 March 2015

Slog 8

week9's topic is about inserting on Binary search Tree. To begin with, Binary search tree is a very special abstract data type, because the data in binary search tree is sorted. To be more precise, numbers on left children nodes are always less than their parent nodes and numbers on right children nodes are always greater than their parent nodes. Therefore, it makes easier for computer scientist to insert numbers into binary search tree. Firstly, we need to compare the number we want to insert with the number in the parent node, if the number is less than the number in the parent node, we will insert our number at the left hand side and running recursion on it, otherwise right hand side. As a result, it reduces the running time of inserting function and it will be a very useful method in the future.

Slog 7

week 8's topic is about linked list, which is another abstract data type. To begin with, linked list has some similarity to tree, which are linked is also contract by numbers of node and it is used to store data. However, the construction of linked list is different from tree. Firstly, instead of left and right children, linked list has front and back nodes. To be more precise, self.front refers to the entire linked list. In addition, self.nxt is needed to implement in order to have accesses on the next node. In conclusion, linked list is also one of the most important abstract data type in the study of computer science.