2155 words
11 minutes
From a 2.3 to a 3.6 GPA: What I Did
2026-02-05

This article was translated by AI from the Chinese version.#

This post has not been polished by AI. If there are typos or awkward sentences, I may fix them when I feel like it.

Some Random Thoughts#

The title is clickbait, as the subtitle says, but it is true. My 2.3 was the GPA from the second semester of my first year. I had just transferred majors, got a little carried away, and thought I would never need my GPA, so I did not take several classes or finals seriously. My 3.6 is from this semester, the first semester of my second year. It still missed my target by a lot.

I wanted to prove that, if I really wanted something, I could achieve it—even earn a postgraduate recommendation if I chose that path. I hoped for extremely high scores this term, but two or three courses I studied seriously for let me down.

Still, this was the hardest I have worked academically in more than a year of university. I want to record this small moment of glory, and share a few study methods.

There are plenty of university students with GPAs above 4.0, so there is little here to show off. But few people who score well actively share their methods; fewer write those methods into a post, and they may not even be in your major. Besides, although I did poorly in some subjects, I also did well in others. If we ignore the bad ones, every course went great!

Grades

I will not explain how to improve participation grades, nor how to make a physically present body sit in class while the real person is elsewhere.

General Study Method#

I do not think I have special talent for studying. If people spend as much time as I did and use it well, they can probably score well too. I had ten finals because transferring majors added three make-up courses: C Programming Fundamentals, Discrete Mathematics, and Linear Algebra. Students taking fewer courses naturally have more review time per subject.

I cannot learn everything instantly, so I started preparing in week 14, even for material that had not finished being taught. I printed two collections of past papers and eventually completed about half of them.

One paper collection

You can find papers in several places:

  1. Teachers’ DingTalk, QQ, or WeChat groups.
  2. Course materials on the school learning platform.
  3. ZJUT Course Strategy Sharing Project.
  4. Senior students.

For every subject except some ideological-and-political courses, try to get several papers. Senior students are normally happy to help: they were helped by their seniors too.

Unless a review outline genuinely limits the scope of an exam, I do not think it matters much. Online review materials can do the same job. Ideally, finish learning all subjects and reserve a whole week for papers. I only had half a week left because I underestimated how long the Data Structures and Computer Networks course projects would take. Several subjects became one- or two-day cramming sessions, so I did badly in them.

For some science and engineering courses, I self-studied with Gemini, textbooks, and Bilibili videos. My overall review process, apart from two political courses, was:

Do papers, find what I cannot do -> ask Gemini or search Bilibili to learn it -> do related questions again.

Courses Scoring 85 or Above#

I will go from highest score to lowest. I personally do not think anything below 90 is truly good, so treat these mainly as study ideas.

C Programming#

I will skip this one. I only took it as a make-up course after changing majors. For a second-year student, this result was normal—mainly because I barely studied it.

Data Structures — 91#

I was surprised by this score, not because I studied badly, but because the exam was genuinely difficult. The teacher’s mock paper was rather easy; the real paper had roughly twice as many questions. I wrote from the moment I received it until the end, mostly drawing diagrams and handwriting code. I nearly forgot to transfer the multiple-choice answers to the answer sheet, then used all my Gaokao-trained emergency speed to scribble them down. I left with shaking legs and no energy to cycle back to my dorm.

Anyway, here is how I studied it.

Weeks 1–5: Labs Only#

I only followed the labs and did not study separately. Writing data-structure labs yourself is useful because it is real code practice. I spent about 9h, usually one or two hours per lab.

Weeks 6–8: Midterm Preparation#

I studied seriously and got 86 in the midterm. A good midterm is the foundation for a good final: a bad one loses marks, hurts confidence, and creates more review work. I self-studied with the textbook, asked Gemini questions, and practised from Wangdao’s Data Structures book. This took about 9h.

Weeks 9–13#

I barely studied except for labs, and did not even write one or two labs myself. Less than 7h.

Weeks 14–16: Final Review#

Finishing the remaining textbook material took around 9h. I used the textbook plus Gemini for questions, and Bilibili videos.

Recommended data-structure videos

This series is useful because you can learn one knowledge point at a time rather than watching from start to finish, and the animations make data structures easy to understand.

Look at classic examples for each data structure. You do not need to solve every one, but you need to have seen them: problems use technical terms and may ask for something you cannot understand without context. Once you know the required structures and algorithms and have seen examples, the result largely depends on coding ability. Many diagram and code questions can be derived in the exam room. Papers plus review took around 5h.

You can use Wangdao’s postgraduate Data Structures book for the whole review.

University Physics II B — 89#

This was the only course where consistently listening in class and working hard paid off exactly as expected. Data Structures above was a self-study result. I also listened seriously in Discrete Mathematics and Linear Algebra B, but got only 82 and 79, which made me furious at first.

After calming down, the reason was clear: listening in class completed the first step, learning knowledge; it did not complete the second, learning how to solve problems. I had little homework in those subjects, did only one paper for each final, and never reviewed systematically. Knowing something is not the same as being able to score well on it.

Physics had enough regular workbook questions, which made review easy. I had completed one pass by around week 15 and another before the exam. A good plan is to put 80% of your practice into the required workbook, then review it thoroughly. If you cannot solve a question during the term, Gemini 2.5 Pro-level AI can explain it clearly. If you never did the workbook during the term, do papers directly in finals: many workbook questions are difficult or not tested.

Physics is not particularly convenient to self-study. If you must do it, read the book, ask AI, then find matching question types in past papers. At my school, the papers are public and my teacher posted enough on the learning platform. Also, some difficult material from class is not included in the final. In many chapters, only a few core formulas matter; for de Broglie waves, for instance, λ=hp\lambda = \frac{h}{p} may be enough.

Java Programming — 88#

This was a real last-minute breakthrough. ZJUT’s Java exam permits one open-book page. You do not need extremely deep Java knowledge: go through the syllabus or slides, copy what you do not know onto the sheet, then do two papers.

The night before the exam, I studied and made the sheet from 20:00 to 1:30, then read two papers. Final review took 6h, and I had spent about 10h studying during the term.

Handwritten programming questions, especially threads and GUI, are troublesome. Record code patterns for the major question types. My second open-book page covered threads, GUI, and streams/files. Please do not share these pages around if you use them as reference; it is embarrassing when people quote my blog in a live senior presentation.

Java open-book page one Java open-book page two

This year’s programming questions happened to be all handwritten types, with no GUI, so some preparation was unused. That does not mean those topics will not appear next year; past papers show that GUI and threads appear often.

Computer Networks and Data Structures Course Projects#

Computer Networks project: 88. Data Structures project: Excellent (95).

These two projects were hell.

My biggest scheduling failure was not realizing how much time they would consume. Each took nearly two days, enough time to review Java twice. If you read this before finals, allocate time for projects carefully.

For Computer Networks, I built a simulated school campus network in Packet Tracer.

Packet Tracer design

The difficult parts were external/internal connectivity and port mapping. I used NAT, a web browser, port forwarding, DNS, and OSPF, which I thought might earn bonus points. During assessment I explained the design for seven or eight minutes and passed easily. I asked for an Excellent grade, but got 88, probably because my report was weak. If you want a high report score, find a senior’s past report with 95 or above.

For Data Structures, I wrote an AVL-tree library-management system, like more than 90% of the class. The important part is having a distinctive idea that your teacher notices. Mine was multi-level tree comparison—category, then author, then title. Books in the same category and by the same author become naturally adjacent in the data structure without manual sorting. The teacher seemed to like that small innovation.

Mao Zedong Thought and the Theoretical System of Socialism with Chinese Characteristics — 87#

The key here is not doing papers. If you can recite the material, you can earn points. Memorize the focus points the teacher gives; they are usually what will appear. You may find many materials from older cohorts, but one or two supplementary sets are enough. All teachers for my cohort marked ten textbook focus points and three extended points, and they covered around 95% of the exam. For this kind of course, listening in class does not feel very useful for raising scores; the material has to be memorized.

Courses Below 85#

Marxist Theory — 84#

The exam score was probably fine, but my participation score was terrible. One more absence and I would have been barred from the final. I even taught an unprepared roommate to a score in the seventies on the night before the exam, so I think I understood it reasonably well.

Unlike the previous political course, this one is hard to cram. My teacher did not give focus points, and the content forms a connected system rather than isolated facts. You need to understand every chapter that can be examined, then remember it. It requires less pure memorization than other political courses; once you understand it, you mostly know it.

If you cannot bear reading the textbook, try this series:

{An Exhaustive Production} Marxist Philosophy in One Go

That link is only the philosophy section; the creator also has videos on the other parts. My cohort’s exam was entirely long-answer questions, so do not waste time drilling multiple-choice questions that will not appear.

I will skip PE, Probability Theory, and the courses where I did too badly to discuss them.

Computer Networks — 82#

This was probably the hardest course and there was genuinely a lot to learn, so I have little right to complain. There are two common Bilibili choices:

Computer Networks Made Easy

USTC Computer Networking, Top-Down Approach, 7th Edition

Watch the first if you only want a good exam score; watch the second if you want to learn more networking knowledge. I watched the second and spent a lot of time on untested material, but I learned plenty and do not regret it.

Getting Through Final-Exam Weeks#

I can only explain how I got through them. For two weeks, I sat at my dorm computer and studied from close to morning until night, though the intensity was moderate. I am a serious homebody and did not even want to leave the dorm to study.

Studying in my dorm

Two things helped me persist:

  1. Chocolate.
  2. Friends’ company.

For the first, substitute any light snack you love. I ate over 200g of chocolate in two weeks. I normally avoid buying it because I cannot stop eating it, but I temporarily unlocked chocolate as stress relief and somehow did not gain weight.

Chocolate

For the second, my friends and I used NetEase Cloud Music’s Listen Together feature. Thinking of it now still feels warm.

Listening together

Ending#

The strongest feeling I had after finals was:

Young people’s brains work so well!

It is great that I am not old yet. My brain still works, and I can learn many things. I learned ten courses in three weeks; even maintaining 80% of that intensity would be incredible.

So during winter break, I restarted Japanese study and began learning food nutrition. The first is for fun and the second is for a healthy life. After the storm of final-exam month, learning these things feels like only a gentle rain. I have more to say about both, but they do not belong in this already long post, and writing a blog is tiring too. I will stop here.

From a 2.3 to a 3.6 GPA: What I Did
https://zheyi.in/en/posts/misc/semester2term1-final-exam/
Author
Zayee
Published at
2026-02-05