This class was tough.
Professor Bari is extremely knowledgeable and probably overqualified to be a professor of introductory level data structures. Although he was very busy and involved in his own projects and career, he not only made sure to allocate sufficient time to help students outside of class, but really pushed everyone to come to him for help. The assignments were tough and took many hours to complete but you never left his office without a better understanding or completing that which you might have been stuck on. The class was organized in a manner that facilitated a lot of conceptual learning in addition to coding exercises and project. This way made it much more clear as to how you begin to solve a problem and why different methods are appropriate or efficient. Even if you are not sure about how to write a certain code, you are never lost in the sense of understanding what SHOULD be done.
Topics of this course included binary search trees, linked lists, sorting algorithms and vector operations. I am not the best at software coding, but I learned a great deal about how programs are constructed to carry out specific operations, the efficiency of various functions, and many real world applications of the operations. You even learn about how facebook and other social media basically structures their source codes in order to create the interface and it's many properties that we are all accustomed to.
Hours per week:
Advice for students:
Focus more on the concepts than on writing the codes. You need to be able to do both, but if you really understand what is going on in a program then it will make construction of the code much easier and clear. Don't hesitate to use other peoples codes as reference from the internet. A lot of the things you use are fundamental functions that can be manipulated in various ways and it can be helpful to see how others have incorporated them into different programs. If office hours are available, attend them! Especially with professor Bari this could prevent several unnoticed mistakes or flaws of logic when you work on your assignments.