Class Notes
Notes will be placed here.
A note on my notes
 These are for my benefit.  They tell me what to talk about in class.  They are by no means a substitute for:
   -  Attending class.
   
-  Reading the book
   
-  Taking your own notes.
You may find them helpful however for organizing your thoughts.
    -  Chapter 1 Laying the Groundwork
    
    
-  Chapter 2 Binary Values and Number Systems
    
    
-  Chapter 3 Data Representation
    
    
-  Chapter 4 Gates and Circuits
    
    
-  Chapter 5 Computing Components
    
    
-  Chapter 6 Low-level Programming Languages and Pseudocode
    
    
-  Chapter 7 Problem Solving and Algorithms
    
    
-  Chapter 8 Abstract Data Types and Subprograms
    
-  Chapter 9 Object-Oriented Design and High-Level Programming Languages
    
-  Chapter 10 Operating Systems
    
-  Chapter 11 File Systems and Directories
    
-  Chapter 17 Computer Security
 The syllabus for this course contains the following topics
   -  Introduction to Computer Science
   
       -  Definition
       
-  Introduction to Computing Resources
       
           -  Department Resources
           
-  University Resources
           
-  Computing from Off Campus
       
 
 
-  Problem Solving and Algorithms
   
        -  Problem-solving Techniques    ✓
        
            -  Analogy    ✓
            
-  Divide and Conquer    ✓
            
-  Original Thinking    ✓
            
-  Abstraction    ✓
        
 
-  Control Models
        
            -  Sequence    ✓
            
-  Selection    ✓
            
-  Loop    ✓
            
-  Subprograms    ✓
        
 
 
-  Computer Organization
   
       -  Binary System ✓
       
           -  Data Representation ✓
           
-  Arithmetic ✓
       
 
-  Computing Models ✓
       
           -  Sequential ✓
           
-  Parallel
       
 
-  Hardware ✓
       
           -  Input/Output
           
-  Processing ✓
           
-  Memory ✓
           
-  Storage ✓
           
-  Communications Hardware
       
 
-  Software
       
           -  Operating Systems
           
-  Other System Software
           
-  Application Software
       
 
-  Platforms
       
           -  Hardware
           
-  System Software
       
 
 
-  Computer Architecture
   
       -  Instruction Set ✓
       
-  Hardware ✓
       
           -  Boolean Algebra ✓
           
-  Digital Logic ✓
           
-  Processor ✓
       
 
-  Software
       
           -  High-level Languages ✓
           
-  Assembly Language ✓
           
-  Machine Language ✓
       
 
 
-  Software
   
       -  Programming Languages
       
-  Language Translation
       
           -  Compilation ✓
           
-  Interpretation ✓
       
 
-  Object-Oriented Computing
       
-  Software Engineering
       
           -  Development Process
           
-  Testing
           
-  Maintenance
       
 
 
-  Other Topics
   
       -  History of Computing ✓
       
-  Overview of Computer Science Sub-areas ✓
       
-  Social Aspects of Computing
       
           -  Ethics
           
-  Careers
       
 
-  Frequently Used Tools
       
           -  Editors
           
-  Productivity Tools