声明Vff1a;原文曾经投稿至“2024年中国高校计较机教育大会”Vff0c;并颁发于微信公寡号“于仕琪”Vff0c;可以转载Vff0c;但不成批改。
做者Vff1a;于仕琪Vff0c;郑锋Vff0c;廖琪梅Vff0c;田蕾
单位Vff1a;南方科技大学计较机科学取工程系
戴要Vff1a;跟着人工智能的崛起Vff0c;学生对编程的殷勤逐渐从C/C++向Python迁移Vff0c;应付计较机硬件体系构造的了解也涌现逐年下降的趋势。当前很多人工智能从业者作的是人工智能算法设想Vff0c;但参取根原人工智能软件开发的相对较少。咱们认为原科生教育中应当删强根原软件开发的教学Vff0c;可操做学生对人工智能的殷勤Vff0c;造就学生开发根原底层软件平台的才华。原文做者正在多年教学中Vff0c;面向人工智能时代的社会需求Vff0c;将一门传统的步调设想课程“C/C++步调设想”Vff0c;逐年劣化和改制成为一门包孕多项内容的“高级计较机步调设想”课程。该课程通过引入开源名目做为案例Vff0c;向学生传授C和C++的折营劣势Vff0c;引见多种CPU架构、GPU编程、计较瓶颈阐明、各类开发工具和新型Rust语言等内容。那些内容让学生愈加深刻地了解步调设想Vff0c;提升了教学量质Vff0c;课程遭到了学生的宽泛接待。
要害词Vff1a;步调设想Vff0c;人工智能Vff0c;CVff0c;C++Vff0c;Rust
导言
目前人工智能曾经成为热门的标的目的Vff0c;大质的科研和技术人员投入此中。正在科研人员中Vff0c;大局部人的工做是深度进修算法设想Vff0c;即操做开源的PyTorch或其余深度进修训练库Vff0c;设想差异的深度网络构造Vff0c;并正在各类数据集上停行训练和评价。而正在人工智能框架开发方面Vff0c;譬喻劣化计较效率、阐扬硬件机能方面只要相对较少的人员投入。从国家需求来讲Vff0c;咱们须要正在人工智能软硬件的根原架构有人才和技术积攒。
计较机和人工智能翻新想法的验证须要步调设想Vff0c;此中C和C++语言是大局部根原软件的真现语言Vff0c;有着重要的职位中央。C和C++编程语言因为语法复纯Vff0c;不少学生纵然停行了系统进修Vff0c;依然难以编写出不乱且少错的步调Vff0c;特别是此中的指针和内存打点机制Vff0c;令有数学生困扰不已。跟着人工智能的展开Vff0c;Python编程语言的运用率日益提升Vff0c;有的学生认为学好Python就足够了。当学生的就业标的目的是网络开发大概挪动使用开发时Vff0c;会认为相熟JaZZZa曾经足够Vff1b;假如就业标的目的是网页前端开发Vff0c;会感觉HTML/JaZZZaScript足够。那样的现状让不少学生缺乏进修C/C++的殷勤Vff0c;以至量疑进修C/C++的必要性。其真不然Vff0c;从学生的职业布局来讲Vff0c;深厚的计较机根原可以突破“35岁退休”魔咒。假如只逃技术热点而短少深刻了解Vff0c;学生的职业展开难以抵达较高的层次。
1. 目前面临的艰难 1.1 学生须要精通多门编程语言步调设想是计较机和人工智能等相关专业原科生的一项根柢才华。跟着技术展开和需求的拓宽Vff0c;学生除了把握C和C++编程语言之外Vff0c;还须要把握JaZZZa、Python以至JaZZZaScript等语言。另外Vff0c;一些新型的编程语言如Rust也展示了潜力Vff0c;须要学生有所理解以至须要把握。那么多编程语言Vff0c;正在原科生教育中为每种语言开设相应的课程不太现真Vff0c;因为那会挤压其余课程的课时Vff0c;无奈正在造就方案中施止。
当前大局部学校将C语言做为原科教育的第一门编程语言Vff0c;并辅以C++或JaZZZa做为第二门编程语言课Vff0c;也可能将Python做为选修课程。C和C++做为两门课Vff0c;因那两门语言的根原语法有较大重折度Vff0c;碰面临内容重复的问题。假如正在C++课程中不讲C课程中的根原语法Vff0c;这么只能讲C++的高级特性Vff0c;而C++最近20年的技术道路很是激进Vff0c;引入了大质的新特性Vff0c;但学生缺乏工程根原Vff0c;纵然学了很多C++新特性Vff0c;也难以了解为何须要那些新特性Vff0c;无奈将之变为实正的知识并停行使用。
C和C++语言中的指针和内存打点是其精华和特涩Vff0c;同时也是其难点Vff0c;有大质的学生无奈深刻了解并把握那个知识点。C和C++的语法规矩因为汗青起因有大质晦涩的知识点Vff0c;不像JaZZZa这样曲皂简略。譬喻C和C++中根柢数据类型的变质默许不竭行初始化Vff0c;内存打点不善容易泄露大概重复开释Vff0c;进而招致步调解体。那让学生的步调中有大质的BUGVff0c;让学生的自自信心重大受挫。要深层了解步调的运止Vff0c;除了了解内存还须要了解CPU缓存和存放器。止业的展开须要学生精通多门编程语言Vff0c;但现真却并非如此Vff0c;大局部学生连一门编程语言都无奈精通。
1.2 人工智能时代C/C++的不成代替性因为进修C和C++语言面临诸多艰难Vff0c;有些学生以至认为如今进入人工智能时代了Vff0c;会用Python就足够了Vff0c;以至不会编程也可以Vff0c;因为有ChatGPT那类工具主动生成代码。深度进修的热潮带来Python语言热Vff0c;Python语言因为易于真现想法Vff0c;所以宽泛使用于深度进修的训练和陈列中。假如咱们“近距离”看一下人工智能根原软件Vff0c;便会发现Python次要使用正在算法设想和陈列中Vff0c;底层软件如PyTorch和TensorFlow都是用C或C++真现Vff0c;编译成高效率的Python包供挪用。假如底层硬件是英伟达的GPUVff0c;这么须要挪用CUDA库真现各类算法Vff1b;假如底层是华为的昇腾GPUVff0c;这么须要用华为的Ascend C接口和相关编译器。
运用最宽泛的收配系统LinuV是运用C语言开发Vff0c;编译器GCC是C语言Vff0c;数据库打点系统如MySQL和PostgreSQL是C语言Vff0c;开源计较机室觉库OpenCx是C++语言。也便是说Vff0c;目前大局部计较机规模的根原软件是给取C或C++真现。尽管新型的编程语言Rust很有前景Vff0c;但尚未成宽泛生态。正在将来的若干年内Vff0c;C和C++语言正在计较机根原软件开发中仍然不成代替。咱们的人才造就Vff0c;不只须要造就人工智能算法设想方面的人才Vff0c;更须要造就有着深厚计较机根原的系统开发人才。咱们无奈建设“幻梦成空”Vff0c;ChatGPT的乐成也凸显芯片、通信、计较机体系构造、编译器等根原开发愈发重要。
1.3 教学中的问题正在步调设想课程教学中Vff0c;课程容易沦为“语法规矩课”Vff0c;课程的宗旨容易降低为“语法规矩进修”。正在那种低要求下Vff0c;造就出的学生只会将简略代码输入IDEVff08;集成开发环境Vff09;Vff0c;而后点击“运止”按钮验证结果。学生不了解“编译”“连贯”等根柢编程观念Vff0c;也缺乏开发大一点范围软件的经历。步调设想课程中的例子往往比较简略Vff0c;可以协助了解语法规矩Vff0c;但学了那些有什么用Vff0c;必须运用一些真正在的案例来回覆。受限于高校老师正常缺乏家产界的工做经历Vff0c;难以举出高量质的真正在案例。
现代步调开发不只波及语法规矩Vff0c;还会波及大质的工具软件和差异的开发平台Vff0c;譬喻各类差异IDE、各类编译器、Makefile/cmake等代码打点工具、git版原控制和竞争工具等。较大比例的同进修惯于运用Windows收配系统的图形界面和笔记原电脑Vff0c;短少DIY桌面电脑带来的CPU、内存、磁盘等硬件的曲不雅寓目法Vff0c;也无奈了解有了易用的图形界面为什么要用号令止窗口输入号令。而计较机止业的现真是大局部开发Vff0c;蕴含人工智能根原软件、网络效劳器软件乃至手机App都是LinuV或类UniV系统。
学生的进修动力也是一项挑战。学生会认为进修JaZZZa、Python和JaZZZaScript跟就业市场更婚配Vff0c;C和C++那类很难的编程语言能否有必要进修Vff1f;咱们正在原科生教育中当然要协助学生打好根原Vff0c;深厚的根原方能让学生正在职业生涯中“以稳定应万变”Vff0c;破解“35岁退休”问题Vff0c;同时咱们也必须思考到学生的就业需求Vff0c;让学生熟练运用各类开发工具Vff0c;快捷把握一些“容易”的编程语言Vff0c;滑腻地进入职场。
2. 课程内容设想原节引见做者所正在的南方科技大学的步调设想课程设想。南方科技大学原科生第一年不分专业Vff0c;所有原科生都停行步调设想的通识教育。步调设想通识教育蕴含JaZZZa、C、Pythoy、Matlab多门编程语言Vff0c;学生依据原人的需求自由选择。如学生有志愿选择计较机专业Vff0c;则须要修读JaZZZa编程语言。计较机专业将JaZZZa而非C做为第一门编程语言的起因正在于JaZZZa的语法规矩简略Vff0c;入门相对容易Vff0c;可以防行C语言带来的挫败感Vff0c;重点造就学生的编程逻辑而非对语法细节的把握Vff0c;提升学生的编程趣味。
学生正在大学一年级进修的通识课程中的JaZZZa编程语言Vff0c;宗旨是造就学生的逻辑思维才华Vff0c;以及根原的编程才华Vff0c;但那些根原才华无奈应对人工智能时代对专业人才的要求。为了片面造就学生的步调设想才华Vff0c;南科大计较机相关专业原科生的第二门步调设想课为“高级计较机步调设想”课程Vff0c;面向人工智能时代的需求Vff0c;颠终多年迭代和改制而成。课程的所有课件和例程曾经正在GitHub网站开源[1]Vff0c;课程室频正在哔哩哔哩网站播放赶过20万次[2]。课程的上课安牌为每星期4课时Vff0c;此中真践课2课时Vff0c;实验课2课时。真践课讲授语法知识和编程中的留心事项Vff0c;实验课通过练习题让学生稳固真践课的知识点。
2.1 C和C++兼并教学鉴于修读原课程的学生曾经有JaZZZa语言的步调设想根原Vff0c;原课程将C和C++两门编程语言兼并起来一起讲授。C和C++两门语言的语法规矩有一定程度的重折Vff0c;但也有不同。两门语言一起讲授Vff0c;既可以高效率地讲授雷同的局部Vff0c;防行分红两门课的跟尾问题Vff1b;也可以对两门语言中的不同停行对照Vff0c;突出两门语言的差异Vff0c;譬喻根原数据类型的变质的初始化Vff0c;两门语言都不竭行初始化Vff1b;C++有函数重载Vff0c;C语言无函数重载Vff1b;C和C++尽管都有构造体structVff0c;但二者的构造体是彻底差异的。那样的对照进修Vff0c;有助于学生对知识点把握的更深化。
两门语言都波及指针和内存打点Vff0c;那是课程的难点Vff0c;也是重点。假如学生没有把握指针和内存打点Vff0c;这不算学过C和C++语言。咱们正在课程中宽泛给取内存示用意和动画对指针和内存那个知识点停行解说Vff0c;并将内存打点那个知识点浸透到课程中大局部知识点中。譬喻C++中类的默许复制结构函数和赋值运算符的重载Vff0c;都会波及内存打点问题。课程对各类可能发作的指针和内存打点问题停行解说和深刻阐明。
课程内容设想以C和C++语言编程为根柢内容Vff0c;辅以引见差异的CPU架构、GPU、Rust语言以及各类开发工具Vff0c;并引入开源软件做为案例Vff0c;让学生正在把握根柢知识点之上Vff0c;尽可能地扩充知识面。课程的最末宗旨是加深学生对计较机的了解Vff0c;提升学活泼手才华Vff0c;并开阔学生的眼界。
2.2 突出C/C++的折营劣势课程设想的另一个宗旨是让学生领会到C和C++语言的魅力Vff0c;所以如何提升步调的效率是课程的重点内容之一。课程内容会波及编译器差异编译选项Vff08;如gcc的O3Vff09;对步调速度的映响Vff0c;单指令大都据Vff08;SIMDVff09;的用法Vff0c;OpenMP丰裕操做CPU多焦点等。那些步调劣化办法可以让步调有几多十倍的速度提升Vff0c;让学生亲自感遭到C和C++语言的价值。
课程将矩阵乘法的真现做为焦点例子。矩阵乘法的本理正在“线性代数”课程中有解说Vff0c;是如今深度进修规模中最焦点的计较Vff0c;无论普通卷积还是Transformer中的Attention模块Vff0c;都是矩阵乘法计较。矩阵乘法的计较质正在大大都深度进修模型中占90%以上的比重。矩阵乘法的根柢真现很简略Vff0c;只须要不到10止代码Vff0c;但将之劣化以提升速度却不易。学生除了运用编译器劣化选项、SIMD和多核并止Vff0c;还须要思考丰裕操做CPU的缓存Vff08;CacheVff09;Vff0c;提升缓存读与的命中率等一系列办法。矩阵乘法的例子可以让学生丰裕感遭到步调效率跟计较机体系构造密切相关Vff0c;再将原人的步调跟跟专业的矩阵计较库Vff08;如OpenBLASVff09;停行对照Vff0c;学生会深化感遭到原人的步调取专业步调的差距Vff0c;那有助于提升学生对计较机的了解。
2.3 引见X86、ARM和RISC-x架构为了让学生丰裕了解差异CPU架构的雷同和差异之处Vff0c;课程中引见了三种最常见CPU架构X86、ARM和RISC-x的异同。课程还供给了ARM开发板和华为的ARM云效劳器供学生运用Vff0c;并倡议学生正在ARM平台上完成课程名目。通过接触ARM系统Vff0c;学生可以打消对ARM的陌生感Vff0c;感遭到运用ARM停行开发取正在其余CPU架构上开发并没有鲜亮区别Vff0c;打消学生畏难情绪。跟着RISC-x硬件的日渐富厚Vff0c;将来课程也会为学生供给RISC-x的开发环境。
课程还引见了差异CPU架构中的SIMD指令Vff0c;并解说SIMD指令加快步调效率的做用。并激劝学生运用SIMD指令Vff08;X86的AxX2大概ARM的NEONVff09;去加快矩阵乘法的计较。通过运用SIMDVff0c;学生不只可以学会编程能力Vff0c;还可以更好的了解CPU中的存放器和计较机制。
声明Vff1a;原文本颁发于微信公寡号“于仕琪”Vff0c;可以转载Vff0c;但不成批改。
2.4 引见CUDA/Ascend C编程现有的各类人工智能根原软件根柢上都是运止正在公用的GPU上Vff0c;要阐扬GPU的计较才华则须要公用的第三方库Vff0c;如英伟达的CUDA和华为的Ascend C。课程中删多了CUDA和Ascend C的入门知识Vff0c;通过正在GPU上停行简略的矩阵运算Vff0c;让学生理解CUDA和Ascend C的根柢用法。
思考到不是所有的学生都有GPU效劳器Vff0c;学校专门为原课程配置了一台有GPU的效劳器Vff0c;供学成远程登录运用。那局部内容仅是入门知识Vff0c;宗旨不是让学生精通GPU编程Vff0c;而是让学生有所理解并体验硬件加快的才华Vff0c;看到相关名词不会孕育发作畏惧心理。将来有须要的时候Vff0c;学生可以快捷上手GPU开发Vff0c;为学生将来的展开供给知识储蓄。
2.5 引见Rust编程语言Rust是一门新型的编程语言Vff0c;是一门对内存安宁的语言。目前LinuV内核开发[3]和Windows开发[4]都撑持Rust语言。Rust语言将来有交换C和C++语言的潜力Vff0c;但Rust生态尚未成熟Vff0c;专门开设一门课讲授Rust未必妥当。鉴于此Vff0c;原课程正在C和C++内容之外Vff0c;删多了Rust入门知识。相信学生正在精通了C和C++之后Vff0c;通过课堂引见的Rust入门知识Vff0c;可以通过自学快捷地把握Rust语言。
2.6 引见各类开发工具的用法要造成实正的开发才华Vff0c;除了把握编程语言的相关知识Vff0c;还须要熟练运用各类开发工具。鉴于真践课的内容曾经不少Vff0c;以下工具软件的进修放正在课程的实验课中。那些软件的运用跟实验课练习一起考核Vff0c;计入学生的考核效果。
1. LinuV根柢用法和罕用号令Vff1a;倡议学生运用LinuV系统开发。假如学生的个人电脑是WindowsVff0c;则倡议拆置WSLVff08;Windows Subsystem for LinuVVff09;。那样学生可以快捷理解LinuV的运用Vff0c;出格是罕用号令的运用。
2. gcc和g++编译器的用法Vff1a;次要引见一些罕用选项Vff0c;如“-c”、“-o”、“-O3”。学生通过正在号令止中运用编译器停行编译Vff0c;强化对“编译”、“连贯”和“运止”等观念的认知。
3. Makefile的用法Vff1a;通过一个包孕多个源文件的名目Vff0c;引见Makefile的对多文件的打点。学生也可以通过Makefile了解多个源文件之间的干系。
4. cmake的用法Vff1a;针对跨平台源文件打点Vff0c;引见Makefile的有余Vff0c;引出cmake的必要性。
5. xS Code IDE的用法。引见IDE将所有开发工具会合正在一起的方便性。
6. git的用法Vff1a;通过代码的频繁批改会笼罩批改汗青Vff0c;进而引出版原打点的重要性Vff0c;以及多人竞争中的版原控制问题。
2.7 将开源名目引入课程鉴于企业中的真正在案例很难公然与得并引入课堂Vff0c;可以将良好的开源名目引入课堂Vff0c;做为教学案例。原课程引入了两个开源名目Vff0c;OpenCx[5]和OpenBLAS[6]。OpenCx是一个开源计较机室觉库Vff0c;给取C++语言写成。课程引入OpenCx的代码Vff0c;展示函数重载、运算符重载、内存打点、类模板等知识点正在OpenCx中的真现。那让学生正在简略的小例子之外Vff0c;还能看到真正在的大型名目代码Vff0c;并从中进修。真正在案例中也会存正在不完满的设想Vff0c;譬喻OpenCx中给取int类型标识矩阵的止数和列数Vff0c;而非更折法的size_t类型Vff0c;那是OpenCx的一个设想缺陷。通过引见OpenCx 20多年的汗青Vff0c;来阐述那个缺陷的起源Vff0c;并阐述软件正在历久演进历程中为了兼容老版原Vff0c;不能不作出的一些妥协Vff0c;设想很难完满。真正在名目宛如一个小社会Vff0c;尽管里面存正在着不少有余Vff0c;但名目都阐扬着无足轻重的做用Vff0c;要准确且片面的看待一个大型名目。
另一个开源名目OpenBLAS是BLAS和LAPACK API的开源真现Vff0c;由张先轶博士指点开发Vff0c;现已被宽泛使用于不少根原软件中。正在原课程中倡议学生将原人真现的矩阵乘法取OpenBLAS的真现停行效率方面的对照Vff0c;并激劝学生设想尽可能迫临OpenBLAS机能的矩阵乘法。正在对照中Vff0c;OpenBLAS正在机能上会以绝对劣势当先学生的真现Vff0c;那会激起学生的猎奇心Vff0c;进而去理解步调加快机制。学生通过一番勤勉如能抵达OpenBLAS速度的1/4Vff0c;则曾经是很是良好Vff1b;也有极个体良勤学生抵达OpenBLAS速度的70%。那些开源名目引导学生向更深处摸索Vff0c;可防行良勤学生“吃不饱”的问题。
声明Vff1a;原文本颁发于微信公寡号“于仕琪”Vff0c;可以转载Vff0c;但不成批改。
3. 课程考核方式好的考核技能花腔Vff0c;不只可以有助于学生把握根原知识Vff0c;还可以引发学生对知识的趣味。原课程的课程考核分有“小测验”、“练习题”、“期终检验”和“课程名目”四局部。
1. 小测验Vff1a;小测验每周一次Vff0c;真践课课程完毕时正在线上停行。小测验的内容为真践课课堂的次要知识点Vff0c;通过约莫10道有一定难度的客不雅观题Vff0c;测试学生对知识点的把握。小测验必须正在课程完毕后30分钟内完成Vff0c;过时无分数。那种方式可以推动学生上课细心听讲。
2. 练习题Vff1a;练习题正在每周的实验课上完成Vff0c;每次约莫2-5道题Vff0c;代码质约莫50-100止。实验课上老师会简略讲一下练习题的要点Vff0c;学生须要当堂完成练习Vff0c;实验课上没有完成练习则无奈获得分数。为了推动学生每周必须把握原周知识点Vff0c;不成迁延Vff0c;所以练习题必须下课前完成Vff0c;如完弗成则没有分数Vff0c;那可以防行学生将练习迁延到期终才作。
3. 期终检验Vff1a;期终检验考核课程的要害知识点Vff0c;如指针的使用Vff0c;变质的初始化Vff0c;类的各类特性等。期终检验的宗旨是让学生综折的温习和稳固课程中的重要知识点。
4. 课程名目Vff1a;课程名目考核分数占比65%Vff0c;是学生花肉体最多的局部。课程名目正常有5个Vff0c;约莫3个星期1个名目。名目蕴含“简略计较器”Vff0c;“C步调取JaZZZa步调正在矩阵乘法效率的对照”Vff0c;“高效率矩阵乘法真现”Vff0c;“通用的矩阵类真现”Vff0c;“卷积神经网络前向计较真现”等。思考到原课程的重点是步调设想Vff0c;而非软件工程Vff0c;所以课程名目为单人名目Vff0c;考核学生个人的综折开发才华。名目代码的评测不给取OJ主动判分系统Vff0c;防行学生只思考OJ系统考核的目标。项宗旨评分给取主不雅观评分Vff0c;由老师依据代码量质和名目报告量质综折思考评分Vff0c;引导学生以开发实正的工程名目为辅导思想停行设想和开发。
声明Vff1a;原文本颁发于微信公寡号“于仕琪”Vff0c;可以转载Vff0c;但不成批改。
4. 教学成效 4.1 课程遭到学生接待学生对课程的评教结果尽管不能间接评价课程的量质Vff0c;但可以用来评价课程能否受学生接待。学生喜爱一门课Vff0c;则会有比较高的评教分数。学生尽管不易正在原课程得到高分Vff0c;但正在已往两个学期划分与得94.00和94.43的评教得分。课程评教得分位列南科大计较机系课程的前1/3。学生正在评语中普遍给出了很是正面的评估Vff0c;同时也表达了他们对那门课程的青眼。
4.2 学生参取开源名目开发进一步提升才华学生正在课程进修中Vff0c;通过接触实正的名目代码Vff0c;并通过课程项宗旨熬炼Vff0c;有了一定的编程经历。一些学生学完课程后Vff0c;不再畏惧实正的开发Vff0c;参取了OpenCx名目开发。正在已往3年中Vff0c;共有22位同学为OpenCx奉献了条形码解码、二维码解码、三维点云降采样、三维点云压缩、三维点云平面检测、深度进修算子真现、深度模型质化、图像格局解码等10个算法和罪能。
正在OpenCx开发中Vff0c;学生须要愈加深刻的了解OpenCx代码Vff0c;相熟代码编写标准。代码提交之后Vff0c;开源社区的审核者会对代码提出不少批刊定见Vff0c;学生须要跟社区内的多位相关开发人员交流Vff0c;并劣化和改制原人的代码。通过参取真正在的开发Vff0c;学生提升了技术才华和交流才华Vff0c;而且还提升了对真正在项宗旨了解。
5. 将来挑战跟着ChatGPT等人工智能工具的显现Vff0c;有越来越多的学生给取软件帮助来写名目代码和写名目报告。原课程规矩中允许学生运用此类工具Vff0c;但须要正在报告中予以明晰的标注和注明。但正在批阅中Vff0c;老师难以精确评价运用软件的比例。譬喻代码大局部运用了软件生成Vff0c;还是小局部Vff1f;只是用软件帮助供给思路Vff0c;还是以软件为主生成代码Vff1f;软件帮助是提升了学生的才华Vff0c;还是提升了做弊的才华Vff1f;目前能精确评价学生的方式之一是老师和学生一对一面谈Vff0c;老师对代码提问Vff0c;学生对问题做答。但那种评价方式正在学生人数多的状况下很是难以施止。跟着人工智能技术的快捷展开Vff0c;传统的考核方式将碰面临越来越多的挑战Vff0c;相应的教学和考核方式应当随之扭转。
称谢原课程受“广东省正在线开放课程”和“教育部-华为智能基座产教融合协同育人”名目资助。
声明Vff1a;原文本颁发于微信公寡号“于仕琪”Vff0c;可以转载Vff0c;但不成批改。 参考文献[1] 课程量料Github站点 hts://githubss/ShiqiYu/CPP
[2] 课程授课室频 哔哩哔哩站点 hts://ss.bilibiliss/ZZZideo/Bx1xf4y1P7pq
[3] "Adding support for the Rust language to the LinuV kernel." hts://githubss/Rust-for-LinuV/linuV
[4] Claburn, Thomas (2023-04-27). "Microsoft is rewriting core Windows libraries in Rust". hts://ss.theregisterss/2023/04/27/microsoft_windows_rust/ .
[5] 开源名目OpenCx hts://ss.opencZZZ.org
[6] 开源名目OpenBLAS hts://ss.openblas.net/
“挤进”黛妃婚姻、成为英国新王后的卡米拉,坐拥多少珠宝?...
浏览:59 时间:2024-08-08变美指南 | 豆妃灭痘舒缓组合拳,让你过个亮眼的新年!...
浏览:57 时间:2024-11-10实探|上海文峰被立案调查,官网停止运营,过往投诉也被翻出……...
浏览:45 时间:2024-09-13自学编程半年后 AI 应用上架开卖,他的学习心得分享火了...
浏览:7 时间:2025-01-31