Updated: 29 August 2005
CSC 200A Survey of Computer Science I     [formerly CSC 200] 3 cr. DII

This course provides an overview of several fundamental areas within the field of Computer Science, introducing basic vocabulary, central concepts, and typical applications. The areas surveyed include computer hardware, computer arithmetic, operating systems, programming constructs, programming languages, information storage and retrieval, databases, artificial intelligence, and the social context of computing. Three lecture hours per week.   This course satisfies the Computer Literacy Competency-Based Skills requirement.   Not open to students who have received credit for CSC 200.
Prerequisites: Fulfillment of the Basic Mathematics Competency Based Skills requirement and ability to use standard computer software (e.g., operating system features, word processing, email, and web browsers).

Goals:
    The aims of this course are to help the student gain an appreciation for the breadth and variety within the computer science field and to be better prepared for the technical treatments presented in later courses. Specifically, the goals are:
  • CG1: to acquaint the student with many of the major subdivisions within academic computer science;
  • CG2: to provide a standard descriptive vocabulary for these topic areas;
  • CG3: to provide a survey of the most important concepts in each topic area.
Objectives:
    Upon successful completion of this course the student will have demonstrated the ability to:
  • CO1: use correct technical terminology to name and describe the principal hardware and software components of a computer system;
  • CO2: understand and be able to carry out the conversion of text and numeric data between "human readable" form and binary form;
  • CO3: understand and explain the instruction cycle ("fetch/execute cycle") and its role in the operation of a computer system;
  • CO4: use correct terminology to describe the various measurements of capacity and speed relating to a computer system;
  • CO5: name and understand the principal classifications of files and software, and the differences and distinctions among them;
  • CO6: name and explain the four principal programming paradigms;
  • CO7: understand syntax diagrams for the specification of language elements;
  • CO8: name the principal functional components of an operating system and describe the main responsibilities of each one;
  • CO9: give a general description of such topic areas as database systems and artificial intelligence;
  • CO10: give a general description of such topics as software piracy, liability, privacy concerns, and computer security, and current thinking and controversies in each area.
Topics:
  • introduction:
    • History of computing (survey)
    • What is a computer? (operational definition)
    • fundamental computer capabilities (read, write, store, compute, compare)
    • components of a typical computer
  • the role of the computer
    • as a communication tool
    • as an information resource
    • as a problem-solving tool
    • as a real-time control mechanism
  • computer hardware
    • logic gates and circuits
    • binary, octal, and hexadecimal numeration systems
    • machine representation of numbers
      • integers
      • 2's complement representation of signed integers
      • floating point numbers
    • computer arithmetic
    • CPU structure
    • main memory structure
    • secondary storage devices (disk, tape)
    • I/O devices and their operation
    • multiprocessor systems
    • parallel processing
  • communicating with a computer
    • files (text vs. binary, sequential vs. direct)
    • organization of text data (items, fields, records, files)
    • coding of text (ASCII, Unicode, etc.)
    • markup languages, hypertext
    • machine language
      • memory addresses
      • program counter, instruction register
      • the instruction cycle
      • instruction set, operation codes
    • symbolic languages
      • assembly languages
      • high-level programming languages
        • language specification: syntax diagrams, EBNF
        • language translation: assemblers, compilers, interpreters
        • lexical analysis, parsing, code generation
      • programming paradigms
        • procedural, declarative, functional, object-oriented
      • programming languages, past and present
  • problem-solving, program design and programming
    • data types, variables, constants
    • control structures
    • modules
    • problem analysis
    • requirements and specifications
    • solution design
    • algorithms
    • software testing and evolution
    • the human dimension of software: clarity & convenience of use
  • information storage and retrieval
    • goals
    • conceptual vs. physical organization of data
    • data structures
    • databases, database systems, and database management
  • operating systems
    • the purposes of an operating system
    • resource allocation
    • system tools: editors, linkers, loaders, other utilities
    • scheduling
    • virtual memory
  • artificial intelligence
    • goals and issues
    • expert systems
  • the social context of computing
    • appropriate vs. inappropriate uses of a computer
    • computer crime
    • software as intellectual property (copyrights, licensing, piracy)
    • software errors and liability
    • codes of ethics for computer users and professionals
    • privacy, civil liberties

Assignments: Extensive reading assignments in one or more textbooks cover the fundamental vocabulary and descriptive material. Written assignments, both computational and analytical, are used to deepen the student's understanding of fundamental ideas.
    Each assignment has a specific due date, with a short grace period during which the assignment may be submitted for reduced credit. When the grace period has expired, the assignment will no longer be accepted, and a student who has failed to submit the assignment will have a penalty deducted from the term point-total.

Quizzes and examinations: There are periodic short quizzes (usually five quizzes, with the lowest quiz grade dropped), two one-hour examinations, and a comprehensive two-hour final examination. Note: Make-ups are given for missed quizzes or examinations only under exceptional and documented circumstances.

Grading:   Final grades will be determined using the following approximate weights: homework, 50%; quizzes, 20%; hour examinations, 18% (9% each); final examination, 12%.


Bibliography:
  • Abernethy, Ken; Allen, Tom.  Exploring the Digital Domain. An Introduction to Computing with Multimedia and Networking.   PWS Publishing Co., 1998.
     
  • Anderson, Greg; Ferro, David; Hilton, Robert.  Connecting with Computer Science. Thompson Course Technology, 2005.
     
  • Baase, Sara.  A Gift of Fire. Social, legal, and ethical issues for computers and the Internet.  Second Edition.   Pearson Education, Inc., 2003.
     
  • Brookshear, J. Glenn. Computer Science: An Overview. Eighth Edition. Addison-Wesley, 2005.
     
  • Dale, Nell; Lewis, John.  Computer Science Illuminated.   Jones & Bartlett, 2002.
     
  • Gregg, John R.  Ones and Zeroes. Understanding Boolean Algebra, Digital Circuits, and the Logic of Sets. IEEE Press, 1998.
     
  • Hillis, Daniel.  The Pattern on the Stone. The Simple Ideas that Make Computers Work.   Basic Books, 1998.
     
  • Huff, Chuck; Finholt, Thomas.  Social Issues in Computing.  Putting Computing in Its Place.  McGraw-Hill, Inc., 1994.
     
  • Petzold, Charles.  CODE. The Hidden Language of Computer Hardware and Software. Microsoft Press, 1999.
     
  • Schneider, G. Michael; Gersting, Judith L.  An Invitation to Computer Science. Second Edition. PWS Publishing, 1999.
     
  • Spinello, Richard.  CyberEthics: Morality and Law in Cyberspace.  Second Edition. Jones & Bartlett, 2003.
     
  • Tucker, Allen B.; Bradley, W. James; Cupper, Robert D.; & Garnick, David K. Fundamentals of Computing I: Logic, Problem Solving, Programs, and Computers. (McGraw-Hill, 1992)
     
  • White, Ron. How Computers Work.   Millennium Edition.   Que (Macmillan Computer Publishing), 1999.


Salem State Home Computer Science Home Faculty Computer Studies Major Flow Sheet
Computer Studies Minor Courses Course Sequence Diagram Computer Laboratories