Job Tasks |
|
|
|
|
|
|
|
Novice |
Examples |
|
|
Performs routine tasks with
specific instructions |
|
Install simple software |
|
|
|
|
Run a test suite and report bugs: write a report on the results |
|
|
|
|
Write a program following
the design recipe, following the structure of data |
|
|
|
|
|
|
Advanced Beginner |
Examples |
|
|
Performs small independent
tasks under supervision, with some intiative/judgement |
|
Installs more complex
software and trouble-shoots the installation |
|
|
|
|
Runs a test suite, finds
sources of some bugs, fixes small bugs |
|
|
|
|
|
|
Competent |
Examples |
|
|
Performs self-contained
complex tasks independently; begins to see the big picture |
|
Within a given constraints
design/implement small part of software or a small independent
application" |
|
|
|
|
Design a test suite with
documentation |
|
|
|
|
Administer a small system |
|
|
|
|
Debug a small system;
troubleshoot |
|
|
|
|
|
|
Proficient |
Examples |
|
|
Sees the big picture,
identifies tasks to be done, makes decisions, takes action |
|
Design/administer medium
sized systems including new components |
|
|
|
|
Oversee a project through
ythe whole development cycle |
|
|
|
|
Design and build
independent applications: understands and questions the context and the
constraints |
|
|
|
|
|
|
|
|
|
|
Representation
of Information |
|
|
|
|
|
|
|
|
Novice |
Examples |
|
|
Understand the basic
formats for data representation: IEEE floating point, ASCII/Unicode,
representation of integers, RGB |
|
Use and generate basic
forms of data |
|
|
Understand the basic file
formats: binary vs. plain text vs. edited text; graphics, html; understand
the organization of files into hierarchy of directories |
|
Use basic file formats in
programs and presentations |
|
|
Understand and use computer
based communications: web, URL, ftp, e-mail, IRC |
|
|
|
|
|
|
|
|
Advanced Beginner |
Examples |
|
|
Understand some more
complex file formats and their uses |
|
graphics, sound, xml |
|
|
Understand the principles
of data compression and the difference between lossy and lossless
compression |
|
|
|
|
Understand and use the
technologies that support remote access and communications, such as the
use of URLs, DNS, ISP |
|
|
|
|
Understand and use the
technologies that support dynamically generated data: XML, database
applications, scripting languauges |
|
|
|
|
Understand the basic
security threats (viruses, worms, unauthorized use) and the means to
protect the system against them. |
|
|
|
|
|
|
|
|
Competent |
|
Examples |
|
|
Demonstrate the basic
understanding of the following, with in-depth understanding of at least
two: |
|
|
|
|
Use and design of dynamic
web pages and other dynamically geneated data |
|
|
|
|
Understand the principles
and techniques used to protect computer systems against unauthorized use
and system failures, such as virus detection, user account management,
firewalls, encryption, systematic backups |
|
|
|
|
Understanding of the
principles and techniques for data compression |
|
|
|
|
Understand the design and
use of databases and transaction processing, including the protection of
data security, integrity, and privacy |
|
|
|
|
Understand the design and
use of network protocols, including the techniques to assure security,
error protection, timeliness |
|
|
|
|
Understand the design and
use of files that represent graphics, sound,and other media |
|
|
|
|
Understand the use of the
language to represent data |
|
|
|
|
|
|
|
|
Proficient |
|
Examples |
|
|
Demonstrate competency in
the design and support of one of the following: |
|
|
|
|
Web servers |
|
|
|
|
Database systems |
|
|
|
|
System support for users
and services |
|
|
|
|
Programming environments,
interpreters, and compilers |
|
|
|
|
Multimedia presentations,
such as web sites, graphics based applications, music, video, interactive
applications, games, etc. |
|
|
|
|
|
|
|
|
|
|
|
|
Hardware
Architecture |
|
|
|
|
|
|
|
|
Novice |
|
Examples |
|
|
Understand the basic design
of a processor: the instruction fetch-decode-excute cycle, instruction
format, addressing, assemblers, and the basic interrupt mechanism |
|
|
|
|
Understand the high level
view of computer organizations: CPU, bus, memory, devices |
|
|
|
|
Understand the basic
organization of memory: bits, bytes, direct vs sequential vs. remote
access |
|
|
|
|
|
|
|
|
Advanced Beginner |
|
Examples |
|
|
Understand the need and the
basic principles behind caching and paging as techinques for speeding up
the data transfer rate |
|
|
|
|
Understand the basics of
I/O protocols at various levels (internal, external, remote) |
|
|
|
|
Understand the basics of
device management, the inerrrupt system, event handling |
|
|
|
|
|
|
|
|
Competent |
|
Examples |
|
|
Not applicable |
|
|
|
|
|
|
|
|
Proficient |
|
Examples |
|
|
Not applicable |
|
|
|
|
|
|
|
|
|
|
|
|
Systems
Principles |
|
|
|
|
|
|
|
|
Novice |
|
Examples |
|
|
Understand the role of
operating system as a resource manager: process manager, memeory manager,
file manager, event-handler, network services manager |
|
|
|
|
Understand what services
the operating system provides and how to interact with them |
|
|
|
|
|
|
|
|
Advanced Beginner |
|
Examples |
|
|
Understand the key systems
priciples for layering the responsibility for management of resources |
|
|
|
|
Understand the basic
principles of I/O transmission modes: synchronous vs asynchronous, word
mode vs block mode, the need for and the role of I/O controller |
|
|
|
|
Understand the basic
principles and the design of layered network protocols |
|
|
|
|
Understand the need for
detecting and correcting errors at different levels of computer system
hierarchy, including the interface with the real world |
|
|
|
|
|
|
|
|
Competent |
|
Examples |
|
|
Design, implement, and
support a component of a operating system or of a programming language
environment |
|
|
|
|
Understand the principles
of language translation and the role of languages and APIs in defining the
abstract machine |
|
|
|
|
Understand the design and
the functionality of the key components of an operating system |
|
|
|
|
|
|
|
|
Proficient |
|
Examples |
|
|
Design, implement, and
support a substantial component of a operating system or of a programming
language environment |
|
|
|
|
|
|
|
|
|
|
|
|