<
查看: 4985| 回复: 1
收起左侧

[Coursera]The Hardware/Software Interface@UW汇总贴

asiawildboar | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   69
100%
0%
0
公开课
学校名称: University of Washington
开课时间: 2014-07-01
课程全名: The Hardware/Software Interface
平台: Coursera

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 DamienPooh 于 2014-8-16 12:30 编辑

课程名称:软硬件接口感觉非常好的一门课,有点像CMU 计算机基础课中的15-513 的超级简化版
CMU 15-513 Course Description:
This course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of systems-level issues is required. Topics covered include: machine-level code and its generation by optimizing compilers, performance evaluation and optimization, computer arithmetic, memory organization and management, networking technology and protocols, and supporting concurrent computation. This course is intended for incoming Master's students only and may be taken on campus or at a distance.

课程概述
This course examines key computational abstraction levels below modern high-level languages; number representation, assembly language, introduction to C, memory management, the operating-system process model, high-level machine architecture including the memory hierarchy, and how high-level languages are implemented. We will develop students’ sense of “what really happens” when software runs — and that this question can be answered at several levels of abstraction, including the hardware architecture level, the assembly level, the C programming level and the Java programming level. The core around which the course is built is C, assembly, and low-level data representation, but this is connected to higher levels (roughly how basic Java could be implemented), lower levels (the general structure of a processor and the memory hierarchy), and the role of the operating system (but not how the operating system is implemented).

授课大纲
This course should develop students’ sense of “what really happens” when software runs — and convey that this question can be answered at several levels of abstraction, including the hardware architecture level, the assembly level, the C programming level and the Java programming level. The core around which the course is built is C, assembly, and low-level data representation, but this is connected to higher levels (roughly how basic Java could be implemented), lower levels (the general structure of a processor), and the role of the operating system (but not how the operating system is implemented). For (computer science) students wanting to specialize at higher levels of abstraction, this could in the extreme be the only course they take that considers the “C level” and below. However, most will take a subset of Systems Programming, Hardware Design and Implementation, Operating Systems, Compilers, etc. For students interested in hardware, embedded systems, computer engineering, computer architecture, etc., this course is the introductory course after which other courses will delve both deeper (into specific topics) and lower (into hardware implementation, circuit design, etc.). The course has three principal themes:
  • Representation: how different data types (from simple integers to arrays of data structures) are represented in memory, how instructions are encoded, and how memory addresses (pointers) are generated and used to create complex structures.
  • Translation: how high-level languages are translated into the basic instructions embodied in process hardware with a particular focus on C and Java.
  • Control flow: how computers organize the order of their computations, keep track of where they are in large programs, and provide the illusion of multiple processes executing in parallel.
At the end of this course, students should:
  • understand the multi-step process by which a high-level program becomes a stream of instructions executed by a processor;
  • know what a pointer is and how to use it in manipulating complex data structures;
  • be facile enough with assembly programming (X86) to write simple pieces of code and understand how it maps to high-level languages (and vice-versa);
  • understand the basic organization and parameters of memory hierarchy and its importance for system performance;
  • be able to explain the role of an operating system;
  • know how Java fundamentally differs from C;
  • grasp what parallelism is and why it is important at the system level; and
  • be more effective programmers (more efficient at finding bugs, improved intuition about system performance).
Topics:
  • Number representation
  • Assembly language
  • Basics of C
  • Memory management
  • Operating-system process model
  • High-level machine architecture
  • Memory hierarchy
  • Implementation of high-level languages

先修知识
Introductory programming in C or Java as well as familiarity with binary numbers.

参考资料
Text are recommended but not required:
Computer Systems: A Programmer’s Perspective, 2nd Edition (CS:APP2e)
Randal E. Bryant and David R. O’Hallaron
Prentice-Hall, 2010
Students are also encouraged to have access to a good C reference – any will do – there are many available on the web as well:
The C Programming Language (Kernighan and Ritchie)
C: A Reference Manual (Harbison and Steele)

授课形式
Video lecture topics. Written homework and programming assignments. Only the programming assignments will be graded. The written assignments provide students with a sense for the kinds of topics and analysis are considered most important.

作业加分帖
Lab 0: http://www.1point3acres.com/bbs/thread-101076-1-1.html
Lab 1: http://www.1point3acres.com/bbs/thread-101248-1-1.html
Lab 2: http://www.1point3acres.com/bbs/thread-101484-1-1.html
Lab 3: http://www.1point3acres.com/bbs/thread-101937-1-1.html
Lab 4: http://www.1point3acres.com/bbs/thread-102411-1-1.html
Lab 5: http://www.1point3acres.com/bbs/thread-102983-1-1.html




上一篇:[Coursera]The Hardware/Software Interface Lab 1
下一篇:[Coursera] Programming for Everybody (Week 6)
shuiguo 2014-7-12 02:24:05 | 显示全部楼层
本楼:   👍  0
0%
0%
0   👎
全局:   653
99%
1%
9
还没有仔细看lab,不知道为何他的虚拟机是怎样直接连上他们的lab资料的。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

Advertisement
>
快速回复 返回顶部 返回列表