| 选课类别:计划内与自由选修 | 教学类型:理论实验课 |
| 课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
| 课程层次:专业基础 | 学分:4.0 |
本课程作为计算机科学技术专业的入门课程,采取自底向上的教学模式,跨系统地介绍计算机系统的核心概念和设计思想。从介绍计算机系统的底层基础知识开始,逐步上升到操作系统和高级语言程序的接口层,将软件和硬件联系起来,阐述从问题描述到算出结果的七个层次的转换过程:从问题到算法的转换、从算法到高级语言程序的转换、从高级语言程序到(用指令集结构描述的)机器语言程序的转换、从指令集结构到微结构的转换、从微结构到逻辑电路的转换、从逻辑电路到晶体管器件的转换。主要讲授内容包括:从MOS晶体管开始,依次介绍逻辑门、锁存器、各种逻辑结构的设计;然后围绕一个简单的计算机设计LC-3,依次介绍冯?诺伊曼计算机系统模型、指令系统设计、汇编语言程序设计和微结构设计,为初学者建立起对计算机系统的完整认识。在此基础上,介绍汇编语言程序设计、物理设备的输入和输出机制、操作系统的陷入机制和子程序调用和返回机制、以及栈和数据转换的原理和机制。
安虹老师的《计算机系统概论(H)》课旨在从底层构建一台小计算机(LC-3),涉及从门电路到汇编语言的多层次内容。课程前期与数字电路有一些重叠,但也提供了更广泛的计算机系统概念,虽然课程名为概论,却未能全面涵盖计算机系统各模块。课程强调level of abstraction,但实验中未能充分体现这一思想,尤其是汇编语言练习更显繁复。
安虹老师授课细致且从容,时常重复内容以确保学生理解。然而,一些同学反映课程节奏较慢,信息密度低。上课采用英文教材和课件,增强了学生的英语阅读能力。课程还包含多次讨论课,但组织较为松散,收获有限。
课程包括多次作业和实验,作业虽不计分但必须提交,实验部分尤其受到重视,占总评比重较大。实验涉及编写LC-3汇编程序,后期大实验(汇编器和模拟器)工作量大且位于考试周附近,耗时较多。实验报告的详细程度对分数有显著影响,报告要求英文撰写。
期中和期末考试为开卷,题量大且全英文,涵盖抽象思维考察。给分强调实验表现,期末考试结束后有调分,优秀率较高达50%以上。然而,部分年份曾出现临时调整给分策略的情况,引发部分学生不满。
课程的在线资源丰富,包含作业、实验及教材链接,但助教表现不一,回应速度和反馈较为缓慢。一些年级的助教在出题方面过于复杂,增加考试难度。
这门课受益于其对计算机系统的系统性介绍,但在课程安排和给分标准上有调整空间。大部分同学认为课程适合理解底层系统设计,是为后续学习打下基础的好课;然而对于非计科专业选修学生,可能体验不佳,需慎重考虑课程难度和时间投入。
《计算机系统概论》这门课程脱胎自 2011 年夏季学期的一门课 https://icourse.club/course/6240/
当时是安虹教授请大名鼎鼎的 Yale Patt 教授在暑期学期来讲的,教材也是他的名著 Introduction to Computing Systems: From Bits and Gates to C and Beyond。
这本书(这门课)跟 CSAPP(计算机系统详解)都是计算机系统的入门书(入门课),两本书(两门课)着眼点不同。Yale Patt 的书(这门课)着眼于硬件角度,看计算机系统如何从门电路、处理器一级级搭建起来的,硬件给我们提供了怎样的接口和抽象。CSAPP(计算机系统详解)着眼于软件角度,看如何用算法和编程语言描述一个问题,操作系统给我们提供了怎样的接口和抽象。这两本书都是不可多得的计算机系统全景解析式著作,即使对于资深的计算机系统研究者,翻阅这本书仍能获得一些启示。
推荐科大计算机系学生选修计算机系统概论和计算机系统详解这两门课,一个是硬件方面,一个是软件方面,对计算机系统的构成有个全面的了解。
课是好课,但是安虹老师把这个课上成了我2020秋最难受的课之一。
首先是上课信息密度太低,一条指令能讲半小时,于是每节课我选择坐在最后一排的角落里写当天晚上要交的实验报告()其次是教室的问题,一百多号人的课,用3A的教室是不是有点太挤了,每次上课都感觉黑压压的一片,考虑到这里面大部分还是计科英才班的同学,每次上课都让人有一种被dl们压迫的感觉;然后是形同虚设的讨论课,几乎没学到什么,还每次占用一个周末的晚上,唯一的好处可能是教会了我如何从容地面对尴尬的社死场合;然后是实验的布置,实验交上去是没有反馈的,直到最后也不知道自己的实验评价是是什么。
不过课上的收获还是挺大的,相当于提前上了组成原理的一部分内容,帮我省了不少事。
老师的给分也很不错。可能是被之前评课社区的评价吓到了,这门课难度没我想象的那么大,甚至不如同学期的模电,光原等课,作为H课实在是有失水准。
最后还有一点,有个助教很帅/可爱,算是这门课为数不多的好处了吧()
快毕业了,统一评课。
这门课我是19年上的,总体不推荐。
给1分不是因为课真的这么烂,只是来拉低一点分。因为实在到不了八分的水平。
第一,这门课每年都能搞出点事情来,搞得三分之一的人很高兴,三分之二的人很不愉快。
第二,老师太右了。常年待在教育系统内,并不知道天下变成了什么样子(与之相反的,某运筹学老师太左了,却也不知道天下变成了什么样子)。ysxt不合,会很微妙。
第三,我当年上课的时候,说好的考试三成,结果却变成了考试七成,一群人考试随便准备的,都在认真搞实验。最后总评策略一换,三分之二的人直接爆炸。
言而无信,也没什么好说的了。
话说回来,优点也不得不提:
这门课确实达到了它的教学效果。
认真学的人,应该确确实实可以掌握“计算机系统概论”了。
这会让你以后省很多事。
总体不推荐。
为了防止学弟学妹看到这个从而误选安虹,特此前来评课。
请到 https://icourse.club/course/20775/ 了解真正的 ics,ah,hyq
这门课从二进制编码开始,一路经过逻辑电路、内存、机器语言、到汇编语言(包括后续基于汇编的输入输出、系统调用、中断程序、栈与工作栈等),讲解了计算机系统的工作原理,内容还是很丰富的。并且课程注重概念和逻辑框架的搭建,没有很艰深的内容。就算到了后期,从作业、上机题到考试也都是有繁度没难度的,完全不用担心学不会,推荐所有同学选。
安老师讲课的风格是一个知识点翻来覆去地讲,非常细致,但个人感觉节奏太慢,不如看书。鉴于所有任务都是用英文布置的,而且毕竟阅读英语文献是必备技能,建议买影印版的英文教材来看(实体书,考试开卷,知行书店有二手书,全新的网上也有卖)。对英语不好的同学来说看书会有一定困难,但请一定坚持啃下来。
作业和实验是这门课的本体,作业题一共6次,一般会给两周时间完成,题型和课后习题类似,不算分所以做的时候不用太纠结对错,按时提交即可。随后助教会把作业答案放到课程主页(http://acsa.ustc.edu.cn/ics/),一定要核对,把错题搞清楚。实验一共5个(往年有6个),同样有两周时间完成,内容为写lc3汇编语言程序实现功能,设计难度不大,但调试汇编语言程序会费点时间。需要写实验报告。
这门课要求两人一组做课程相关的课题展示,在每周末的讨论课上完成。助教会给出几个课题但请同学们不要拘泥于此(今年感觉至少有10个组讲简单复杂指令集的对比……),事实上任何专业相关课题都欢迎。
期中期末两次考试,题型和作业题类似,难度不大但题量爆炸,要加快做题速度。
总评组成:实验原定54%(每个实验9%,但今年砍掉一个实验,不知如何调整了计算方法),展示16%,期中10%,期末20%,作业不计但不按时交会扣分。实际操作时,实验的给分分为两个维度:程序的正确性和实验报告,程序只要大家交之前测试一下基本上都是没问题的,那么主要的拉分项就是实验报告了,经验告诉我们请认真写实验报告;展示的成绩最后助教选择不作区分,基本上都是给满的。这门课不限优秀率,目测大家的成绩还都挺不错的。
最后说一句,安老师是学校超算鸿雁队的领队,每年秋季学期会面向大一大二同学招生,感兴趣的同学请尽早准备。