Computer Science Course Notes

Introduction to Computer Science
  • Instructor: Boyuan Zheng
  • Institution: Guilin University of Electronic Technology
Course Objectives
  • Establish a foundational knowledge for future studies in computer science.
Learning Outcomes

After completing the course, students will gain knowledge in:

  • Programming languages
  • Classic theories and major questions in computer science
  • Computer working mechanisms
  • Algorithms
  • Basic programming skills
  • Computer networks
  • Basic web design and other topics (TBD)
Historical Evolution of Computer Science and Technology
Early Mechanical Computers
  • Pascaline (1642):
    • Invented by Blaise Pascal
    • Used gears and could only perform addition and subtraction
  • Leibniz Multiplier (1672):
    • Designed by Gottfried Wilhelm Leibniz
    • Capable of multiplication and division
    • Capacity for up to 16 digits
  • Babbage's Difference Engine (1822):
    • The first table-making machine that computed polynomial functions
    • Delivered results with six decimal places of precision
Transition to Electromechanical Computers
  • Herman Hollerith's Machines:
    • Marked the beginning of mechanized binary code and semi-automatic data processing
Analog Electronic Computers
  • First Analog Electronic Computer (1930):
    • Designed by Vannevar Bush
    • Simulated computations through gear rotations
Key Technological Eras
Vacuum Tube Era (1940s-1950s)
  • Key technology: Vacuum tubes for switching
  • Examples: ENIAC (1945), UNIVAC I (1951)
  • Limitations: Large size and high energy consumption
Transistor Era (1950s-1960s)
  • Transistors replaced vacuum tubes
  • Milestone: TRADIC (first fully transistorized computer by Bell Labs, 1954)
  • Advantages: Smaller size, faster speeds, longer lifespan, and lower power consumption
Integrated Circuit Era (1960s-1970s)
  • Multiple transistors miniaturized on silicon chips
  • Moore's Law: Computing power doubles every two years
  • Major milestones: IBM System/360 (1964), Apollo Guidance Computer (1966)
Large-Scale Integration Era (1970s-Present)
  • Features: Integration of millions of components onto single chips
  • Collapse of sizes and improvements in cost/performance ratios
  • Key chips: Intel 4004 (1971) and advancements in microprocessors
Future Computing Developments
Neuromorphic Computing
  • Mimics human brain architecture
  • Capable of autonomous learning and real-time adaptation
Quantum Computing
  • Solves traditional computing's energy challenges
  • Utilizes quantum superposition for enhanced processing capabilities
Biological Computers
  • Use biological molecules for computation
  • Theoretical data storage capacities far exceed silicon-based systems
Foundational Figures in Computer Science
John von Neumann
  • Introduced stored-program concept and sequential execution
Alan Turing
  • Developed Turing Machine model and Turing Test for machine intelligence
  • Key contributions in code-breaking during WWII
Notable Innovators
  • Ada Lovelace: First computer algorithm, for Babbage's machine
  • Grace Hopper: Developed COBOL, compiler pioneer
  • Dennis Ritchie: Creator of C programming language
  • Geoffrey Hinton: AI foundational work, deep learning
Competencies for Computer Science Students
  • Communication skills, computational thinking, algorithm design, and collaboration
Curriculum Overview
Foundation Courses
  1. Mathematics (Advanced Mathematics, Linear Algebra)
  2. Electronics (Circuit Analysis, Digital Circuits)
Professional Courses
  1. Hardware (Computer Organization, Networks)
  2. Software (Programming Languages, Data Structures)
Specialized Courses

Topics like Cloud Computing, AI, and Blockchain are included in specialized training.