《程序设计基础教程与实训》
核心理念
本课程旨在培养学生计算思维和编程实践能力,我们不仅教授一门编程语言的语法,更重要的是引导学生理解程序是如何工作的,如何将现实世界的问题分解为计算机可以执行的步骤,并最终通过代码优雅地解决问题。

第一部分:程序设计导论
第1章:欢迎来到编程世界
- 1 什么是程序?
- 程序的定义:指令的集合。
- 程序与软件、算法的关系。
- 2 为什么学习编程?
- 培养逻辑思维和解决问题的能力。
- 自动化重复性工作,提高效率。
- 创造新工具、新应用,实现创意。
- 3 程序是如何工作的?
- 计算机基本组成:CPU, 内存, 硬盘, 输入/输出设备。
- 编程语言:人机沟通的桥梁(低级语言 vs. 高级语言)。
- 程序的执行:编辑 -> 编译 -> 运行。
实训1:搭建你的第一个开发环境
- 目标: 成功运行第一个程序,建立对编程的直观感受。
- 选择一门入门语言(推荐 Python 或 C++)。
- 安装语言解释器/编译器。
- 安装代码编辑器(如 VS Code, PyCharm)。
- 编写并运行
Hello, World!程序。 - 小练习: 修改输出内容,打印出自己的姓名和学号。
第二部分:编程核心基础
第2章:变量、数据类型与表达式
- 1 变量:数据的容器
- 变量的命名规则与规范。
- 变量的声明、赋值与初始化。
- 2 基本数据类型
- 数值类型: 整型, 浮点型。
- 字符类型: 字符串。
- 布尔类型:
true/false。
- 3 常量
常量的概念与使用场景。
- 4 运算符与表达式
- 算术运算符: , , , , , , 。
- 赋值运算符: , , 等。
- 关系运算符:
>,<, , 。 - 逻辑运算符:
&&(and), (or), (not)。 - 表达式与优先级。
实训2:简单的计算器
- 目标: 掌握变量、数据类型和基本运算符的使用。
- 编写程序,提示用户输入两个数字和一个运算符(, , , )。
- 程序根据输入的运算符计算并输出结果。
- 扩展: 处理除数为零的情况,使用
if语句。
第3章:流程控制:让程序“聪明”起来
- 1 顺序结构
程序默认的执行方式。
- 2 选择结构
if语句:单分支、双分支、多分支。switch语句(或类似结构):多路选择。
- 3 循环结构
for循环:明确循环次数的场景。while循环:条件驱动的循环。do-while循环(至少执行一次)。break和continue的使用。
实训3:猜数字游戏与成绩分级
- 目标: 熟练运用选择和循环结构解决实际问题。
- 任务1(猜数字): 程序随机生成一个1-100的整数,用户输入猜测的数字,程序给出“大了”、“小了”的提示,直到猜中为止。
- 任务2(成绩分级): 输入一个学生的百分制成绩,输出其对应的等级(A: 90-100, B: 80-89, ...)。
- 扩展: 使用循环处理多个学生的成绩。
第4章:函数:模块化编程的开始
- 1 为什么需要函数?
代码复用、模块化、提高可读性。
- 2 函数的定义与调用
- 函数名、参数列表、返回值类型、函数体。
- 值传递与引用传递(初步概念)。
- 3 函数的作用域
局部变量与全局变量。
(图片来源网络,侵删) - 4 递归入门
- 递归的基本思想:函数调用自身。
- 经典案例:计算阶乘、斐波那契数列。
实训4:数学库与自定义函数
- 目标: 理解函数的作用,并能编写和调用自定义函数。
- 使用语言自带的数学库函数(如
sqrt(),pow())。 - 任务1: 编写一个函数,判断一个数是否为素数。
- 任务2: 编写一个函数,计算一个数组(或列表)中所有元素的平均值。
- 任务3: 用递归方式重写阶乘函数。
- 使用语言自带的数学库函数(如
第三部分:数据结构的基石
第5章:数组:批量数据的存储
- 1 数组的概念
相同类型数据的集合,通过索引访问。
- 2 一维数组
声明、初始化、访问、遍历。
- 3 二维数组
- 理解为“数组的数组”,用于表示表格数据。
- 声明、初始化、访问、遍历。
实训5:学生成绩管理系统(V1.0)
- 目标: 综合运用数组、循环和函数处理批量数据。
- 使用一维数组存储一个班级学生的成绩。
- 实现功能:
- 输入多个学生的成绩。
- 计算并输出平均分。
- 找出最高分和最低分。
- 将所有成绩排序(从高到低或从低到高)。
第6章:字符串处理
- 1 字符串的表示
字符串与字符数组。
- 2 常用字符串操作
- 求长度、连接、查找子串、截取子串、替换。
- 字符串与数值类型的转换。
实训6:文本信息处理
- 目标: 掌握字符串的基本操作。
- 任务1: 输入一个英文句子,统计其中单词的数量。
- 任务2: 实现一个简单的密码强度检查器(检查是否包含数字、大小写字母)。
- 任务3: 编写一个函数,反转一个字符串。
第四部分:进阶主题与项目实战
第7章:指针与内存管理 (C/C++ 特有,Python 等语言可简化为引用概念)
- 1 指针是什么?
- 内存地址的概念。
- 指针变量的声明与使用。
- 2 指针与数组
通过指针遍历数组。
- 3 动态内存分配
malloc/free(C) /new/delete(C++)。- 为什么需要动态分配?(数组大小不确定时)
第8章:结构体:构建自定义数据类型
- 1 结构体的概念
将不同类型的数据组合成一个整体。
- 2 结构体的定义与使用
定义结构体类型,创建结构体变量,访问成员。
实训7:完善学生成绩管理系统(V2.0)
- 目标: 使用结构体和指针重构系统,使其功能更强大。
- 定义一个
Student结构体,包含学号、姓名、成绩等信息。 - 使用结构体数组存储学生信息。
- 实现更复杂的功能:
- 按学号查找学生。
- 添加新学生。
- 删除指定学生。
- 将学生信息保存到文件,并从文件中读取。
- 定义一个
第9章:文件操作
- 1 为什么使用文件?
数据持久化。
- 2 文本文件操作
- 打开、关闭、读取、写入文件。
- 文件流的概念。
第10章:项目实战:一个完整的命令行应用
- 目标: 综合运用所有所学知识,独立完成一个有实际意义的项目。
- 项目示例(三选一):
- 简易通讯录: 实现添加、删除、查询、显示所有联系人信息,并能保存到文件。
- 图书管理系统: 管理图书信息(书名、作者、ISBN、库存),实现借阅、归还、查询功能。
- 贪吃蛇 / 井字棋等小游戏: 使用控制台绘制界面,实现核心游戏逻辑。
第五部分:总结与展望
第11章:程序设计的最佳实践与职业发展
- 1 代码风格与规范
命名规范、注释、缩进。
- 2 调试与测试
- 常见错误类型(语法错误、逻辑错误、运行时错误)。
- 单元测试的基本思想。
- 3 版本控制入门
为什么需要 Git / SVN。
- 4 从“基础”到“精通”
推荐后续学习方向:数据结构与算法、面向对象编程、Web开发、移动开发等。
教学建议
- 语言选择: Python 语法简洁,适合入门,能让学生快速聚焦于编程思想而非复杂语法。C++ 更贴近底层,能让学生对内存、指针等概念有更深刻的理解,是计算机科学的经典入门语言,可根据教学目标选择。
- “教”与“练”结合: 每个理论章节后必须紧跟实训环节,理论讲解占 40%,代码演示和动手练习占 60%。
- 鼓励探索: 鼓励学生在完成基本任务后进行“扩展”练习,激发他们的好奇心和创造力。
- 项目驱动: 以最终的项目为导向,将前面的知识点串联起来,让学生在“做”中学,体会完整的项目开发流程。
- 社区与资源: 引导学生利用 Stack Overflow、GitHub、官方文档等资源,培养自主解决问题的能力。
