
01

Basic Information

02

Course Introduction
“Introduction to Programming Fundamentals (C Language)” is an important foundational course for the Geographic Information Science major. This course focuses on the basic syntax of C language, principles of program compilation, and debugging methods, guiding students to become familiar with commonly used development tools. The specific course content is as follows:
In the process of learning programming, systematically studying the basic syntax of C language is the cornerstone of building programming skills. Students need to master core knowledge points such as data types (e.g., integer, floating-point, character types), variables and constants, operator precedence, control structures (sequential, branching, looping), function definition and invocation, pointer operations, structures and unions, and file operations. Through case analysis and experimental practice, students will strengthen their understanding of syntax rules, laying a solid foundation for further learning.
After mastering the syntax system, the course will further guide students to understand memory management mechanisms, pointer and address operations, and binary complement storage, cultivating students’ sensitivity to program operation mechanisms, helping them grasp the essence of syntax rules, and aligning their programming thinking closer to the underlying logic of computers. Based on the dual accumulation of syntax knowledge and underlying principles, the course will also teach code optimization strategies, including reducing time complexity, minimizing memory usage, and improving program robustness, assisting students in enhancing their programming skills.
03

Course Textbook

“C Programming (5th Edition)”
Authored by Tan Haoqiang, published by Tsinghua University Press
04

Recommended Reading

“C++ Primer”
Authored by Stanley B. Lippman, Barbara E. Moo, Josée Lajoie, translated by Wang Gang, Yang Jufeng, published by People’s Posts and Telecommunications Press

“C++ Essence Software Engineering Methods”
Authored by Victou Shtern, translated by Li Shixian et al., published by Machinery Industry Press
Students with a certain foundation can delve into the following extracurricular readings:

“Programming Master Maxims”
Authored by Liang Zhaoxin, published by Electronics Industry Press

“Self-Cultivation of Programmers”
Authored by Yu Jiazi, Shi Fan, Pan Aimin, published by Electronics Industry Press
05

Learning Suggestions
To cultivate programming thinking, it is not enough to rely solely on theoretical learning; practical exercises are also necessary. In daily learning, students should focus on code writing training and are encouraged to participate in teams to develop more complex projects to enhance their comprehensive programming abilities. After class, it is essential to review and consolidate knowledge points, and during experimental classes, try to complete training independently without relying on textbooks, engaging in more hands-on practice to reinforce learning outcomes.
—— Teacher Luo Wenfei
When learning the course “Introduction to Programming Fundamentals (C Language)”, the most direct form of practical training is through problem-solving exercises. During my high school years, I practiced on the OpenJudge platform, and now there are even more quality programming practice platforms available. When encountering difficult-to-understand code logic, submitting the code to AI tools for understanding and analysis can effectively accelerate knowledge absorption. Especially regarding pointers, which are a core difficulty, I recommend that students delve into Teacher Luo Wenfei’s PPT teaching materials, which not only contain detailed concept explanations but also help establish intuitive understanding through typical examples. This combination strategy of “problem-solving practice + intelligent analysis + targeted breakthroughs” can significantly enhance learning efficiency and build a solid programming foundation.
—— Lin Boyuan, Class of 2023
1. Focus on the classroom: Listen attentively, learn according to Teacher Luo’s ideas, actively participate in class, and think carefully about the questions raised by the teacher.
2. Review after class: Go over the PPT, recall the key points mentioned by the teacher, take good notes, and consolidate knowledge points.
3. Practical exercises: Engage in programming frequently, complete exercises from the textbook and assignments given by the teacher.
4. Communicate with the teacher: Discuss problems with the teacher, seeking programs with the lowest time and space complexity.
—— Li Sijing, Class of 2023
06

Connection to Subsequent Courses
Programming skills are an important foundation for tasks such as geographic information extraction and processing. Only by mastering solid programming skills can one more effectively build geological analysis models for spatial data processing, thereby solving problems in the professional field. As a prerequisite for courses like “Data Structures” and “Geographic Information Services”, failing to solidify programming fundamentals will directly impact the learning effectiveness of core content such as algorithm design and system implementation in subsequent courses.

Text | Huang Dongming
Editor | Zhong Yuhuan
Initial Review | Luo Wenfei, Wan Rongjin
Final Review | Guo Miaoyan
Final Approval | Liu Yungang