- test first, test during, test after, test, test, test
- when designing algorithms, demand the weakest capabilities (e.g. iterable vs. indexable)
- when designing containers, provide the strongest capabilities (e.g. indexable vs iterable)
- build decorators on top of containers, iterators, and functions
- utilize the benefits of being lazy (i.e. yield)
- always look for reuse and symmetry in your code
- collaboration is essential to the quality of your code and to your well-being in producing it
How well do you think the course conveyed those takeaways?
I think that the course did convey the takeaways very well. They were all covered and they were taught in a way so that it was easy for us to understand. One of the main key takeaways is the collaboration with your teammates because all of you need to be in the same page so that you and your team can succeed.
Were there any other particular takeaways for you?
For me, it was how Python is very useful and you can do so many things that languages like Java would never let you do. It actually blew my mind. It is very straightforward. The professor really did a great job on showing us the power of Python.
How did you feel about two-stage quizzes and tests?
I felt like it was a great idea in the sense that if you don’t do very well on the individual part of the test, your grade can be saved when doing the test with your group, since 5 heads are better than 1. It was also a great way to learn how to deal with questions that you had trouble with.
How did you feel about cold calling?
Coming from an introvert, I don’t like cold calling, but it’s understandable since it helps us be on our feet in class the whole time and forces us to pay attention so that we don’t look silly when called.
How did you feel about office hours and lab sessions?
They were helpful. They really helped when first setting up our projects, especially the IDBM project. It helped a lot when learning about API testing, frontend and backend stuff. Learning how to use Postman and it’s function was really helpful.
Give me your suggestions for improving the course
I felt that when doing the tests, some of the instructions of the questions were vague that sometimes they were difficult to understand. That won’t allow us to come up with the desired implementation. There was also a huge disconnect between the class and the project. I felt that there was no actual software engineering taught. This class was just a Python, SQL, and Java crash course.
To future students:
This is a good class, it is not hard, and you will learn a lot from it. On the contrary, this class may not be what you expect. If you thought that by taking this class you would learn how to make a device application, this is not the class for you. This class is mostly Web Development. Besides that, the proffesor and TA’s are friendly.