|
Know what a computer is and understand the functionality of its major components
Understand the difference between binary and decimal representations and the effect of representation on numeric precision
Be able to use standard computer-based tools, including e-mail, word processing, and spreadsheets
Understand the overall mechanics of file systems and directory hierarchies
Understand the concept of programming language translation and the distinction between interpreters and compilers
Understand the basic functions of an operating system
Appreciate the fact that languages and operating systems create a hierarchy of virtual machines
Understand the principle of abstraction and its applications to computing
Be able to write simple programs in some language
Understand fundamental data structures and be able to incorporate them into programs
Understand the distinction between procedural and object-oriented programming
Be able to apply basic problem-solving techniques
Appreciate the concept of an algorithm and the process of algorithmic development
Recognize the importance of debugging and be able to use testing and debugging strategies
Have some understanding of algorithmic efficiency and the fundamental limits of computing
Understand and be able to apply fundamental principles of software engineering
Recognize the existence and utility of standards in the computing field
Know what a network is and have a general understanding of how it works
Understand the structure of the World Wide Web and simple techniques for creating a web page
Be familiar with the concepts of event-driven and real-time programming
Understand the basics of the client-server model
Understand the functionality of databases and information systems
Be familiar with the fundamental principles of human-computer interaction
Have sufficient familiarity with discrete mathematics to understand basic logic and the importance of formalism
Appreciate the range of areas to which computing can be applied
Have a rough understanding of the distinctions among the various computing disciplines
Understand something about the economics of computing
Recognize the ethical, legal, and professional responsibilities associated with work in the computing field
|