选课类别:计划内与自由选修 | 教学类型:理论实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:通修 | 学分:4.0 |
本课程作为计算机科学技术专业和电子工程专业的入门课程,采取自底向上的教学模式,从介绍计算机系统的底层基础知识开始,逐步上升到操作系统和高级语言程序的接口层,将软件和硬件联系起来,阐述从问题描述到算出结果的十个层次的转换过程:从问题到算法的转换、从算法到高级语言程序的转换、从高级语言程序到(用指令集结构描述的)机器语言程序的转换、从指令集结构到微结构的转换、从微结构到逻辑电路的转换、从逻辑电路到晶体管器件、从器件到物理的转换。
本课程从MOS晶体管开始,依次介绍逻辑门、锁存器、各种组合和时序逻辑结构、有限状态自动机的设计;然后围绕一个简单的计算机设计实例(LC-3),依次介绍冯·诺伊曼计算机系统结构模型、指令系统设计、汇编语言程序设计和微结构设计,为初学者建立起对计算机系统的完整认识。在此基础上,介绍汇编语言程序设计、物理设备的输入和输出机制、操作系统的陷入机制和子程序调用和返回机制、以及栈和数据转换的原理和机制。
张辉老师的《计算系统概论A》课程总体上评价不一,大多数学生认为老师的授课水平相对欠佳,课程内容主要是对英文教材的翻译,无法深入讲解,导致学生更倾向于自学。PPT、作业和考试均为全英文,这一难度虽然磨练了学生的英文能力,但也引起了一些同学的不适应。不过,教材被认为写得通俗易懂,适合自学。课程涵盖内容较广,包括二进制、MOS管、逻辑门、冯诺依曼机和LC-3指令集等,但有同学认为与其他课程如模数电的内容重叠过多,导致课程实用性欠佳。
期中考试被认为难度偏高且题量大,而期末考试相对较简单,但考察细节较多。考试题型常结合代码理解与推理,学生普遍感到挑战较大。给分采用公式计算,期末会根据整体表现做一些调整,大多数学生对给分满意。尤其是在与平行班比较时,张辉老师的班级最终给分相对友好。
课程中作业和实验占比较大,实验尤其需要注意提交的及时性和实验报告的质量。许多学生表示实验较为繁重,并且有两个附加实验,涉及较多C++内容,对代码能力有一定要求。部分学生建议实验可以提前布置,避免学期末过于集中。实验的反馈机制被多次提及希望改进,建议提供更多明确的指导和评分标准。
助教团队被广泛赞誉,尤其是助教在群内的积极互动和答疑解惑,极大帮助了学生的学习过程。助教的专业水平和耐心是课程的一大亮点,学生对助教的工作给予高度评价。
课程整体评价不一,学生建议需要自学能力较强者选修此课程。同时,建议选修该课程的学生提早准备和熟悉相关编程工具,提高对英文材料的阅读能力,积极参与平时实验和附加实验,以获取更多的实践经验。对于希望轻松通过而非深入学习的学生,可能需要调整期望值和学习策略。课程设置有改进空间,特别是与其他相关课程的内容协调方面。
第一次见如此懒的老师,靠着不断小测和加分讨论来水过自己念完ppt之后不知道该干什么的时光,真的是绝绝子。
考完ics了,更新一下:
看在zh最后几次课讲课认真+发了往年题答案和复习PPT(虽然是别人和他要才发的)的份上,加两颗星,但如果能重来一次,我绝对不会选zh班 但是如果只剩ah和zh了,我还是选zh以及,ics这门课算分公式+实验评测是统一的,不会因为某个班卷王多/少而导致你总评相对低/高,所以班级选择不会影响你最终总评 假的!!!ah说的话千万不能信
如果你不幸被分到了zh班并且调不开,那么我的建议是:
1.好好自学
2.多加别的班的班群,看别的班的资料
3.多问助教,脸皮厚一点,别的班的助教也可以问
至于给zh洗的,我就一句话:
反正zh是我上大学以来遇到的第一个被无数同学在年级群里骂、并且同学们还要求班主任去实地听课了解情况的老师,做老师做到这份上也是没谁了
2022/1/25更新:
出分了,意料之中的正常分吧,应该是按照公式算出来之后向下调一点(三四分的样子?),但是没有往年评课社区说的“临时大幅度增加考试占比”的恶心情况,也算是言而有信了,加三分(不知道ah班优秀率会不会爆炸hhh)
2022/2/19更新:
ah出分了,大幅度向下调分+大批挂人,我收回之前说过的再来一次不选zh的话并向zh老师道歉(还真就那个全靠同行衬托是吧)(doge),但是上面写的经验仍然适用。为了表示我诚挚的歉意,我给张老师再加两分
现在来看这课老师好坏程度(降序排名)应该是:
以后要是苗老师的课选不上,大家选zh也行,起码zh不会基础实验都做了,考试参加了,还给你一个不及格。。。
2022/2/21更新:
讲个笑话:ah的ics课程群里没有匿名,出分后一片死寂,大家都去马老师数据结构群吐槽,最后估计是马老师都看不下去了,全员禁言了
2022/3/6更新:
从开学以来, 只要某个计科群聊 (包括课程群) 有匿名, 就会有人骂ah, 真是叹为观止
ics今天好像补考结束了? 这里希望ah做个人,别再挂那么多了, 也祝补考的xdm顺利上岸, 逃离ics的魔爪!
讲的是真的不行,教材还是很好的,其实是很简单的一门课但是讲成这样实在是难蚌 讲的真的烂
哥们不想看英文实验说明了。为什么非要用英文呢不太理解。
实验也太多了吧,哥们要吐血了。
受不了了我要再喷一会,本来实验就够恶心的了还是英文的,意义何在呢我服了,创建这课是折磨学生的吧。
bt助教…都放假了几个破实验跟叫魂似的一遍一遍艾特全体,还有某些助教们出的狗屎卷子,自己渡完了劫就来给下面几届上难度是吧?纯纯bt
老师就不骂了,其他评论都骂的差不多了。虽然是这门课里相对最不抽象的了,但还是有幸成为一年半来见过的最离谱的老师
绩点不错,老师助教都是朋友
才想起来题是助教出的
今天积点口德,误会我们张辉鸽鸽了,逮日子再骂那几个煞笔助教
这老师好像有点心理阴暗,出的题巨tm阴间 喜欢在题里面加入一点小trap,这样你才知道你做的是zh出的题 似乎以折磨学生让做题人得不到分为乐
感谢ICS,没有你我的大二下有一定可能寸步难行
个人认为ics这门课在计科的地位是十分尴尬的,计科是大二上学这门课,在此之前已经学过程序设计I,程序设计II,对程序设计已经很熟悉,加之同时间也在学习数电,一开始对这门课的导论性质可能不屑一顾,然后到第四章第五章的时候就会突然发现自己作业不会做了(bushi),此时为了做好作业再开始自学就会漏掉很多细节,导致考试的时候出现一些问题。以及这门课期中考试之后几乎没有lab和hw了,让人感觉期末和期中差不多的样子,实际上期中之后新内容又有一大堆……另外lab没有oj,就导致你交上去可能会不过,要重测的话就会扣分,总而言之有点阴间。(隔壁lly自己做了个oj,快去膜)
谈谈老师,我觉得老师虽然上课水平略逊一筹,但是给我们推了很多不错的资源(比如翻译软件和Patt试卷、课后习题答案等),可以看出老师还是用心了的。补一句,这门课是这学期才计科通修的,老师之前应该没上过这门课,第一次带课教学方式还要多磨合,出点漏洞也算是能理解吧(态度还行)。
给修这门课的同学一点建议:
①搞一本中文书(第二版)来看,不要捧着第三版英文教材折磨自己。
②学会查文档,从这门课起学会提问的艺术。
③自己独立完成lab和hw。
④学会C++,特别是stl的使用,会对你的大作业很有帮助。
12月实验轮番轰炸不说,关键是你实验给反馈啊,你用个英语文档,一些细节含糊不清,也不出分,代码检查是脚本改的,万一有同学因为一些细节就把代码分全扣了怎么办,等到出总评了再调查吗?不知道为什么每次实验不出分,不给一些反馈,是害怕学生找麻烦吗。(实验文档写的稍微清楚点,一些标准说清楚点也行啊),这门课评分这么低不是没原因的
公布实验分数了,故上调到6分。
建议考试之前画一个二进制-十六进制-指令的转换表格。期中考涉及了大量的这种换算,期末考也有一些。
(对于我来说查表比一个个算快多了
评分情况:全勤,期中 60,期末 70,有一个实验错了 = 总评 90
对课程的个人感受:
期中考后写的:
感觉考前复习不如熟记 16 以内二进制表示有用捏
(还有做程序题就像猜谜一样,真是太有趣辣
2023年秋季我申请了这门课的助教,希望可以给要上这门课的同学一个良好的体验。
之后估计会把文末的坑慢慢填完(应该不会咕好像还是咕了)
建议计科的同学看看这份点评ICS的评课
今天把成绩提交给老师了,本学期的助教工作终于告一段落。
这学期我主要负责的是和另外两位助教一起完成作业部分的出题工作。
我们班级这学期的课程主页见 计算系统概论 FA23 | ICS Fall 2023,基本是在去年课程主页基础上修改而来,不过有对评测机做了一点点微小的修改。
总的来说感觉很遗憾这学期没有对 ICS 做更多的课程改革,给同学们带来了不太好的课程体验。
首先得说清楚这门课平行班和 H 班联系比较紧密,在课程设置上 H 班和平行班只在实验上有一些区别,所以这学期四个班十一位助教是一起分工完成任务的。同时,这门课,也就是计算(机)系统概论,总体还是以安虹老师(教材第二版译者,也是最初课程的老师)为主要负责人。
以下是一些从课程设计角度对某些槽点的原因分析。
1. 所有的材料(教材、作业、实验、考试)全英文:学期初老师对此的解释是以后的学习/科研过程中,对英文材料的阅读是必须的,同时这门课中英文的难度其实并不高,这点即使以后课程改革估计也是不会变的。
2. 实验出得太晚,到了期末周还有两次实验:这确实是课程设置的问题。原本学期初定的是平行班 1次机器码+6次汇编+最后一次用高级语言实现之前实验,不过最后第7次变成了汇编器,大概是出题助教觉得汇编程序整不出活了。但实际上,因为课程设置原因,期中考试的时候几个班基本上也就刚讲到第七章或者第七章讲一大半,此时也就才能布置第二个实验,而往后的实验有的又必须得讲到对应部分才能布置(尤其是递归,输入输出和中断异常),所以如果依然是这样的实验设置,实验就必然会拖到考试周。个人建议以后的助教如果有心,可以考虑建议把后面的两次实验移到前面,换成学习 chiragsakhuja/lc3tools 命令行源码的内容,不过一定得做好引导。
3. 作业,实验,考试相关性不高:这可能也是课程安排上的问题,三个部分出题是三批不同的助教分别负责。但个人感觉这个也没有什么好解决方法。
4. 考试难度过大,比较考验思维:个人觉得 ICS 的考试主要考察应用,而不是考概念,一个可以考虑的解决方案是作业出题得考虑到考试的内容,这学期确实出作业的时候也没想到去要往年的考试题,以后的助教可以考虑这点。
5. LC-3 作用有限:这个确实没办法,LC-3 本身也就是一个教学用的指令集。
以下是一些对以后课程设置修改的也许不太成熟的建议:
1. 虽然教材上有正确的汇编程序示例,但就我改作业和实验的情况来看,很多人似乎甚至到了期中过后都会写出不符合 LC-3 本身要求的程序。我觉得可以考虑的是把后面的两次实验移到学期前半段,提供一些符合规范的汇编程序,让学生来按照 chiragsakhuja/lc3tools/src/test/tests/samples 仓库里提供的自动测试 C++ 代码来自行编写测试程序以测试 LC-3。之后的实验里,除了汇编程序外,也可以考虑提供/让学生自行编写测试程序。当然,如果这样改的话建议减少实验数量,不然任务量可能太大了。
2. 这学期提供给同学的基于 lc3web 的评测机在使用中还是发现了不少与 LC3Tools 本身不同的,也造成了后续不少问题,如果要提供评测机,建议之后直接提供基于 chiragsakhuja/lc3tools 的测试程序。这学期我们班上测试汇编用的是叶助教手搓的 评测机。
希望这门课以后能越来越好吧,不过这可能需要一代代助教努力迭代才行。
以下是2022年秋季作为学生的点评
张老师上课比较催眠,基本就是把英文的ppt翻译成中文(ics又名张辉老师的英语翻译课),听课体验较差。个人觉得上课听讲的效率完全不如考前花时间把所有PPT内容都过一遍的效率高,而且后者对于这门课完全是足够的。
老师上课会要求到课,点名不到会有扣分,意味着不能翘课(虽然往往点名后的一次课因为侥幸心理实际到课率依然不高)。点名形式有直接的助教点到和写道题目上交。
不时会有让大家进行练习的题目,并让同学进行讲解,讲解的同学可以加分。
老师的ppt会发布在飞书上,但复习的时候发现一些图片出现了错位的情况,感觉不如课程官方主页上的ppt好用。
课堂覆盖的内容是 Introduction to Computing Systems: from bits & gates to C/C++ & beyond, 3rd edition(Yale N. Patt, The University of Texas Austin and Sanjay J. Patel, University of Illinois at Urbana-Champaign) 这本书的前九章,包括二进制,MOS管,逻辑门,组合逻辑,时序逻辑,图灵机,冯诺依曼机结构和一个指令集 Little Computer 3(LC-3)的机器码,汇编,状态机,以及底层微处理器架构。从一个计算机学院的学生角度来说,这个内容只能给个五分,具体原因见后文。
一共六次作业,六次实验和两个附加实验。
六次作业每次十余道题,帮助巩固所学内容,ddl会在两周以上,二等级制,所以不算难。
六次实验因为需要在讲到LC-3的内容之后才能布置,时间比较紧张,到了十二月好像才布置了三个实验,几乎是每周都有实验,ddl是两周时间。除了第五次实验,难度都不算高。
附加实验分别是LAB A(assembler)和LAB S(simulator)也就是LC-3的汇编器和解释器,使用C++完成,助教提供实验框架代码,测试样例和文档说明。并不强制完成,完成有加分。实测完成一遍的收获还是不少的。
真正这门课学到的内容可能没有太多,大概包括IEEE-754,一个指令集对应的硬件执行逻辑,汇编器进行汇编的细节,但个人认为这门课原本可以带给大家的收获实际上不应该就这些,具体见后文。
老师讲得一般,同样的课程,隔壁苗老师并不要求到课,室友实测可以一学期都不到场。安虹的班级不太了解,建议自行权衡。
以下与评课无关
助教:这门课有好几位神中神助教,技术大佬lly,学院偶像xls,总能及时回答问题的ysy,学习体验拉满。选课还是应该选有这种愿意在课程群里及时回答问题助教的班级。助教自己做了一个我们班级的课程主页,用于发布相关消息
考试:这学期期中考试比较困难,第一大题里就出了一道写汇编语言程序的题目,考到半个小时左右老师来说考试时间延长。期末考试体感更加简单,但因为有四道多选题每题5分的存在,最后均分甚至比期中还要低一些。多选题最后按的是全选对给5分,选对部分也给一点分判的。
给分:老师第一节课就提供了给分公式,期中(20)+期末(20)+作业(1*6)+实验(8*6)+讨论课(1*6)+参与分(-3~3)+附加实验(3+2)=108,如果算出来高于100分就按100分给总评。最终算出优秀率为38.6%,老师最终还是上调了一下的,同时出总评前老师还尽力让助教找可能会挂同学把没交的实验补交上,可以说是尽力在捞同学了。
一些资料分享:包括上学期的期中考试卷及助教个人解答和这学期的期中考试讲评ppt(不完全)
个人认为,不应该让计科和ai还有大数据修读同样的课程内容。应该说,这门课让大家觉得不够好的一大原因就是因为这门课是同时开给三个院的。从计科人的角度,在这学期同时在修读模数,那门课上深入讲解了组合逻辑电路时序逻辑电路状态机等等,那么这门课就不需要花时间从头细讲,甚至可以跳过,直接从第四章冯·诺伊曼结构开始。对于另外两个院的课程情况,我个人不太了解,但似乎他们没有别的课来讲这些,所以这门课又不得不再将这部分计科已经讲过或者在同一学期还会再讲的知识再重复一遍,而且讲解得还没有模数深入。举个例子,MOS管的符号,这门课使用的是简化版的,N型就是一条竖线,P型是加上了一个小圈,这样的符号就掩盖了本质上PMOS和NMOS存在的方向性。因此,这本书不得不另外开辟一个小节,说明颠倒后的PMOS和NMOS会导致漏电的情况,但为什么会漏电,书上用的语言是because of the electrical characteristics of the transistors,相比之下,模数就会从MOS管的构造上进行解释,无需死记两种MOS管,哪个必须连在哪一极上。在这门课讲MOS管是在第三章,当时我只是死记硬背,而模数讲MOS管是在期中之后,那时我才真正理解了其中的原理。
可以理解这门课作为一门导论性质的课程,想向我们展开高级语言之下的内容,但可能正是一开始的部分过于冗长,才导致了课程实验部分的整体后移,前半学期几乎没有实验,后半学期每周布置一个实验,带来大家体验上的不满。而这同样导致了这门课的另一个问题,名为计算系统概论,实则只覆盖了ISA之下的内容,大概这也是为什么有学长称之为计算机组成原理导论。以下为patt这本书上的截图,七层的内容,这本书花了20章,从门级电路讲到C/C++(这也是这本书的副标题),但这门课只讲七层里的下一半,只上这本书的前一半。从讲授的完整度来说,这门课的内容确实是自洽的,但最后的结果却是对计科来说所讲的内容大都被别的课程完全覆盖,剩下里别的课不讲的只有一个用不上的玩具LC-3,对AI/大数据来说也许有的内容别的课不讲,但又大都是过于底层的知识,真正有用的内容如虚拟机,进程,虚拟内存,文件这些系统级抽象的内容,并发、虚拟、共享、异步这些也许可以称得上计算机系统精华的概念,却没有一个在这门课里有被提到过。看他们的培养方案似乎操作系统都是选修,不知道他们有没有学习这些的机会。
以下这个表是CMU的ICS(15-213)用书CSAPP列出的基于那本书可以开的五种课程,从这个角度来说,我们这本书大概只能算是ORG的子集。而中文译本中,对ORG的解释是一门以非传统风格讲述传统主题的计算机组成原理课程。书中把15-213划分为ICS+,同样是一学期时长的课程,这门课和15-213的差距大概也反应了科大CS和世界顶级CS之间的差距吧。
在这学期重新过了一遍 ICS 之后回顾一学期学的内容,其实这门课讲的内容又其实是有迹可循的。首先从如何在计算机里表示数 (数制、补码、浮点数)讲起,有了数之后就需要考虑如何进行运算 (晶体管-> 逻辑门-> 组合电路),运算之后把值记忆起来 (锁存器-> 寄存器-> 存储器-> 时序电路),有了时序电路就可以搭建起状态机。一个个部件以一定的架构 (如冯诺依曼架构)组成了计算机,之后这门课就以 LC-3 指令集为例,介绍了数据结构、函数、 IO、中断。
对于计科的同学来说,这门课应该可以算是下学期的组成原理/操作系统的铺垫,某种意义上,这门课已经把后续组成原理多周期指令集部分讲了不少,同时也涉及了不少操作系统的核心概念,相信在下学期,同学们会多次想起 ICS 的。
对于人工智能/大数据的同学来说,不知道这门课之后会不会再接触这方面的内容。不过我想,这门课相当于简化版的 组成原理+操作系统+编译原理,之后写高级语言的时候,能记起计算机实际执行的是底层汇编代码,考虑性能时要考虑汇编层面大概也就可以了。
免责声明:以上仅个人见解,不保证没有错误。
zh,给分的神!期末均分比隔壁mfy班和ah班低了不少,太躺了。最后给分神中神,期中过平均分一两分,期末过平均分两分,实验有一次迟交,最后给了82,谢天谢地了。(说实话这学期在ics花的时间只比公选课多…
助教赞中赞,神阵容。技术之神lly,习题课之神ysy,色欲之神xls(确信
不过张老师讲课尬中尬,感觉对大学授课方式有独到的见解(指上课日常反问同学企图互动,回答问题加分以诱惑同学,人称翻转小课堂),一连三节课真的吃不消,加上上学期全程网课,好多人都不去上课了。
从8分改为10分了
赶在ddl当天出成绩,可见老师也是顾虑和考虑了许多同学的分数吧,真的很奶了
作业全交,实验貌似扣了一些分,课上回答问题+1分,附加写了+5分,期中99分期末79分,根据下面给的评分公式算了一下大概就总评100+了,总评出来也是100,这是我在科大第一门满分的课!
以下为原评价:
ICS真的是十分满足我对计科入门级课程的期待
不过放在大二上是不是有些晚了
LC-3如此简单的计算机架构应该在大一就让计科的同学接触
我觉得这门课对理解和学习后续计算机知识有深远的影响价值
那么废话不多说,就事论事谈谈这学期选zh老师的ICS课程的体验吧
先说说ICS这门课的上课体验吧,一个字:水!
ics前期课程真的很水,进度也慢,和这学期的其他课程的内容也有重叠(说的就是你,模数),前面的课带着电脑去上课一直都在玩,几乎一节课都没听过(事实也证明这门课一节不听也没啥关系,重点是看书),然后到后期作业和实验堆在一起,倒是需要费些功夫花些时间在上面,不过总体还算是一门水课。
ICS这本书真的非常好,词汇并不算晦涩难懂,都属于是计算机的专业术语范畴,前期可能会有些困难,但是一些常见词多见几遍就也认识了),书上的文字简单易懂,每个地方都能讲的很清楚明白,只要好好看书完全不用听课(但是不代表你不去上课,这课有6分签到点名分,还是需要上课找个角落摸摸鱼签个到的)
再说说教这门课的老师:zh
其实大可不必为了那点所谓的给分好坏选其他班老师,按照这种逻辑一般对分数比较看中的同学都会蜂拥挤向给分好的老师的班,造成更加严重的内卷,所以还不如听天由命给谁上谁,反正这3个老师给分差距也不大(根据自己周围同学调查所得),而所谓给分更好的mfy老师的班级卷度更高,这一点也能从期中成绩平均分他们班是70+而我们两个班都是60+能看出来,所以真的没有必要为了润而润,这课跟老师没啥关系,关键在于自己,但是你说你想什么都不干还想拿高分数,我只能建议你自己爱咋咋地)
然后说说这门课的助教:ysy,lly,xkz三位男助教都是非常负责任的助教,经常在群里耐心地回答问题和吹水,tx和csy两位女助教就相对比较隐身了,在群里也不怎么说话(也可能跟我们这个ics群乌烟瘴气的gn风气有关🤣),不过倒也没事没事,女助教负责美丽就可以的)
作为不听课的典范,助教的工作就显得尤为重要,我看书不仔细对有些地方没有头绪就去骚扰ysy助教,助教总能在任何时间及时的给我答复,甚至知识点精确到书的页码,狠狠的佩服和赞叹,ysy大佬yyds😭😭😭
再说说这门课的给分标准如下:
平日成绩
(60 points)
6 次实验,每次 8 分,
6 * 8 = 48 points
每次实验要求参照对应文档,实验报告占 50%
6 次作业,每次 1 分,6 * 1 = 6 points
讨论班预计 6 次,最多请假两次,其余的未到一次扣除一分,
6 * 1 = 6 points
主题报告
选做,每人限一次,需提前联系助教
可获得 1 分到 2 分(表现特别优异)的加分
课堂参与分 [-3, 3],包括小测,点名和上述的讨论课主题报告等
考试
(20 + 20 points)
期中期末均为开卷考试,时长 2 小时
题型包含选择,填空,简答,复合等
附加实验
(5 points)
LC3 汇编器 (3 points)
LC3 模拟器 (2 points)
最后是这门课的考试,期中期末总共40分五五开,这学期期末要比期中简单不少,因为光按照时间来算的话,期中因为太难题量太大甚至还全体延了半个小时,而期末就没有延时)
期中卷子是几个出的,难度在于题量和细节,我还记得奋笔疾书一路狂写终于在距离考试结束前3分钟极限写完,结果老师进来宣布由于试卷难度过高考试延长半个小时,当时我直接蚌埠住了,剩下半个小时也没什么耐心检查了,草草看了几眼就交卷了
而期末就不一样了,期末慢慢悠悠写完整个卷子还剩半个小时,由于是最后一科考试了,满脑子都在想着考完出去旅游的事情,所以感觉时间过得异常缓慢,考完班里整体氛围也要比期中愉悦不少,询问了一下同学大概都是跟期中相比提前了半个小时多写完,这也侧面印证了期末难度确实低了不少)
个人感觉对于这门课,自学的效果好于听课。教材写得很通俗;但老师的上课水平实在不敢恭维,不过大学教授的工作重心本来就不是授课,所以可以理解。因为这门课适合自学,而且各个课堂统一阅卷且按照相同的标准给分,所以在不同课堂修读本课几乎等价,所以以下评价不针对特定老师。
这门课的风格与学校其他课程格格不入,似乎在生搬硬套美国的课程,请做好心理准备。首先,课本、幻灯片、作业、实验要求和考试试题都使用英语,甚至试卷开头还模仿美国的试卷要求签字保证“I will not cheat in this examination”。其次,6次作业一律以application/pdf格式在课程主页(可能是囿于技术水平,这一学期使用了坚果云)上提交,不接受纸质作业,作业提交即得满分。最后,原本的习题课被讨论课取代,而且强制参加。
开学初规定的分数比例是:作业6分(一次1分),讨论课签到6分,必做实验48分(6个,一个8分),期中考试20分,期末考试20分,选做实验10分(2个,一个5分),讨论课做报告2分(一次报告视情况加1~2分)。然而出分后,大家发现自己的实际分数普遍低于按比例计算出的分数,而且老师声称优秀率是39.1%(52/133),所以合情推理按照原来的比例算出的优秀率超过了40%,于是进行了适当的反向调分(很可能是×10/11)。起初约定在课程主页上公布考试和实验的分数,看似给分公开透明,然而期末考试结束后,课程主页上公布的成绩就再也没有更新过了,所以最终的分数占比不得而知。
这门课从英才班课程沦为全校同修课程后,形式和内容没有多大改变,而且给分肯定不可能如以前那样好了。建议修读这门课的同学认真对待每一次实验,尤其是实验报告(这学期我几乎在乱写实验报告,估计扣了不少分),把仿真器实验和解释器实验当作必做实验完成(以这学期的情况,以后它们很可能就是必做实验了)。
另外,这门课适合1秋修读,这样才能发挥“introduction”的作用。(不过刚入学的同学似乎还没有看评课社区的习惯)
我本来认为张辉老师虽然上课内容混乱、重点不突出,但至少没有知识错误,但是寒假自己实现LC-3的电路时才发现,老师对LC-3的微结构理解并不透彻,所以无法理解为什么状态18不能同时检查[INT]和[ACV],以至于在复习课上声称用单独的状态检查[ACV]是多余的。事实上,Patt精心设计了LC-3的状态编码,使得状态转移可以使用ROM和教材图C.5的组合电流实现,而如果状态编码是随意选取的,状态转移恐怕就需要64选一MUX了。正是如此简洁的状态转移电路,导致一个状态只能对一个信号判断,所以[ACV]和[INT]才只能在不同状态中判断。
由于老师自身对授课内容理解不深入,而且上课内容有错,所以再扣一分(7→6)。
对比了安虹班的给分,还是建议选张辉班,所以上调两分(6→8)。
附所有的作业和实验的题目:LCS-2021-hw_lab.tar.gz
第一节课人满为患 第二节课只来一半
作业交了就有分 附加实验做出来的话会很吃香
班里卷怪浓度较低 给分也很奶
优秀率39.1% gpa大于等于4.0的同学有43个
心怀感激 谢谢zh
先占个坑 等我考完再来
十二月十二日记,你只有一个选择,就是不要选zh的课。不光老师讲的烂,同学也有一堆卷王阴阳怪气。love&peace
——————————————————————————————————————————————
一月二十九日记,一分扣给jwc,一分扣给老师讲课水平,一分扣给卡绩
emm这门课知识很简单,教材写的很通俗易懂,我没买第三版中文版,直接看的英文感觉还可以(!!!注意第三版和第二版有的知识点修改了)。
老师讲课真的很烂(虽然他努力了但努力没什么成效),有时候看不到ppt我人都听麻了最后直接开始摆烂。只能说这个班不卷适合喜欢自学的同学。
——————————————————————————————————————————————
三月二号记,处处都有ics,处处却又都不是ics。你离开了,我心中还留着你的影子orz
张老师绝对不是不备课!由于后期实验比较多,我也没有做到全程认真听讲,但是课后看张老师PPT,应该是三个班里最全面的,说明张老师还是很认真备课的!今年是张老师第一次带这门课,所以即使不算完美也完全可以理解,相信张老师以后再带这门课会更有经验! 至于课程学习,教材是好教材(但是全英文实在有些难啃),PPT简明扼要可以帮助理解(尤其是冯诺依曼那一章指令的执行流程),课时属实比较紧张,建议课下花时间把课本通读搞懂(至少前十章+附录AC吧),收获还是蛮大的
来当一回理中客(认为我利益相关也可以,毕竟得了加分)。关于负面的事情,之前的评论已经很清楚了,只是个人认为,这些比起「不负责任」,更多是无心之失,往好了说也可以是失败的改善教学的尝试。关于讲课,三个班都是读PPT(这并不是取决于讲课水平,而是由于PPT十分详尽),实在很难说什么好坏;而第九章的补充内容是老师自己制作的,还有只有我们班有的复习PPT,都足见老师的用心(个人在对比我们那段的PPT与别的班的时着实感觉到了惊喜)。给满分拉分,客观评价8-9分。比起全是卷王的隔壁ah,我们班真不至于如前述评课那么糟糕。
事到如今可以把给分调回9分了,感谢隔壁某班。现在想来,这课对我的最大意义大概是「学会了及时查看课程主页」,因为这是我的第一门有自己主页的课。
至于内容,在下一个学期学习COD与OS后,LC3便显得更像个玩具了,很难说对之后的学习起到了什么实际作用。所以说,这门课似乎确凿应该移到大一替代某没啥意义还搞点名小测还不让叠课的计算机导论。
2023.3.14更新,zh班已经是三个班评分第一了,不如预测一下明年会不会再次隔代遗传。(什么酒馆博弈论)
助教好棒,写lab2出了好多操作问题(怪我习题课没有好好听),助教都在耐心帮我解答,满昏满昏
看着隔壁班比去年高20分的均分以及许多90+,已经瑟瑟发抖了,做好重修准备了╭(╯ε╰)╮
3个100,神
zxh助教的溢出2分也是神😭
先叠个甲,以下评论仅代表个人并不成熟的观点。我没去上习题课,所以助教上课发表的言论我并不清楚,我仅想表达对ics这门课的观点。
应该说,刚开始上这门课我是非常抵触的,因为上来就是硬件和电子线路。作为一个电学苦手(我所有大雾实验跟电学相关的都拿到了83-的分数,过程更是折磨),大部分时间跟听天书一样。
但是进行到lab01的时候,我开始感受到这门课的背后逻辑。就像书名说的一样,它尝试向我们介绍计算机的一个整体架构,如何从晶体管一步一步搭建到C/C++这样的语言。
当然,你可以说这门课对AI/DS的学生没什么用,我就是DS的,我也认同ics看上去就不如ml更契合我的专业。但是我认为这门课对学科素养有建设性的作用。信智的学生不知道自己写的代码背后如何一步一步实现,有点像物院学生做大物时候跟着讲义测数据不了解原理一样。
以上仅代表个人观点。说了也白说,不说白不说。
从课程本身的内容来说相当不错。学完之后可以对“计算机是怎么工作的”这个问题有一个初步的了解,从我个人的角度来说确实学到了很多东西。教材也很好,写得浅显易懂,非常适合自学(建议读英文版教材)。期末考试前能把Appendix C读透就没有太大问题。
在实验方面,根据对往年评论的观察,今年的变化是取消了附加实验中的Lab S,而Lab A变成了必做。最后两个Lab都在期末周属实难受。我的评价不如取消前面个别Lab,不要占用期末周复习的时间。对于Lab A建议提前学一下C++,会方便很多。
教学方面没什么好说的,第一节课之后就再也没听过,去上课完全是因为会有小测。自己看课本的话学习效率大概率高于听课,并且从其它评论来看考试重点考察的内容与上课内容接近正交。
另外放一个之前OpenAI推出GPTs功能之后随手做的一个GPT:https://chat.openai.com/g/g-8gpT1kAfC- lc-3-helper ,上传了英文版教材作为知识库,可以随便问一问,准确度不一定高(需要ChatGPT plus订阅)
2024.01.25更新: 出分了,期中51.5,期末84,平时分48.5/50,总评92,比按照比例算的高8分。
一般ICS被认为是一门不上不下的蟹壳,不过对我来说也许这样一门不上(不是很难而且比较水),不下(能学到汇编,数据通路,中断异常,MMIO其实可以打消很大一部分对COD的恐惧)也许刚刚好。
不过这门课的期中考试因为我记性不好所以在机器码和汇编互相推理时瞻前顾后还一步错步步错的综合题所以给我留下了很深的心理阴影,不过同样因为我记性不好所以现在好像也不是很有心理阴影了,但是因为我记性不好所以最好现在写一点防止以后记吃不记打(逃
优点:
这门课在张老师班好在不如另外两个班卷,而且助教很可爱负责,甚至可能助教才是这门课的最大亮点!
成绩评定楼上说得很清楚了,只要记住这门课重头戏是各种实验,以及我告诉大家LabA&S其实不难,所以做完很有性价比,而且受益匪浅。
缺点:
这门课程的前面三章很无聊而且很肤浅,重合性太高,感觉存在的意义不是很大,只是为了只是完整性以及方便期中出一些题目之类的。同时在补齐机器码的题型中极其折磨人而且容易出很坑的题,所以感觉意义不大?老师也很放羊,上课催眠,但是会点名。
重修人来简单说两句(为什么重修就要问当年某班的统一玄学压分下调了,草)
LC-3 这种屑东西数据通路对大二的很多人来说都是偏复杂,你要我说半个学期不到对纯新手讲通数据通路不是很现实的事情,再者课堂上也没这功夫,完全可以把魔术,cod,ics合并成两学期的一门课系统的从晶体管到完整通路,而不是上三门有所重叠的硬件课,毕竟 RISC-5 比 LC-3 不知道高到哪里去了。再说了人家 UT Austin的 ICS 占的课程地位也要比之妮可的数理基础也不遑多让,本身设置就是不太合理的。
本门课的助教都想方设法给本门课程赋予 missing semester 的角色,这确实是一个相当辛苦且负责的工作,毕竟比起某些所谓的嗯课这才是量物学部的同学恰饭的东西,某种程度上习题课讨论课比正课要有意义(bushi)。
开学火速看几天菜鸟教程学点基础的 `cpp` 知识(按这两年的例子会基本的面向对象和 stl 再补点 String 的基础知识就行)把附加拿下。从应试角度来看后面几章废话不少,可以挑点重点看看(mos门,float啥的,必考)。之后重点是汇编码和通路,汇编码没啥好说的,从 c 语言出发就完事,掌握几个基本的 c 控制流写法啥的就行,和八股文一样。lc3 的通路上课讲的不是特别细,建议找个其他汇编语言的简单通路尝尝味道,什么csapp 对应的 x86 和 cs61c 教你的 riscv (直接找对应的洋ppt就行,写的确实蛮好,内容也不算很多)都可以,提前学点流水线在理解上也不是太难。(综上科带的cs确实像文科,我的评价是少学点物理在大一给大家把ics上了吧)
给6分并不是因为老师,而是因为课程安排。张辉老师似乎是刚接触教学,发明了不少新颖的课堂模式,这是值得肯定的。这门课强烈建议计科同学在大一上学习。本来是非常有价值的一门课,在大二上学习使它完全失去了意义。另外非常反对使用飞书+课程主页的通知方式,毕竟其他科目都是QQ群,很容易遗漏消息。本人就是因为忘记查看飞书消息,导致一次正确的实验被判0分没有及时提交反馈遗憾3.3。也从侧面看出助教的检查不够细心。
吹爆助教姐姐,真的很热心!!
半期考刚考完,聊聊自己的感想:
最开始学这门课的时候还是有被学长学姐劝退了,大概是因为课程实验多+考试难(。但是半学期下来感觉学了很多很有意思的东西(先不说有没有用),了解了计算机的基本架构,LC3的汇编语句。个人感觉作业量不太大,实验(到目前为止)也不算太难。助教们都非常热心,q群的氛围非常好(雾)。虽然个人不是计算机系的,但是这门课确实激发了我对系统方向的一些兴趣qwq,未来也许会考虑选修一些系统的选修课喵。
半期考的猜程序挺折磨的/ll,不过今年的难度肉眼可见地降低了很多,也算是课程的一个改进吧(赞一个)
助教泥…
课是极简单的,考试是极恶心的(期中平均分40,期末平均分50多,与课程的简单程度形成鲜明对比),如果觉得课程太简单没有区分度不如把学分降低一点改成二分制当成通识科普课,而不是在试卷上整脑筋急转弯和心灵感应。 实验安排得很不合理,一共8个实验前14周只布置了3个,剩下的5个实验里有2个是在考试周。 作业是二分制就不骂了。 老师上课略有点尬,经常反问同学但没有回应,不过给分好像还不错(作业占10%,实验40%,期中20%,期末30%,课上签到或回答问题应该还有2分附加分,此外总评应该还整体上调了好几分),如果一定要必修ics的话选zh还是推荐的。 最后吐槽一下,期末考的重点之一——LC3的数据通路和状态转换,感觉上课都没怎么讲,细节全靠考前自学的。
实验贼多,教材英文教材,一点收获也没有,典型的屑课!!!期末周2个lab,搞笑呢?!
非常不推荐修读!
能不选就不选,不是老师的问题,是这门课的问题
给分等出分之后再说~
出分了,没挂掉,给分还行…对于需要GPA的计科人不推荐(貌似大数据和人工智能是必修的…),辅修人随意,混一混应该挂不掉
这门必修课糅杂了数电,组原的一些内容重叠程度过高,个人感觉没有很多开设的必要.很多东西可以在COD里讲清楚的.但是它毕竟教了一点东西,所以感觉最好的方式是将这门课和模数电结合然后砍掉一些(比如模电)。
关于学习的LC-3指令集虽然指令简单适合入门,但是感觉学完收获很少,对代码能力提升有限,只能说帮忙入门了汇编和简单了解了计算机系统的架构(但是LC-3,谁用啊).6次实验感觉前四次量都不大但是貌似有各种扣分(?),代码和报告分对半开感觉有点离谱(个人感觉每次报告分占实验1/5-1/2就足够了)
期末考试有点想让人吐槽,考前狂补,附录C(LC3FSM和DataPath)但是期末感觉侧重点不大,只有一道大题(还结合了一点数电设计),数据结构没怎么关注结果一道大题考栈和队列直接寄了(听说是Pett原题,考场上知道原理但是填空不知道怎么的感觉和题目思路对不上),跟着后面时间不够甚至没写完qwq.(期中因为题量我也寄了)
总评还没出,暂不评价(但是两次考试都不咋地也不报太大希望).
收获最大感觉是两个附加,认识了GNU/linux C/C++基本开发链,make/Cmake多少了解了一点,实战中也学了一点点C++,虽然还不太熟练。因为代码骨架是给出来的所以难度和代码量大大减少,感觉对新手也比较友好,而且助教们还有习题课讲解,所以即使之前没有基础也可以做出来. 这里再次感谢许助教和隔壁肖助教(x).
这门课助教在专业课里感觉算不错的了,我们组助教回复及时并及时接纳意见,课程群里感觉三个男助教回复还蛮及时的,而且很有水平,太i了(比隔壁mjh数据结构的研究生助教好114514倍:( )
---
出分了,追评赞美老师助教(期中期末151 +附加==95 ,爱了)
首先吧,感觉这门课,看似很难,其实不难而且有点水((在于几乎不会占用平常的什么时间
这门课只要看看原版英文书,对照着第二版中文的书来学习就好了,一学期下来感觉也没什么收获。内容不难,期中考试挺简单的,期末考试有一定难度,但是如果仔细学习书本的数据通路和做做patt的往年题,还是会做绝大多数题目的。
至于老师,,这学期刚开始时我是想好好听课的,但后面也基本在玩手机了。确实是因为老师的讲课水平有待提高,(或许是因为他第一次带ICS?),同学们都在吐槽,,(或许是因为这门课的性质吧)同时 助教也很摸。。但是看得出老师还是挺关心我们的,, (只是课堂确实槽点太多) 还是要感谢助教和老师一学期的辛苦工作。。
感觉给分是不是调了比例啊,,反正我没太想明白,好多人吐槽分数的问题。。 我的建议是一定要写好实验报告(但不是卷字数)(记得看清实验ddl)
课讲的真的垃圾,完全听不进去,基本靠看ppt和书自学,老师讲课水平太差了。离谱的是ppt,书,作业,实验要求和考试都是纯英文,太逆天了。总共八次实验,有两个实验特别恶心,建议实验别赶ddl,要么提前写要么找别人的借鉴一下,不然迟交扣分。两次考试都是助教出题,期中难得离谱,考了一堆数电内容,平均分40,不知道助教在想什么,期末还可以,比较常规。不过老师给分真的好,作业实验,期中,期末523的比例,因为期中分数太低了所以最后统一调分,看样子是给满了优秀率。最后总评87,还可以吧。
大二上相对轻松的一门课,而且认真学收获真的很大,虽然老师讲的一般般但是自学看课本也能学到很多东西
出分了,期末太摆了卷面有点低,都怪自己寒假太摆了()
8分全部给本学期几位非常负责任的助教,因为我没听过一节课,没看过一眼PPT(
几位助教在整个学期中基本上有问必答,非常热心,与隔壁数据结构班助教形成强烈对比
实验巨大痛苦,学了汇编之后才发现高级语言这么简单(
我比较摆,作业二等级制瞎写,期中考排名60%,期末40%,做了讨论课和附加,最后88分,据说给分比隔壁mfy好得多(
讲课很一般很一般,但是不听一遍看ppt有点费劲(为啥非得英文ppt额,不懂)全英文课本(第二版倒是有中文,但是和第三版有不少不一样的地方)这门课考试不是重点,期中20 期末20 还没有实验占比高,想卷一卷附加实验必做的,难度其实不算大了,框架给的很好了,而且习题课讲的也比较详细,有一些接触过的东西,但是完全不用很好理解,无论是C++还是make都是现用先查就行,框架看不懂地方就百度(运算符重载那里看老半天。。)附加总共写了一整个周末,稳定5分,相当划算了,相当于考试多考20分。。
期中80 期末80+ 两个附加都写了,总评4.3
最后大赞lly助教和xkz助教,很热心,上这门课时解答了很多问题,即使结课了还帮了很多忙
好像做xls的狗啊٩(♡㉨♡ )۶
但xls喜欢的是妮露
嘿嘿嘿,xls,嘿嘿嘿
—————发电分割线————
写给学弟学妹:
1.课本还不错,推荐大家下个有道翻译app,拍照翻译看英文课本
2.课可以不听,但书要好好看,考前patt真题要做一下的
3.考试只占40分,平时实验48分,好好做,推荐下个typora写报告(收费软件,但是真香) 注意:实验一很简单,半小时就能写完,但是占8分总评。不要摆烂!!!(血的教训)
—————发电分割线————
嘿嘿嘿,xls,嘿嘿嘿