Updated: 7 June 2005
CSC 215 Survey of Computer Science II 4 cr.

This course builds on CSC200/200A and provides an overview of selected Computer Science topics that are more technical or more advanced than those discussed in the earlier course. Topics include a detailed discussion of the binary, octal, and hexadecimal numeration systems, the machine representation of data and instructions, the design of a typical computer chip, programming in a simplified machine language, and such application areas as robots and embedded systems (programming and construction), artificial intelligence, computability theory and Turing machines, and an introduction to networks, including the Internet model. Four lecture hours per week plus laboratory work outside of class.
Prerequisites: CSC 201J, and a grade of C+ or better in either CSC 200 or CSC 200A.

Goals:
    The aims of this course are to help the student to 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 build an in-depth understanding for machine representation of data and instructions;
  • CG2:   to build detailed understanding of several major application areas of computer science;
  • CG3:   to provide a capability to solve problems in each topic area.
Objectives:
    Upon successful completion of this course the student will have demonstrated the ability to:
  • CO1:   carry out the conversion of text and numeric data between a human readable form aand binary form such as ASCII characters, decimal negative numbers to 2's complement binary numerals, and exponential numbers to binary floating point;
  • CO2:   write simple machine language programs for a simple fictional computer chip and memory;
  • CO3:   construct simple sequential logic circuits;
  • CO4:   solve problems from selected areas in artificial intelligence;
  • CO5:   solve problems from selected areas of computational theory;
  • CO6:   solve problems involving imbedded computer systems;
  • CO7:   solve problems involving networks of all sizes including the Internet;
  • CO8:   solve problems in distributed algorithms, graphics, and human/computer interface design.

Topics:
  • introduction:
    • overview of the operational definition of computer
    • overview of fundamental computer capabilities (read, write, store, compute, compare)
    • overview of components of a typical computer
  • detailed discussion of computer hardware
    • logic gates and circuits and construction of sequential circuits
    • binary, octal, and hexadecimal numeration systems and conversions
    • machine representation of numbers and conversions to and from decimal
    • integers and 2's complement
    • floating point numbers (including the IEEE 754 standard)
    • text (ASCII, Unicode)
    • computer arithmetic and detailed logic of circuitry
    • CPU structure and detailed logical operation
    • main memory structure and details of construction and operation
    • secondary storage devices (disk, tape); details of magnetic and optical media
  • computer software
    • programming in machine language
      • memory addresses
      • program counter, instruction register
      • the instruction cycle
      • instruction set, op codes, operands
  • artificial intelligence
    • logical induction
    • logical deduction
    • formal logic
    • probabilistic reasoning
    • machine learning
    • expert systems
    • neural networks
    • Turing test
  • computation theory
    • finite automata, Turing machines, the Church-Turing thesis
    • computability, the P and NP classes
    • big-O algorithm analysis
  • embedded systems
    • maze construction
    • maze navigation
    • intelligent agents
  • networks
    • network security
    • bus networks
    • ring networks
    • the client/server model
    • Internet networks
    • Internet model
  • distributed algorithms
  • graphics
  • human/computer interfaces


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. Lab assignments will involve simulation and circuit construction. 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 four quizzes, with the lowest quiz grade dropped), two one-hour examinations, and a comprehensive two-hour final examination.   No make-ups are given for missed quizzes or examinations.

Grading: Final grades will be determined using the following approximate weights:   homework, 40%; quizzes, 20%; hour examinations, 20% (total); final examination, 20%.


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. Thomson Course Technology, 2005.
  • Brookshear, J. Glenn. Computer Science: An Overview. Eighth Edition. Pearson/Addison-Wesley, 2004.
  • Dale, Nell; Lewis, John. Computer Science Illuminated. Jones and Bartlett, 2002.
  • Gregg, John R.   Ones and Zeroes. Understanding Boolean Algebra, Digital Circuits, and the Logic of Sets. IEEE Press, 1998.
  • Jones, Joseph L.; Seiger, Bruce A,; Flynn, Anita M.   Mobile Robots. Addison-Wesley, 2002.
  • Martin, Fred G.   Robotic Explorations.   Prentice Hall, 2001.
  • McComb, Gordon.   The Robot Builders Bonanza.   McGraw-Hill, 2000.
  • Negnevitski, Michael.   Artificial Intelligence: A Guide to Intelligent Systems.   Addison-Wesley, 2002.
  • Petzold, Charles.   CODE. The Hidden Language of Computer Hardware and Software.   Microsoft Press, 1999.
  • Schneider, G. Michael; Gersting, Judith L.   Invitation to Computer Science: Java™ Version. 2nd Edition. Thomson Course Technology, 2004.
  • Simon, David E.   An Embedded Software Primer. Addison-Wesley, 1999.
  • 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)


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