- Level Professional
- المدة
- الطبع بواسطة Peking University
-
Offered by
عن
C#(又称csharp)是一种优秀的面向对象语言,它继承了C++和Java等语言的优点,在Windows图形用户界面、Web应用、数据库等方面有着广泛的应用。本课程在介绍C#语言及面向对象的程序设计基本原理的基础上,使用Visual Studio作为开发工具,介绍C#对各种常见的信息的处理方法,包括文本处理、图形绘制、图像处理、多媒体、网络信息获取、数据库应用等。 课程中除了理论知识外,更注重上机编程实践,程序示例紧密结合日常的学习和工作,生动有趣,难度适中。 本课程要求学习者学过一门程序语言(如C语言等)。الوحدات
1.1 C#与.NET概述
2
Videos
- C#与.NET概述 —— C#为什么这样好
- CLR与IL指令--exe内容是什么
4
Readings
- 学习准备篇--准备教材
- 参考:framework版本
- 网址大放送:学习C#的好去处
- 温馨提示
1.2 C#快速入门
1
Discussions
- 讨论:C#最深的印象
3
Videos
- 三步编写一个程序
- 对象的三要素
- 事件及自动
3
Readings
- 改变文本、位置、颜色
- 两个相同的文本框--找准对象事件是关键
- 我最喜爱的Timer及Random
1.3 基本的应用类型
1
Videos
- 控制台、WinForm 及 WebForm程序的编写
2
Readings
- 控制台程序
- WebForm程序
1.4 基本输入与输出
3
Videos
- 程序中的输入与输出
- 常用的开发工具
- EditPlus的设置
4
Readings
- 控制台的输入与输出
- Winform计算平方根
- 网址:开发工具的下载地址
- 文字版:EditPlus的设置
第1讲小结
3
Readings
- 本周示例中常用一些编程技术
- 本周的Visual Studio使用技巧
- 小结本周的内容
第1讲测验
1
Assignment
- 第1讲测验
第1讲作业
1
Peer Review
- 第1讲作业:简单的程序
2.1 数据类型、变量与常量 —— 语言中的单词
1
Assignment
- 关于数据类型的那些事
2
Videos
- 数据类型分值类型及引用类型
- 几种类型的细节
2.2 运算符与表达式 —— 语言中的标点符号
1
Assignment
- 关于运算符与表达式
2
Videos
- 运算符
- 表达式及类型转换
2.3 流程控制语句 —— 语言中的语句
1
Discussions
- 讨论区:晒晒那些年编程中受的虐
6
Videos
- 简单语句及分支语句
- 做一个屏保程序(使用if)
- 自动出题并判分
- 循环语句
- 角谷猜想(使用while及for循环)
- 画许多圆(使用循环与绘图)
5
Readings
- 分数等级(使用switch语句)
- 屏保程序
- 自动出题并判分
- 角谷猜想
- 画许多圆
2.4 数组 —— 与C语言的数组大不同
1
Discussions
- 热议:第二周你对C#编程的印象是什么?
3
Videos
- 数组的声明与分配空间
- 筛法求素数(使用bool数组)
- 排块游戏(使用按钮数组及其他)
1
Readings
- 筛法求素数
第2讲补充
2
Readings
- 将项目转成低版本的程序,作业互评时可能会用到
- 第2讲讲义
第2讲测验
1
Assignment
- C#语言基础
第2讲作业
1
Peer Review
- 自动出题并判分的改进
3.1 类、字段、方法 —— 面向对象那点事儿
1
Assignment
- 类、字段与方法
1
Discussions
- 讨论提示:如果让来设计一个系统,你怎样设计?
2
Videos
- 类是由字段与方法构成的
- 实战:银行系统(v1)
1
Readings
- 源码:银行系统(v1)
3.2 属性、索引 —— 访问字段能更优雅吗
1
Discussions
- 讨论提示:属性与索引有什么好处?
1
Videos
- 属性与索引
1
Readings
- 用索引取一个记录中的各项
3.3 类的继承 —— 富二代值得羡慕吗
1
Discussions
- 讨论提示:继承的优势,你体会了吗?
1
Videos
- 类的继承
1
Readings
- Student类继承Person类
3.4 修饰符 —— 形容词有大作用
1
Assignment
- 关于修饰符
1
Videos
- 修饰符
3.5 接口 —— 我和她有个约定
1
Discussions
- 讨论提示:interface的含义
1
Videos
- 接口
2
Readings
- Runner/Swimmer(使用接口)
- 显式成员接口实现(较高要求,可选)
3.6 结构及枚举 —— 原来这就是值类型
1
Discussions
- 讨论提示:值类型有必要吗?
1
Videos
- 结构及枚举
2
Readings
- 结构
- 枚举
第3讲小结
1
Readings
- 第3讲讲义
第3讲测验
1
Assignment
- 面向对象的C#语言
第3讲作业
1
Peer Review
- ATM示例程序的改进
4.1 委托 —— 函数也能当变量
1
Discussions
- 讨论提示:委托与C语言中的函数指针相比有什么好处?
1
Videos
- 委托
3
Readings
- 求函数积分
- 函数绘图
- 委托的多播
4.2 事件 —— 悄悄的告诉你
1
Discussions
- 讨论提示:事件的必要性
1
Videos
- 事件
1
Readings
- 下载时发出事件
4.3 Lambda表达式 —— 简洁到了极致
1
Discussions
- 讨论提示:有关Lambda的印象
2
Videos
- Lambda表达式
- 不同版本C#中的委托与Lambda
1
Readings
- Lambda及相关的写法
4.4 *运算符重载(可选学) —— 原来函数可以写成一个符号
1
Videos
- 运算符重载
1
Readings
- 复数的运算重载
4.5 异常处理 —— 麻烦总有人帮着解决
1
Videos
- 异常处理
1
Readings
- 银行系统内部异常
4.6 * C#语言中的其他成分(可选学)
3
Videos
- Attribute
- 其他成分
- 程序的组织
2
Readings
- Attribute定义及使用
- 指针,久违了!
4.7 语法总结 —— C#主要就是类型及其成员
1
Videos
- 语法总结
1
Readings
- 第4讲小结
第4讲测验
1
Assignment
- C#语言高级特性
第4讲作业
1
Peer Review
- 再次改进“银行系统”
5.1 DotNet基本类库 —— 要编程需要知道这些
1
Videos
- DotNet基本类库
5.2 类型转换 —— 一切皆是类型
1
Videos
- 类型转换
5.3 数学、文字、日期 —— 最常用的类型
1
Videos
- 数学、文字、日期
5.4 数组、集合、泛型 —— 在这里真的见到索引器了
1
Videos
- 数组、集合
4
Readings
- 使用List
- 使用Hashtable
- 排序
- 与集合相关的接口
5.5 遍试算法 —— for中用if
1
Discussions
- 讨论提示:遍试算法来解决这几个问题
3
Videos
- 算法的特点
- 遍试算法
- 验证哥德巴赫猜想
5
Readings
- 韩信点兵
- 水仙花数
- 完全数
- 相亲数
- 验证哥德巴赫猜想
5.6 迭代算法 —— while中用a=f(a)
1
Discussions
- 讨论提示:在倍边法求Pi的示例中,将10改为100,求出来值反而是0?
1
Videos
- 迭代算法
2
Readings
- 平方根
- 倍边法示Pi
5.7 递归算法 —— f(n)中调用f(n-1)
1
Discussions
- 你还在哪里用过递归算法?
2
Videos
- 递归算法
- 画树
4
Readings
- 求阶乘
- 走台阶问题
- 画树
- 画出不同的树
第5讲小结
1
Videos
- 3种常用算法的小结
1
Readings
- 第5讲讲义
第5讲测验
1
Assignment
- 基础类及常用算法
第5讲作业
1
Peer Review
- 关于画树例子的改进
6.1 IO及文件管理 —— File及FileInfo
1
Videos
- IO及文件管理
2
Readings
- 递归列出所有文件ListAllFiles.cs
- 监视文件的变化Watcher
6.2 文件内容的读写 —— Stream
1
Videos
- 文件内容的读写
4
Readings
- 写日志文件(文本文件的追加)
- 给源程序加上行号(读文件、处理、写文件)
- 读取BMP文件并显示(二进制文件的读取)
- 序列化示例
6.3 补充:注册表操作(可选学)
1
Videos
- 注册表操作
1
Readings
- 注册表操作
6.4 号外:程序的调试 —— 编程必不可少的手段
4
Videos
- 程序中的错误种类
- 程序调试-----断点、跟踪、监视
- 调试“排块游戏”
- 调试文本文件的读取及处理
第6讲小结
3
Readings
- 第6讲讲义
- 补充示例:Visual Stduio的文件由高版本向低版本转换
- 英语四级单词文本(为本讲作业的素材)
第6讲测验
1
Assignment
- 流、文件
第6讲作业
1
Peer Review
- 背单词程序
7.1 布局与事件 —— 界面的基本问题
1
Videos
- 布局与事件
4
Readings
- 简单的文件管理器
- 简单的计算器
- Anchor与Doc
- 简单的事件
7.2 常用控件
1
Assignment
- 常用控件
1
Discussions
- 讨论:控件的使用经验
1
Videos
- 常用控件
2
Readings
- 几个常用控件的示例
- 几个次常用控件的示例
7.3 窗体
1
Videos
- 窗体
1
Readings
- 多个窗体
7.4 菜单、工具栏、对话框
1
Videos
- 菜单、工具栏、对话框
2
Readings
- 更复杂一点的文件管理器
- 示例:菜单与工具栏应用
7.5 用户控件
1
Discussions
- 讨论:用户控件的使用
1
Videos
- 用户控件
1
Readings
- 七段数码显示
第7讲小结
2
Readings
- 第7讲讲义
- 本节作业中要用到的2048游戏程序的初步版本
第7讲测验
1
Assignment
- 窗体与控件
第7讲作业
1
Peer Review
- 2048小游戏
8.1 绘图基础GDI+
1
Videos
- 绘图基础
1
Readings
- 简单的程序
8.2 绘图对象及绘图方法
2
Videos
- 绘图基本方法
- 一些深入的绘图方法
6
Readings
- 使用Pen
- 使用Font
- 使用Brush
- 画函数图
- 使用Transform
- 使用Path与渐变
8.3 一组漂亮的绘图示例
1
Videos
- 一组漂亮的绘图示例(索引)
5
Readings
- 万花筒
- 太空中的星体
- 夜光钟
- 分形图
- 贱图生成器
8.4 控件的重绘及双缓冲
1
Videos
- 控件的重绘及双缓冲
8.5 图像处理
1
Videos
- 图像处理
4
Readings
- 生成缩略图
- UnsafeBitmap
- 简单图像处理
- 更全面的图像过滤器
第8讲小结
1
Readings
- 本章讲义下载
第8讲测验
1
Assignment
- 绘图及图像
第8讲作业
1
Peer Review
- 公章或搞笑证书生成器
9.1 基于文本的应用
1
Videos
- 基于文本的应用
9.2 正则表达式
2
Videos
- 正则表达式
- 播放歌曲显示歌词
4
Readings
- 正则表达式查找电话号码
- 正则表达式常见用法
- 源代码:播放歌曲显示歌词
- 一个调试正则表达式的工具Expresso
第9讲小结
1
Readings
- 第9讲讲义
第9讲测验
1
Assignment
- 文本处理及正则表达式
第9讲作业
1
Peer Review
- 身份证输入框
10.1 网络信息获取的基本方法
1
Videos
- 网络信息获取的基本方法
4
Readings
- 使用WebClient
- DownloadString
- 猜字符的编码
- 下载网页中的所有图片
10.2 XML基本操作
1
Videos
- XML基本操作
3
Readings
- DOM方式操作XML
- XmlTextWriter
- XmlTextReader
10.3 XPath及Xlst
1
Videos
- XPath及Xlst
1
Readings
- Xlst
10.4 大仕老师编写的一组示例
1
Videos
- 示例索引
7
Readings
- 显示纸白银价格
- 网络爬虫
- 显示百度的建议词
- 获取天气信息
- 翻译字幕文件
- 北大的IP网关
- 有关示例的说明
第10讲小结
1
Readings
- 第10讲讲义
第10讲测验
1
Assignment
- 网络信息获取及Xml处息
第10讲作业
1
Peer Review
- 简单的网络爬虫
11.1 线程及其控制
3
Videos
- 线程的基本使用
- 线程的控制及工具类
- 线程在集合及用户界面应用中的注意事项
5
Readings
- 多线程同时运行
- 线程的Join
- 多线程绘图
- 多线程更新界面
- 线程安全的集合
11.2 并行编程
1
Videos
- 并行编程
6
Readings
- 使用Task
- 使用Parallel.Invoke
- 使用Parallel.For
- 使用Parallel.ForEach
- 并行计算矩阵乘法
- PLinq
11.3 异步编程
2
Videos
- 异步编程的传统方法
- 异步编程的新方法await及async
6
Readings
- 使用BeginInvoke及EndInvoke
- 使用回调
- 使用await
- 使用HttpClient的异步方法
- 使用Stream的异步方法
- 在WinForm中使用await
第11讲测验
1
Assignment
- 多线程与异步编程
第11讲作业
1
Peer Review
- 多线程的网络信息获取处理
12.1 数据库基础知识
3
Videos
- 数据库基本概念
- 设计数据表
- SQL语句
12.2 ADO.NET
1
Videos
- ADO.NET
12.3 访问数据库的方法
2
Videos
- 使用连接及命令
- DataAdapter及DataReader
2
Readings
- 使用Command及DataReader
- 使用DataAdapter及DataSet
12.4 数据库应用程序
3
Videos
- 编写访问数据库的实用类
- 界面与数据的增删改查
- 三层架构与ORMapping
4
Readings
- 访问Access的实用类
- 访问SqlServer的实用类
- 实现登录及数据的查询
- 酒店管理系统
第12讲小结
1
Readings
- 讲义
第12讲测验
1
Assignment
- 访问数据库
第12讲作业
1
Peer Review
- 做一个ToDoList(待办事项)
13.1 类型与转换
1
Videos
- 类型与转换
13.2 变量及其传递
1
Videos
- 变量及其传递
13.3 多态与虚方法调用
1
Videos
- 多态与虚方法调用
13.4 动态类型确定
1
Videos
- 动态类型确定
13.5 对象构造与析构
2
Videos
- 对象构造
- 对象析构与资源释放
13.6 C#语言新特性
1
Videos
- C#语言新特性
第13讲小结
1
Readings
- 讲义
第13讲测验
1
Assignment
- 深入理解C#语言
Auto Summary
Enhance your programming skills with the comprehensive "C#程序设计" course, perfect for those looking to delve into the world of IT and Computer Science. This course is designed by Coursera and offers a deep dive into the powerful, object-oriented language of C#. You'll explore its robust capabilities in Windows GUI, web applications, and databases, all while using Visual Studio as your development tool. Throughout the course, you'll learn essential principles of C# and object-oriented programming, and master the handling of various types of information such as text processing, graphics rendering, image manipulation, multimedia, web data retrieval, and database applications. The course emphasizes hands-on programming practice with engaging and practical examples that relate to everyday tasks, ensuring that the learning process is both enjoyable and manageable. Ideal for those with prior experience in any programming language (such as C), this professional-level course offers flexible subscription options including Starter and Professional tiers. Dive into the dynamic field of C# programming and elevate your coding expertise with this well-rounded and interactive course.
唐大仕