Notes on the First Draft of My Thesis
It's been a long, long while, haha. I've been buried in English exams and writing my thesis, and my head has been spinning. Finally caught a break today, so let me knock out a quick post and recap how the first draft went.
1. Overview
Big picture, my thesis draft has roughly seven sections.
# Abstract
A brief intro to the background, goals, methods, key results, and conclusions of the research.
# Chapter 1 Introduction
## 1.1 Research Background
Why this topic was chosen — the background and reasons.
## 1.2 Research Significance
The scientific significance and practical value of the topic.
## 1.3 Research Status at Home and Abroad
Current progress in this field, both domestically and abroad, and the open problems.
## 1.4 Research Content and Technical Roadmap
Outline of the main content, methods, and technical path.
# Chapter 2 Technical Background
## 2.1 Development Languages
The main programming languages used in the project.
## 2.2 Development Tools and Environment
The tools and software environment used during development.
## 2.3 Related Technical Standards and Protocols
Technical standards and network protocols relevant to the project.
# Chapter 3 Requirements Analysis
## 3.1 Functional Requirements
A detailed description of what the system should do.
## 3.2 Non-functional Requirements
Performance, security, and other requirements.
# Chapter 4 System Design
## 4.1 System Architecture Design
The overall architecture and how components are split up.
## 4.2 Database Design
Database structure and design rationale.
## 4.3 Interface Design
Internal and external interface design.
# Chapter 5 System Implementation
## 5.1 Development Environment Configuration
The specific environment setup for development.
## 5.2 Implementation of Main Modules
How each module was actually implemented, and what came out of it.
# Chapter 6 System Testing
## 6.1 Testing Strategy
The overall strategy and approach for testing.
## 6.2 Test Cases and Results
Specific test cases and their results.
# Chapter 7 Conclusion and Outlook
## 7.1 Summary of Research Outcomes
The main results and innovations.
## 7.2 Limitations and Future Work
Where the research falls short, and where it could go next.
# References
All references cited in the paper.
# Acknowledgments
Thanks to the people and organizations who helped during the research and writing.Every school is a little different, so I'm just using mine as an example. Have a look. The rough word count is around 15k characters, but somehow I ended up with 25k — probably went a bit hard with the prompts, haha.
2. Tips
A quick word on what each section needs, again using mine as the example.
Use an object-oriented writing style: outside of Acknowledgments, do not use first-person "I" or "we" anywhere. Replace with "the author", "this system", "people". The thesis should be primarily prose; figures, tables, and code are supporting material.
In other words, you can't write "I", "my", "we" — replace them all with "this system", "this thesis", "this project", and so on. Don't forget.
There's a lot of content, ugh, but those are roughly the pieces. You'll also need a bunch of diagrams: use case diagrams, class diagrams, sequence diagrams, package diagrams, and so on. I learned them on the fly — looked up the definitions, then drew them in draw.io. Some I did in processon. Both are pretty solid.
For some diagrams, you'll need to coach your prompt (ps: you know what I mean). Tell it what should look like what, what symbols mean what — for example, a flowchart needs a start and end, export it as plantUML or whatever. After a few rounds of training, it gets the idea.
3. Plagiarism Checking
- paperYY
- WeiPu
- CNKI
- WanFang ...
You can try any of these. A lot of them give you a free first run, so you can take advantage of that — definitely enough for a first draft. Refine later.
4. Some Detours I Took
People plant trees so future generations can sit in the shade. Early on, I put the frontend and backend project in one repo and tried to learn NestJS while building it. Progress was painfully slow. So my advice: don't try to learn and build at the same time. Otherwise, the whole thing stays a fantasy.
For undergrads, I also wouldn't recommend writing an algorithms-research thesis. I'm in software engineering, and there are a lot of reasons — hard to draw diagrams for it, hard to fill out the content, etc. (Doesn't apply to the heavy hitters — I'm only talking about beginners like me.)
5. Closing
Conservation of energy, I guess. Anyway, I finally got a rough draft out of it; the rest is slow polishing — same as writing code. I hope everyone reading this graduates smoothly and lands a job they're happy with.
Not sure how many more years I'll be writing code (### ………………)
