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
- Mathematics (Advanced Mathematics, Linear Algebra)
- Electronics (Circuit Analysis, Digital Circuits)
Professional Courses
- Hardware (Computer Organization, Networks)
- Software (Programming Languages, Data Structures)
Specialized Courses
Topics like Cloud Computing, AI, and Blockchain are included in specialized training.