`
tomgreenintel
  • 浏览: 44371 次
社区版块
存档分类
最新评论

学了那么久英语,对于计算机专业英语还是很无语啊。

 
阅读更多
CS112F. Objects and Algorithms
Extends the foundation developed in CS111F to encompass object-oriented programming
and design.
Prerequisites: CS111F
Syllabus:
• Fundamental programming constructs: Basic syntax and semantics of a higher-level
language; variables, types, expressions, and assignment; simple I/O; conditional and
iterative control structures; functions and parameter passing; structured decomposition
• Object-oriented programming: Object-oriented design; encapsulation and information hiding;
separation of behavior and implementation; classes, subclasses, and
inheritance; polymorphism; class hierarchies; collection classes and iteration protocols;
fundamental design patterns
• Fundamental data structures: Primitive types; arrays; records; strings and string
processing; pointers and references; linked structures; strategies for choosing the right
data structure
• Event-driven and concurrent programming: Event-handling methods; event
propagation; managing concurrency in event handling; exception handling
• Using APIs: API programming; class browsers and related tools; programming by
example; debugging in the API environment
• Algorithmic strategies: Brute-force algorithms; greedy algorithms; divide-and conquer ;
backtracking; heuristics
• Fundamental computing algorithms: Simple numerical algorithms; sequential and
binary search algorithms; sorting algorithms
• Virtual machines: The concept of a virtual machine; hierarchy of virtual machines;
intermediate languages; security issues arising from running code on an alien machine
• Fundamental techniques in graphics: Hierarchy of graphics software; using a graphics
API
• Software development methodology: Fundamental design concepts and principles;
structured design; testing and debugging strategies; test-case design; programming
environments; testing and debugging tools


B.1.4 Breadth-first
As outlined in Chapter 8, we propose two implementations of a breadth-first approach.
The first is simply to include an overview course (CS100B) before a more conventional
programming sequence. The second is to expand the introductory curriculum into a
three-semester sequence (CS101B-102B-103B) so that there is time for the additional
topics.
CS100B. Preview of Computer Science
Offers a broad overview of computer science designed to provide students with an
appreciation for and an understanding of the many different aspects of computer science.
Topics include discrete mathematics, an introduction to programming languages,
algorithmic problem solving, analysis of algorithmic complexity, basic concepts in
hardware, operating systems, networks, graphics, and an overview of the social context of
computing. No background in computer science is assumed or expected. The course is
intended for both students who expect to major or minor in computer science as well as
for those not planning on taking additional course work.
Prerequisites: none
Syllabus:
• Mathematical preliminaries: Sets, functions, logic, proofs
• Algorithms: Definition, design, and implementation; introduction to classical
algorithms (sorting, searching, and pattern matching)
• Algorithmic analysis: Efficiency; asymptotic analysis; computational complexity; big-
O notation; polynomial vs. exponential growth; computability
• Hardware realizations of algorithms: Data representation; the von Neumann model of
computation; the fetch/decode/execute cycle; basic machine organization
• Programming fundamentals: Overview of programming fundamentals and object oriented
design principles; brief introduction to a programming language that supports
the object-oriented paradigm
• Operating systems and virtual machines: Historical evolution of operating systems;
responsibilties of an operating system; basic components of an operating system
• Networking and computer graphics: Brief introduction to some of the basic concepts in
networking and computer graphics
• Social and professional issues: Social context of computing; responsibilities of
computing professionals
Notes:
It is, of course, impossible to cover all of computer science within a single course. The
exact list of topics and their ordering will therefore vary based on the interests and
background of the instructor. At a minimum, an initial breadth-first course should
include a solid introduction to algorithms, some basic concepts in hardware and computer
organization, an exposure to abstraction and the virtual environments created by software, a brief introduction to programming and software development, and a treatment of the social, ethical, and professional issues that arise in the field. Beyond that, each instructor
should feel free to choose the specific topics covered, particularly in terms of the
treatment of modern computing applications. The sample syllabus includes about six
hours of material on networking and computer graphics, both important and rapidly
growing areas. It would, however, be appropriate to expand these topics or supplement
them with material on other important issues such as databases, artificial intelligence, and
distributed systems.
There are two important considerations in the design of a breadth-first introduction to
computer science. The first is to treat discrete mathematics not as a separate and
unrelated subject, but as a fully integrated component of the course. By doing so,
students will better understand and appreciate the importance of discrete mathematics to
our discipline. For example, Boolean logic could be introduced during a discussion of
programming language operators, counting methods could be presented during a
discussion of the efficiency of iterative algorithms, while recurrence relations are a
natural way to study the performance of recursive algorithms. The goal is for students to
be introduced to mathematical concepts within the context of their use in solving
important computing problems.
The second point is that the many disparate topics typically found in a breadth-first
course must be tied together into an integrated whole. Students must not see the course
as a collection of interesting but unrelated topics in a “if this is Tuesday it must be
computer organization” style. They should instead develop an appreciation for the
important relationships among the major subfields of computer science. This goal can be
achieved by demonstrating how each of the course topics utilizes earlier ideas and builds
on them to produce newer and more powerful abstractions. This type of “spiral”
approach, which reinforces, emphasizes, and builds on previous concepts, is an important
aspect to the success of such a course.

CS101B. Introduction to Computer Science
Presents a broad overview of computer science that integrates programming with discrete
mathematics, hardware fundamentals, algorithms, and computability.
Prerequisites: No programming or computer science experience is required. Students
should have sufficient facility with high-school mathematics to solve simple linear
equations and to appreciate the use of mathematical notation and formalism.
Syllabus:
• Discrete mathematics: Functions, relations, and sets; basic logic; proof techniques;
basics of counting; discrete probability
• Fundamental programming constructs: Basic syntax and semantics of a higher-level
language; variables, types, expressions, and assignment; simple I/O; conditional and
iterative control structures; functions and parameter passing; structured decomposition
• Algorithms and problem-solving: Problem-solving strategies; the role of algorithms in
the problem-solving process; the concept and properties of algorithms
• Fundamental data structures: Primitive types; arrays; strings and string processing
• Recursion: The concept of recursion; recursive mathematical functions; divide-and conquer
strategies
• Basic algorithmic analysis: Big “O” notation; standard complexity classes
• Fundamental computing algorithms: Simple numerical algorithms; sequential and
binary search algorithms; quadratic and O(n log n) sorting algorithms
• Basic computability: Finite-state machines; Turing machines; tractable and intractable
problems; uncomputable functions; the halting problem; implications of
uncomputability
• Overview of programming languages: History of programming languages
• Digital logic and digital systems: Overview and history of computer architecture;
fundamental building blocks; logic expressions
• History of computing
• Introduction to the social implications of computing
Notes:
This course is the first of a three-semester sequence (CS101B-102B-103B) that seeks to
offer a broad, integrated introduction to computer science, along the lines advocated by
the 1989 “Computing as a Discipline” report [Denning89] and Computing Curricula 1991
[Tucker91]. Each of the three courses in the sequence includes theory along with
programming, and a range of additional topics are introduced in each course in the
sequence.
As we note in Chapter 7, the breadth-first model has not enjoyed the success that its
proponents had envisioned. We believe, however, that part of the problem may have
come from trying to fit all these topics into too small a space. Given the expansion of
programming -related material that must be covered in the introductory sequence, there
simply isn’t time to cover the broader concepts of the discipline at any depth in the
confines of the traditional two-semester sequence. As a result, most breadth-first courses
that exist today seem to be lead-ins to a more traditional programming sequence. This
model, which has several successful implementations, is outlined in the syllabus for
CS100B.
In the last few years, however, the two-semester introductory sequence has become
cramped even for the programming material. As a result, several institutions are moving
toward a three-semester introductory sequence. We endorse these efforts in section 7.7.3
and offer a sample implementation in CS100B. The interesting question that this move
toward three-semester sequences brings up is whether the additional time makes a
breadth-first approach more viable.
The material presented in the CS101B-102B-103B sequence is quite similar to that offered
in any of the traditional two-semester introductions and the CS115 discrete structures
class. The difference is the ordering of the material. In the breadth-first sequence,
mathematics is distributed throughout all three semesters and is more directly coupled to
the topics that use it. In this way, students will have a greater opportunity to appreciate
the connections between theory and practice.
A major danger of all breadth-first approaches lies in the fact that students tend to be far
more attracted by the programming material, which they see as exciting and empowering,
than they are to the more theoretical material. In this treatment, we have taken care to
include more programming in the first course than has sometimes been true of breadth- first introductions. In the count of units, a third of the material in CS101B is directly
related to programming and much of the rest can be presented so as to emphasize its
practical importance.
We recognize that this approach has not been tested and that it may therefore suffer from
the same modes of failure that plagued the earlier breadth-first attempts. We believe,
however, that the expansion to three semesters may help to address these problems. After
all, three-semester sequences—a breadth-first preliminary course followed by a two semester programming sequence—do exist and seem to be reasonably successful. The
advantage of the more integrated design is that students will be exposed to more
programming in the first course and more theory in the courses that follow.
CS102B. Algorithms and Programming Techniques
Provides an introduction to programming that builds on a broad introduction to the
computer science discipline.
Prerequisites: CS101B
Syllabus:
• Discrete mathematics: Basic logic; proof techniques
• Algorithms and problem-solving: Implementation strategies for algorithms; debugging
strategies
• Fundamental programming constructs: Declaration models; garbage collection;
abstraction mechanisms; modules
• Fundamental data structures: Arrays; records; strings and string processing; data
representation in memory; static, stack, and heap allocation; runtime storage
management; pointers and references
• Object-oriented programming: Encapsulation and information-hiding; separation of
behavior and implementation; classes and subclasses; inheritance; polymorphism; class
hierarchies
• Fundamental computing algorithms: Simple numerical algorithms; hash tables
• Overview of programming languages: Brief survey of programming paradigms
• Virtual machines: The concept of a virtual machine; hierarchy of virtual machines;
intermediate languages
• Machine level representation of data: Bits, bytes, and words; numeric data
representation and number bases; fixed- and floating-point systems;  representation of nonnumeric data; representation of records and arrays
• Assembly level machine organization: Basic organization of the von Neumann
machine; control unit; instruction fetch, decode, and execution
• Introduction to net-centric computing: Background and history of networking and the
Internet; network architectures
• Building a simple graphical user interface: Principles of graphical user interfaces; GUI
toolkits
• Software engineering: Software design; software tools and environments; requirements
and specifications; software validation; testing and debugging strategies
Notes:
This course is the second of a three-semester sequence (CS101B-102B-103B) that seeks to
offer a broad, integrated introduction to computer science. The rationale for the design of
the sequence and suggestions for its implementation are given in the notes to CS101B.

分享到:
评论

相关推荐

    计算机专业英语单词.doc

    ### 计算机专业英语知识点解析 #### 一、计算机英语基础词汇 ##### Unit One: Lesson One - **simultaneity** (n): 同时性,指的是多个事件在同一时刻发生的情况。 - **breach** (vt): 违反或破坏规则、协议等的...

    计算机导论学习报告很有用的

    计算科学导论的内容涵盖了多个关键领域,如计算模型与二进制,通用数字计算机的系统结构,数字逻辑,机器指令,高级语言,算法,系统软件,计算机组织与体系结构,计算机网络,图形学,人工智能,以及数据处理等。...

    计算机专业笔记

    掌握这些知识对于计算机专业的学生或从业者来说至关重要,因为它们不仅提供了对计算机工作原理的深入理解,还为系统级编程、硬件选型、性能优化等工作提供了理论基础。此外,这些基础知识也是进一步学习计算机网络、...

    计算机专业主要学什么.pdf

    对于非计算机专业的学生,学习计算机技能可以作为工具性知识,但不应该忽视自己的专业基础。计算机可以辅助其他学科的研究,但不应该完全替代原有的学术追求。 总的来说,计算机专业涵盖了编程、网络、硬件等多个...

    计算机专业-学习心得体会(参考).doc

    【计算机专业学习心得体会】 在计算机专业学习的道路上,我深感知识的博大精深,同时也体验到了学习的乐趣和挑战。计算机科学是一个不断更新、快速发展的领域,它要求我们不仅要有扎实的基础理论知识,还需要具备...

    计算机专业发展方(很经典的)向.pdf

    对于所有计算机专业的学生,热爱这个专业是至关重要的。不要仅仅因为它是热门专业而选择,计算机领域的成功往往伴随着身体上的付出。理解计算机科学与技术的区别,明确自己的专业方向,比如软件、硬件或网络,然后...

    20秋大工《专业英语(计算机英语)》在线作业1答案.docx

    计算机的发展历程与基础概念 第一代计算机是在20世纪40年代末期出现的,它们体积庞大、运行速度慢、价格昂贵且可靠性不高。题目中的陈述"A.正确"表明这一描述是符合...了解这些基础知识对于理解计算机科学至关重要。

    《新东方老师谈如何学英语》--最牛的英语学习方法

    《新东方老师谈如何学英语》是一篇关于高效学习英语的方法和策略的文章,由新东方的资深教师分享。新东方作为国内知名的英语培训机构,其教师团队在英语教学方面有着丰富的经验,他们的见解对于英语学习者来说是宝贵...

    英语口语学习资料

    对于许多学习者来说,能够流利、自信地用英语进行交流是他们的主要目标。"英语口语学习资料"这个压缩包文件,正如其标题所示,汇聚了各大英语学习网站上的口语学习精华,为学习者提供了丰富的资源和指导。 在提升...

    计算机学习总结.doc

    【计算机学习总结】 计算机科学是一门涵盖广泛领域的学科,它涉及到硬件、软件、网络和...只有这样,我们才能真正地将所学知识运用到实际中,让计算机成为我们得心应手的工具,助力我们在工作和生活中取得更大的成就。

    计算机学习速成法,使你不再感到迷茫

    对于初学者来说,学习计算机科学的基础至关重要。数学、算法、数据结构、操作系统、网络原理等基础知识构成了软件开发的基石。学校教育中的这些内容虽然可能看似过时,但它们提供了理解新技术所需的思维方式和理论...

    计算机图形学-计算机动画.pdf

    ### 计算机图形学中的计算机动画技术 #### 一、动画技术的起源、发展与应用 动画技术的历史可以追溯到古代的各种形式的手绘艺术,但真正意义上的现代动画始于20世纪初。随着科技的进步,动画技术经历了从传统手绘...

    谈人工智能时代的儿童英语移动学习模式.pdf

    刘艳在其论文中详尽地探讨了在这一趋势下,儿童英语移动学习模式的优缺点,以及如何有效地结合儿童的特点、家长的辅助以及专业教师的角色,来实现儿童英语的高效学习。 首先,论文介绍了儿童英语学习的两种模式:...

    计算机专业外文文献翻译

    【计算机专业外文文献翻译】主要探讨了对象持久化与Java软件开发的相关议题,这是计算机专业,特别是网络工程领域常见的技术挑战。对象持久化是指将程序中的对象状态保存到持久化存储介质,如数据库,以便在程序后续...

    2020计算机专业实习报告.pdf

    现利⽤⼯作之余时间,把所有对母校的思念之情⽤实 习报告形式向母校汇报: ⼀、实习⽬的 1、⽣产实习是本专业学⽣的⼀门主要实践性课程。是学⽣将理论知识同⽣产实践相结合的有效途径,是增强⾃我的群众 性观点、...

    《计算机英语词汇表》(高清晰pdf版)

    计算机英语词汇是IT专业人士在阅读英文技术文档、学习最新技术和交流技术问题时不可或缺的一部分。这份高清晰度的《计算机英语词汇表》PDF版为学习者提供了丰富的术语资源,涵盖了计算机科学和技术的多个方面。 ...

    财经专业英语教程(第四版)(宋德富)阅读材料参考译文分享.pdf

    财经专业英语教程(第四版)(宋德富) 本资源提供了财经专业英语教程的第四版,主要涉及到管理、经济、变革、领导、组织结构、战略等方面的知识点。以下是相关知识点的详细解释: 1. 变革的必要性:在经济衰退...

    计算机专业毕业生实习总结.pdf

    3. **理论与实践相结合**:在三明学院的学习经历中,严谨的学风和求实创新的氛围促进了理论知识与实际操作的结合,这对于计算机专业尤为重要,因为实践操作是检验理论知识有效性的关键。 4. **全面发展与价值观塑造...

Global site tag (gtag.js) - Google Analytics