Computing Curricula

UVic computer science
pan
Posts: 54826
Joined: Mon Sep 11, 2006 10:23 am

Re: Computing Curricula

Post by pan »

https://csed.acm.org/wp-content/uploads ... -Gamma.pdf
Networking and Communication (NC)

Preamble

Networking and communication play a central role in interconnected computer systems that are
transforming the daily lives of billions of people. The public Internet provides connectivity for
networked applications that serve ever-increasing numbers of individuals and organizations
around the world. Complementing the public sector, major proprietary networks leverage their
global footprints to support cost-effective distributed computing, storage, and content delivery.
Advances in satellite networks expand connectivity to rural areas. Device-to-device
communication underlies the emerging Internet of things.

This knowledge area deals with key concepts in networking and communication, as well as their
representative instantiations in the Internet and other computer networks. Beside the basic
principles of switching and layering, the area at its core provides knowledge on naming,
addressing, reliability, error control, flow control, congestion control, domain hierarchy, routing,
forwarding, modulation, encoding, framing, and access control. The area also covers knowledge
units in network security and mobility, such as security threats, countermeasures, device-todevice communication, and multihop wireless networking. In addition to the fundamental
principles, the area includes their specific realization in the Internet as well as hands-on skills in
implementation of networking and communication concepts. Finally, the area comprises emerging
topics such as network virtualization and quantum networking.

As the main learning outcome, learners develop a thorough understanding of the role and
operation of networking and communication in networked computer systems. They learn how
network structure and communication protocols affect behavior of distributed applications. The
area educates on not only key principles but also their specific instantiations in the Internet and
equips the student with hands-on implementation skills. While computer-system, networking, and
communication technologies are advancing at a fast pace, the gained fundamental knowledge
enables the student to readily apply the concepts in new technological settings.
https://csed.acm.org/wp-content/uploads ... -Gamma.pdf
Operating Systems (OS)

Preamble

Operating system is the collection of services needed to safely interface the hardware with
applications. Core topics focus on the mechanisms and policies needed to virtualize
computation, memory, and I/O. Overarching themes that are reused at many levels in
computer systems are well illustrated in operating systems (e.g. polling vs interrupts, caching,
flexibility costs overhead, similar scheduling approaches to processes, page replacement, etc.).
OS should focus on how those concepts apply in other areas of CS - trust boundaries,
concurrency, persistence, safe extensibility.

Operating systems remains an important Computer Science Knowledge Area in spite of how OS
functions may be redistributed into computer architecture or specialized platforms. A CS
student needs to have a clear mental model of how a pipelined instruction executes to how data
scope impacts memory location. Students can apply basic OS knowledge to domain-specific
architectures (machine learning with GPUs or other parallelized systems, mobile devices,
embedded systems, etc.). Since all software must leverage operating systems services,
students can reason about the efficiency, required overhead and the tradeoffs inherent to any
application or code implementation. The study of basic OS algorithms and approaches provides
a context against which students can evaluate more advanced methods. Without an
understanding of sandboxing, how programs are loaded into processes, and execution,
students are at a disadvantage when understanding or evaluating vulnerabilities to vectors of
attack.
Post Reply

Return to “UVic CS”