In the second week, I have learned about the differences between ADTs, and my knowledge based on ADTs have been enriched after the lab. I have noticed that stacks are in reverse order comparing to list, and sets cannot have duplicate elements within. These different characteristics help different situations in programming. For example, stacks are more convenient if we wanted to add objects from the "bottom" so the last object will always be "on top" etc.
In the third week, the lab had helped me understand the concept of stacks better, as well as how to improve the efficiency of a program. The most interesting part of the lab was that I was able to write out a queue class and was able to learn the difference between that and sets/lists. Queue has a much much more powerful interface for programmers to use. For example you can set the maximum of a queue, and lists grow until you run out of memory.