仓颉语言面向对象程序设计 教学大纲_第1页
仓颉语言面向对象程序设计 教学大纲_第2页
仓颉语言面向对象程序设计 教学大纲_第3页
仓颉语言面向对象程序设计 教学大纲_第4页
仓颉语言面向对象程序设计 教学大纲_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《仓颉面向对象程序设计》课程教学大纲(48学时)适用专业:人工智能、计算机科学与技术、软件工程配套教材:栗青生《仓颉面向对象程序设计》(清华大学出版社)配套教学资源:CangStream——自研仓颉Web可视化框架,用于课堂可视化演示与实验交互CangBot仓颉教学智能体——AI教学助手,承担答疑、代码讲解、错误诊断、习题变式生成仓颉沙箱实验平台——在线代码运行/实验环境,支持课内即写即跑、上机作业自动评测课程基本信息项目内容课程名称(中文)仓颉面向对象程序设计课程名称(英文)Object-OrientedProgrammingwithCangjie课程性质专业核心课(必修)总学时/学分48学时/3学分学时构成理论讲授32+上机实验16课程简介仓颉(Cangjie)是华为面向全场景智能时代推出的国产编程语言,已成为HarmonyOSNEXT原生应用开发的核心语言之一。本课程以仓颉语言为载体,系统讲授面向对象程序设计的核心思想(封装、继承、多态、抽象)、语言机制(类型系统、模式匹配、泛型、异常处理、并发)及工程实践方法。课程坚持“语言机制+OOP思想+工程实践”三位一体,配套使用自研CangStream框架进行可视化交互式实验,实现“边学边做、即写即看”。课程同时融入国产基础软件自主创新思政主线,培养学生服务国家信息技术战略的能力与情怀。课程目标知识目标K1掌握仓颉语言基本语法(数据类型、运算符、控制结构、函数)。K2深入理解面向对象核心概念:封装、继承、子类型多态、抽象与接口。K3掌握现代语言特性:模式匹配、泛型、Lambda与闭包、空安全(Option/?)。K4掌握集合、包模块、I/O与异常处理、并发与网络编程基础。能力目标A1能够用仓颉语言独立设计并实现中等规模(1000行级)面向对象程序。A2能阅读、调试、重构他人编写的OOP代码,并撰写规范化注释与文档。A3能将面向对象方法应用于专业领域问题(AI数据建模/数据结构/软件模块设计)。素养目标Q1建立对国产编程语言生态的认知与自信。Q2养成代码规范意识、工程化思维与团队协作能力。Q3体会“全场景智能”语言设计理念,关注鸿蒙生态发展机遇。课程目标与毕业要求对应(参考工程认证12项指标)课程目标主要支撑的毕业要求K1,K2,K3工程知识、问题分析A1,A2,A3/开发解决方案、研究、使用现代工具Q1,Q2,Q3个人和团队、终身学习、职业规范学时分配表周次内容学时1第1章+第2章引入32第2章数据类型与控制结构33第2章上机+第3章引入34第3章Lambda/闭包/高阶函数35第3章上机+第4章struct/enum36第4章模式匹配上机37第5章类与对象(一)38第5章上机+期中考试39第6章继承/接口(一)310第6章上机+第7章引入311第7章多态与泛型+上机312第8章集合与包+上机313第9章I/O与异常+上机314第10章并发与网络+上机315综合设计指导+上机316课程设计答辩+期末复习3合计48教学内容与要求(按章)注:标有(★)是重点,标有(▲)是难点仓颉语言概述(2学时/讲2+机0)教学内容:编程语言发展简史与全场景智能时代背景。仓颉语言核心特性:原生智能、安全、易用、高性能、跨平台。仓颉与Java/Kotlin/Swift的对比。开发环境搭建:cjpm、cjc编译器、VSCode插件。第一个仓颉程序Hello,World!。教学目标:了解语言定位与生态;能搭建开发环境;能编译运行第一个程序。重点:★开发环境搭建与cjpmrun工程结构。思政融入:国产基础软件自主创新案例:HarmonyOSNEXT与仓颉。仓颉语言基础(6学时/讲4+机2)教学内容:标识符、关键字、注释。基本数据类型:Int8/16/32/64、Float32/64、Bool、Rune、String。字面量与类型推断;不可变变量let与可变变量var。运算符与表达式;类型转换与溢出策略。控制结构:if/while/for-in/do-while;break/continue;区间表达式。字符串插值与原始字符串#"..."#。教学目标:熟练掌握仓颉基础语法;能编写带分支与循环的小型程序。重点:★类型推断与转换、for-in与区间、字符串插值。难点:▲数值溢出策略、let/var的不可变语义。上机实验1:基础语法练习(数值计算、闰年判断、九九乘法表、字符串处理)。函数编程(6学时/讲4+机2)教学内容:函数定义、参数(位置参数、命名参数、默认参数、变长参数)。函数类型与函数引用;Lambda表达式与闭包。高阶函数:map/filter/reduce在标准库中的应用。函数柯里化(curry)与函数组合。const函数与编译期求值简介。教学目标:理解函数作为一等公民;能写出Lambda、闭包与高阶函数。重点:★命名参数!、Lambda语法、闭包捕获。难点:▲闭包捕获语义、curry与函数组合的应用场景。上机实验2:高阶函数实战(自定义集合处理+Lambda排序)。结构体、枚举及模式匹配(4学时/讲3+机1)教学内容:struct值类型:定义、字段、构造、mut方法。enum代数数据类型;构造子带参数。模式匹配match:通配模式、绑定模式、元组模式、构造子模式、范围模式。Option<T>与空安全模式:?.与??。教学目标:理解值类型与代数数据类型;熟练用match处理多分支。重点:★枚举与构造子参数、match的穷尽性检查。难点:▲模式匹配的解构与守卫、Option替代null的安全模型。上机实验3:用enum+match实现简易表达式计算器。类和对象(6学时/讲4+机2)教学内容:类的定义;字段、属性(prop)、方法。三种构造函数:辅助构造函数init、主构造函数(与类同名)、默认构造函数。this与super;成员可见性public/protected/private/internal。静态成员static;伴生对象的概念(如适用)。对象的创建、访问、生命周期。教学目标:掌握类的设计与实现;理解OOP中的封装思想。重点:★三种构造函数差异、属性vs字段、可见性修饰。难点:▲主构造函数与辅助构造函数的协作、prop的get/set语义。上机实验4:设计BankAccount/Student等类,验证封装与可见性。类继承和接口继承(6学时/讲4+机2)教学内容:类继承:openclass、<:、super调用、override。抽象类与抽象成员;sealed(密封类)。接口interface:抽象方法、默认实现。接口继承(接口扩展接口);多接口实现。类与接口的对比与选用原则。教学目标:掌握继承机制;能合理设计类层次与接口契约。重点:★open/override的强制语义、接口默认方法。难点:▲抽象类与接口的取舍、菱形继承(多接口下)的处理。上机实验5:图形类层次(Shape→Circle/Rectangle/Triangle),实现Comparable接口。子类型关系和多态性(4学时/讲3+机1)教学内容:子类型关系(subtyping)的形式定义。子类多态:动态分派与虚方法表。类型检查与转换:is/as。协变与逆变(基础概念)。泛型基础:泛型函数、泛型类、上界约束whereT<:...。教学目标:理解多态机制;能使用泛型设计可复用组件。重点:★动态分派、is/as安全转换、泛型上界。难点:▲协变/逆变直觉、泛型约束的写法。上机实验6:泛型容器Stack<T>+多态遍历。集合与包(4学时/讲3+机1)教学内容:标准集合:Array<T>、ArrayList<T>、HashMap<K,V>、HashSet<T>。迭代器协议;for-in的展开机制。包(package)与模块(module);import语句。cjpm工程组织:单包工程、多包工程、依赖管理。可见性在包级别的语义。教学目标:熟悉常用集合API;能组织多文件/多包工程。重点:★ArrayList与HashMap的常用操作、包与导入。难点:▲多包工程的目录布局与可见性约束。上机实验7:词频统计(含读文件、HashMap累加、Top-N排序)。I/O操作与异常处理(4学时/讲3+机1)教学内容:标准输入输出;格式化输出。文件I/O:File、InputStream/OutputStream、Reader/Writer。异常机制:try-catch-finally、自定义异常、throws。资源管理:try-with-resources风格(如适用)。异常vs错误码:何时使用何种错误处理策略。教学目标:能进行文件读写并使用异常机制处理错误。重点:★异常的捕获与传播、文件流的关闭策略。难点:▲自定义异常类层次设计、finally与资源安全。上机实验8:CSV文件读写+异常处理(数据清洗小程序)。网络与并发编程(4学时/讲2+机2)教学内容:线程(Thread)/协程基础;并发与并行的区别。同步原语:Mutex、AtomicXxx、信号量。共享状态的线程安全实现(参照state.cj)。Socket编程:TCP客户端/服务端示例。简单的HTTP客户端调用与JSON处理。教学目标:理解并发模型;能写多线程与Socket程序。重点:★互斥锁的使用、TCP通信流程。难点:▲数据竞争与死锁、原子类型的选用。上机实验9:多线程下载器/简易聊天室。综合实验(2学时/机2)题目方向(任选一):AI方向:基于CangStream实现交互式数据分析仪表盘(读取CSV,统计、可视化指标)。CS方向:泛型数据结构库(链表/二叉搜索树/堆,含单元测试)。SE方向:图书馆管理系统(多包工程,分层架构,文件持久化)。要求:完整需求文档(README)+源码+演示视频或截图;个人或2~3人小组。验收:现场答辩5分钟+代码评审。面向不同专业的差异化教学建议专业实验侧重课程设计选题示例人工智能数据处理、模型对象建模、张量/矩阵抽象端侧推理API调用面板;类sklearn风格的小型ML工具包;用OOP封装神经网络层计算机科学与技术数据结构、算法、系统抽象泛型集合库;表达式解释器;简易关系数据库存储引擎软件工程模块化、设计模式、测试设计模式实战(观察者/策略/工厂);图书馆/教务管理系统;代码静态分析小工具教学策略:第5~7章(OOP核心三章)讲授内容统一,但例题、上机实验、课程设计针对不同专业差异化布置。教学方法与手段理论讲授:板书+PPT(配套9章PPT已提供第2章~第10章*.pptx)。可视化交互:使用CangStream框架实时演示组件、状态、布局;课堂“边讲边跑”。沙箱即写即跑:课堂例题/上机实验/课后习题均运行于仓颉沙箱实验平台,免本地配置,秒级编译反馈,支持自动测评与作业回收。CangBotAI助教:课前预习引导、课中即时答疑、课后错题诊断与变式题生成均由CangBot仓颉教学智能体承担,实现1:N个性化辅导。代码案例驱动:教材按demoX-Y/demoX-SLn编号组织,章节内例题阶梯式递进;每个demo在沙箱中均可一键运行。课堂翻转/讨论:第4、6、7章设置1次小组讨论(接口设计/子类型示例分析),CangBot提供讨论提纲与参考答案审阅。OBE持续改进:每章后沙箱平台自动生成小测;阶段性问卷收集反馈,CangBot汇总学情画像供教师调整教学节奏。教学资源矩阵教学环节主用工具理论讲授/可视化演示PPT+CangStream课内即写即跑/上机实验仓颉沙箱实验平台答疑/错题诊断/习题变式CangBot教学智能体工程化案例/课程综合设计本地cjpm+沙箱混合考核方式考核项占比说明平时作业(章末习题)15.0%共9次,按章布置;通过沙箱平台提交并自动评测上机实验报告20.0%9次实验+综合实验,全部在沙箱平台完成课堂表现与小测10.0%章节小测(沙箱在线作答)+讨论;CangBot辅助评分参考期中考试15.0%闭卷,覆盖第1~5章课程综合设计20.0%答辩+代码评审期末考试20.0%闭卷,覆盖全书,重在OOP设计合计100.0%教材与参考资料主教材栗青生.仓颉面向对象程序设计.清华大学出版社,2026.参考资料华为.仓颉

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论