Reference
Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). "Introduction to Algorithms." MIT Press.
Abelson, H., Sussman, G. J., & Sussman, J. (1996). "Structure and Interpretation of Computer Programs." MIT Press.
Sedgewick, R., & Wayne, K. (2011). "Algorithms." Addison-Wesley Professional.
Bona, M. (2006). "Introduction to Enumerative Combinatorics." McGraw-Hill Education.
Baidu."计算思维".www.baidu.com
This is something I want to talk about the computational thinking.
Before starting this course, I dedicated three years of my career to working as a back-end development engineer in China. During this time, computational thinking played a central role in my professional journey. The critical domains of computational thinking that found application in my previous work can be categorized into the following modules:
Problem Decomposition and Modularization: I consistently excelled at breaking down complex challenges into manageable components, adopting a modular approach to development.
Data Abstraction and Database Design: I honed my ability to abstract data and design efficient database structures for the effective handling of information.
Algorithm Design and Performance Optimization: Crafting effective algorithms and fine-tuning performance were essential facets of my responsibilities.
Automation and Scripting: Automation and scripting became indispensable tools for streamlining processes and enhancing efficiency.
Security and Error Handling: My commitment to prioritizing security considerations and implementing robust error-handling mechanisms strengthened the systems I worked on.
Computational thinking not only expedited my coding process but also instilled a sense of standardization, fostering sound programming practices. Transitioning to the role of project leader, I harnessed computational thinking during the construction of Spring project frameworks and database design. This approach empowered me to develop high-performance, automated, and scalable projects, effectively reducing subsequent maintenance and optimization costs.
Furthermore, the influence of computational thinking on my ability to learn various programming languages became strikingly evident. Equipped with a strong foundation in computational thinking, I found it more accessible to comprehend the logic and master different programming languages. For instance, my initial expertise was primarily in Java. However, collaboration with front-end engineers highlighted the need to expand my knowledge to include front-end languages (HTML, CSS, JavaScript) to expedite issue resolution within our projects. Proficiency in multiple languages in a professional setting significantly bolstered teamwork and expedited work efficiency.
Beyond the confines of computer science and software development, I firmly believe that computational thinking has widespread applicability in daily life and the professional realm. This newfound perspective has empowered me to navigate the intricacies of everyday life with greater organization, enhancing my overall sense of fulfillment.