USTC Advanced Software Engineering Courses: A Learning Experience

USTC Advanced Software Engineering Courses: A Learning Experience

Directory Navigation

As I reflect on my journey through the USTC advanced software engineering courses, I am reminded of the importance of applying systematic, standardized, and quantifiable approaches to software development and maintenance. In this article, I will share my experiences and insights gained from these courses.

Understanding Software Engineering

Personally, I believe that software engineering is about using project ideas to write code that is efficient, effective, and easy to maintain. It’s not just about writing good code, but also about improving development efficiency and reducing the cost of the development team. In the past, I focused on algorithm complexity, but I now realize that software engineering ideas are essential for writing high-quality code.

2 Courses of Harvest

This semester, I took senior software courses that were divided into online and offline components. The online courses were designed to learn software engineering ideas and apply them to real-world problems, rather than relying on outdated textbooks. I found that the online learning course played a crucial role in consolidating my understanding of software engineering concepts.

Test Report and Directory

Here are the experiment topics, content, and report links:

  • Experiment 1: Familiar Linux Experimental Environment
    • Write a hello world applet to understand basic operations under Linux.
    • Lab report written in markdown.
    • Report Link
  • Experiment 2: Code Style Guide
    • Command Line menu applet V1.0 (code style specification).
    • Report Link
  • Experiment 3: Basic Modular Design
    • Internal modular command-line menu applet V2.0 (KISS, do not talk to strangers principles).
    • Report Link
  • Experiment 4: Interface Design of Reusable Modules
    • With reusable modules to achieve the command line list menu applet V2.5.
    • Report Link
  • Experiment 5: Reusable Design Interface Module (Callback Function)
    • Callback list with modules to achieve enhanced command-line menu applet V2.8.
    • Report Link
  • Experiment 6: Reentrancy (Reentrant) and Thread-Safe Analysis Functions
    • Thread-related knowledge and learning, the relationship between the weight function into sex, and both thread-safe, thread handling security issues.
    • Report Link
  • Experiment 7: Reusable Subsystem Design
    • The menu is designed to be reusable subsystem.
    • Report Link

Summary Experience

Software engineering is a systematic, standardized, and quantifiable approach to software development and maintenance. It’s not just about writing good code, but also about improving development efficiency and reducing the cost of the development team. I learned that software engineering is a very practical subject that requires a lot of practice to perceive and understand. By learning software engineering, I can avoid taking detours and improve my code quality.

Meng teacher said, “Continue to write code for a small run of iterations, Rome was not built in a day.” This phrase touched me deeply, and I realized that software engineering is a subject that requires continuous practice and improvement. I also learned that we need to study software engineering from a higher level to look at the code and improve its quality.

By CS Happy Sword

This article is a learning experience from my journey through the USTC advanced software engineering courses. I hope that my experiences and insights will be helpful to others who are interested in software engineering.