Contents. Introduction

Similar documents
2 Webpage Markup with HTML HTML5 Page Structure Creating a Webpage HTML5 Elements and Entities

SAMPLE CURRICULUM GUIDE June 2014

Department Curriculum and Assessment Outline

2c. Content of Computer systems (Component 01)

Switching to AQA from OCR

GCSE Computer Science for OCR Overview Scheme of Work

Mastering Linux. Paul S. Wang. CRC Press. Taylor & Francis Group. Taylor & Francis Croup an informa business. A CHAPMAN St HALL BOOK

HASTINGS HIGH SCHOOL

DUMBARTON ACADEMY NATIONAL 5 COMPUTING SCIENCE REVISION

Edexcel GCSE in Computer Science Microsoft IT Academy Mapping

Computing 1: Computer Systems

Autumn 1 Autumn 2 Spring 1 Spring 2 Summer 1 Summer 2. networks. environmental concerns. Knowledge and skills covered: Knowledge and skills covered:

OCR GCSE (9-1) Computer Science J276 Accompanying Instructional Document

1 CUSTOM TAG FUNDAMENTALS PREFACE... xiii. ACKNOWLEDGMENTS... xix. Using Custom Tags The JSP File 5. Defining Custom Tags The TLD 6

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

Part I Basic Concepts 1

Learning objectives. Computer principles The characteristics of contemporary processors, input, output and storage devices

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

Uniform Resource Locators (URL)

Object-Oriented Programming and Data Structures

A Web-Based Introduction

«Computer Science» Requirements for applicants by Innopolis University

Acknowledgments... xix

About the Author. Dependency Chart. Chapter 1: Logic and Sets 1. Chapter 2: Relations and Functions, Boolean Algebra, and Circuit Design

PROBLEM SOLVING WITH FORTRAN 90

COMPUTING SUBJECT KNOWLEDGE AUDIT

Introduction... ix. Chapter 1: Exploring Fundamental Programming Concepts... 1

Programming Fundamentals - A Modular Structured Approach using C++ By: Kenneth Leroy Busbee

CONTENTS. Chapter 1 Introduction and Evolution of Computer

Contents. Preface. 1 An Introduction to Web Engineering 1 Gerti Kappel, Birgit Pröll, Siegfried Reich, Werner Retschitzegger. 1.1 Motivation...

ICT & Computing Progress Grid

High Quality 4D Development. David Adams

OCR J276 (9-1) GCSE Computer Science

PYTHON PROGRAMMING. John M.Zelle. Wartburg College AN INTRODUCTION TO COMPUTER SCIENCE SECOND EDITION

SERVICE-ORIENTED COMPUTING

AQA GCSE Computer Science PLC

Syllabus for Computer Science General Part I

Computing Science: National 5 and Higher skills, knowledge and understanding

Web Technology for Test and Automation Applications

Developing Web Applications

How to Guide. Create a Data Set. Version: Release 3.0

Switching to AQA from Edexcel

About the Authors... iii Introduction... xvii. Chapter 1: System Software... 1

All India Council For Research & Training

M.SARAVANA KARTHIKEYAN

Microsoft. Microsoft Visual C# Step by Step. John Sharp

OCR Level 3 Advanced GCE in Computer Science (H446)

Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code

Part III: Survey of Internet technologies

Boolean Expressions and if 9/14/2007

[CHAPTER] 1 INTRODUCTION 1

Computer Programming C++ (wg) CCOs

RKN 2015 Application Layer Short Summary

Basics of Web Technologies

LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado.

Chapter 1 Introduction

CSE-6490B Final Exam

Fundamentals of Computer Science

HTML5 in Action ROB CROWTHER JOE LENNON ASH BLUE GREG WANISH MANNING SHELTER ISLAND

Chapter1 Overview of computers

DATA ABSTRACTION AND PROBLEM SOLVING WITH JAVA

C H A P T E R 1. Introduction to Computers and Programming

COMPRESSION TECHNIQUES

Microsoft Visual C# Step by Step. John Sharp

WWW, REST, and Web Services

Internet Standards for the Web: Part II

This page intentionally left blank

Personalised Learning Checklist ( ) SOUND

Getting MEAN. with Mongo, Express, Angular, and Node SIMON HOLMES MANNING SHELTER ISLAND

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

Computer Science Curriculum Content, KS5

Welcome to Starting Out with Programming Logic and Design, Third Edition.

= a hypertext system which is accessible via internet

Chapters are PDF documents posted online at the book s Companion Website (located at

Web Design & Dev. Combo. By Alabian Solutions Ltd , 2016

CONTENTS. vii. Chapter 1 TCP/IP Overview 1. Chapter 2 Symmetric-Key Cryptography 33. Acknowledgements

Word Found Meaning Innovation

DOT NET Syllabus (6 Months)

Cpt S 223 Course Overview. Cpt S 223, Fall 2007 Copyright: Washington State University

CONTENTS. Cisco Internet Streamer CDS 3.0 Software Configuration Guide iii OL CHAPTER 1 Product Overview 1-1

Thomas H. Cormen Charles E. Leiserson Ronald L. Rivest. Introduction to Algorithms

CNIT 129S: Securing Web Applications. Ch 12: Attacking Users: Cross-Site Scripting (XSS) Part 2

DOTNET Projects. DotNet Projects IEEE I. DOTNET based CLOUD COMPUTING. DOTNET based ARTIFICIAL INTELLIGENCE

Desktop Crawls. Document Feeds. Document Feeds. Information Retrieval

Course Syllabus. Course Title. Who should attend? Course Description. PHP ( Level 1 (

Big Java Late Objects

DOTNET PROJECTS. DOTNET Projects. I. IEEE based IOT IEEE BASED CLOUD COMPUTING

Program verification. Generalities about software Verification Model Checking. September 20, 2016

Discovering Computers Chapter 13 Programming Languages and Program Development

MATHEMATICAL STRUCTURES FOR COMPUTER SCIENCE

Chapter 4: Networking and the Internet. Network Classifications. Network topologies. Network topologies (continued) Connecting Networks.

JAVASCRIPT AND JQUERY: AN INTRODUCTION (WEB PROGRAMMING, X452.1)

Pace University. Fundamental Concepts of CS121 1

CSC 170 Fall 2017 Dr. R. M. Siegfried. Study Guide for Final Exam

LOGIC AND DISCRETE MATHEMATICS

ощ 'ршорвшэш! цвн-эориэу ощ 'sajbpossv # PIPG DUJ 'ssjmoossv ^ PIPG pipa w н OX ЛЮН VAV

brief contents PART 1 INTRODUCING WINDOWS PHONE... 1 PART 2 CORE WINDOWS PHONE... 57

ASSIGNMENT - 1, DEC

P2_L12 Web Security Page 1

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Transcription:

Contents Preface Introduction xiii xvii 1 Why Did the Chicken Cross the Road? 1 1.1 The Computer.......................... 1 1.2 Turing Machine.......................... 3 CT: Abstract Away...................... 5 1.3 A Brief History of Computers.................. 5 1.4 Software.............................. 7 1.5 Programming........................... 8 1.6 Syntax and Semantics...................... 9 CT: Beware of Semantics.................. 10 1.7 Flowcharts............................. 10 CT: Ready for All Contingencies............. 12 CT: First Things First.................... 12 CT: Check before Proceeding............... 12 1.8 Algorithms............................ 13 CT: Make It an Algorithm................. 14 CT: Consider Extreme Cases................ 14 1.9 Pseudo Code........................... 15 CT: Step by Step........................ 17 1.10 The Euclidean GCD Algorithm................. 17 CT: Apply Domain Knowledge............... 18 1.11 Goals and How to Get There.................. 18 CT: Break It Down...................... 19 1.12 Road Crossing........................... 19 Exercises.............................. 22 2 Bits, Bytes, and Words 23 2.1 Digital Computers........................ 23 2.2 Binary Numbers......................... 26 CT: Meaning of Symbols................... 29 2.2.1 Numbers in Other Bases............... 29 CT: Evaluate Different Options............. 30 v

vi 2.3 Positive and Negative Integers.................. 31 2.4 Modular Arithmetic....................... 33 CT: Mind Resource Limitations.............. 35 CT: Symbols Can Be Deceiving............... 35 2.5 Base Conversion......................... 36 CT: Start from the End................... 37 2.6 Characters............................. 37 2.6.1 US-ASCII........................ 37 2.6.2 Unicode......................... 38 CT: Data Context....................... 40 2.7 Editing Text............................ 40 2.8 Data Output........................... 43 CT: Deliver the Message.................. 44 Exercises.............................. 45 3 True or False 47 3.1 Digital Electronic Circuits.................... 47 CT: Notice the Logic..................... 48 CT: Bottom Up......................... 51 CT: Create a Virtuous Cycle............... 52 3.2 Boolean Algebra......................... 53 3.2.1 Expressions and Laws................. 53 3.2.2 Universal Gates.................... 54 3.3 Decision Making......................... 54 CT: Logic Checks....................... 56 3.3.1 Conditions and Implications............. 56 CT: Follow the Logic.................... 58 3.4 Logic Applied to Bits....................... 58 CT: Combine Basic Components.............. 61 3.5 Logic and Iteration........................ 61 3.5.1 The while Loop.................... 61 3.5.2 The for Loop..................... 62 CT: Perform Everyday Programming.......... 66 Exercises.............................. 67 4 Who Is the Master? 69 4.1 What Is an Operating System?................. 69 4.2 Operating System Kernel.................... 70 4.2.1 System Programs................... 70 4.3 Open Source Software...................... 71 CT: Promote Free and Open................ 72 4.4 Graphical User Interface..................... 72 4.5 Desktop Overview........................ 73 4.5.1 Desktop Components................. 73 CT: Know Your Arena.................... 75

4.6 Are You Talking to Me?..................... 75 4.6.1 Input Focus....................... 75 CT: Pay Attention to Details............... 76 4.6.2 Event Handling.................... 76 4.7 Command-Line Interface..................... 77 CT: Mind the Trade-Off................... 80 4.8 Files................................ 80 4.8.1 File Content Types.................. 81 4.8.2 File Tree........................ 81 CT: Learn from Trees.................... 83 4.8.3 File Management and Access Control........ 83 4.9 Processes............................. 84 CT: Keep It in Context................... 85 CT: Capture the State.................... 86 4.9.1 Process Lifecycle.................... 86 4.9.2 Process Address Space................. 87 4.9.3 Virtual Address Space Layout............ 88 4.9.4 Address Mapping................... 89 CT: Timesharing........................ 90 4.10 Managing Tasks.......................... 90 4.11 Up and Running......................... 92 CT: Better Control Better System........... 92 Exercises.............................. 94 5 Hello There! 95 5.1 What Is a Network?....................... 95 5.2 The Internet............................ 96 5.3 Local and Wide Area Networks................. 98 5.4 Internet Architecture....................... 100 CT: Redundancy for Safety................ 100 CT: One and All........................ 101 5.5 Wireless Networking....................... 102 5.6 Networking Protocols....................... 103 CT: Follow Protocol.................... 104 5.7 IP Addresses........................... 105 5.8 Domain Names.......................... 105 5.9 Client and Server......................... 106 CT: Interoperate....................... 107 5.10 Peer to Peer............................ 108 5.11 DNS Service............................ 109 CT: Indirection Adds Flexibility............. 110 5.12 DNS Servers and Resolvers................... 111 CT: Decentralize....................... 112 5.13 Domain Registration....................... 113 5.13.1 Accessing Domain Registration Data......... 113 vii

viii 5.14 Packet Switching......................... 114 5.15 Cloud Computing......................... 115 CT: Backup in the Cloud.................. 117 Exercises.............................. 119 6 Home Sweet Homepage :-) 121 6.1 What Is a Web Server?...................... 121 6.2 Web Browsers........................... 122 6.3 A Brief History of the Web................... 123 6.4 URLs............................... 124 CT: Be Aware of the Implicit Context......... 126 6.4.1 URL Encoding..................... 126 CT: Wear Different Hats.................. 127 6.5 HTML and HTML5....................... 128 CT: Mark It Up........................ 130 6.6 Webpage Styling......................... 130 6.7 Web Hosting........................... 130 CT: Really Use Your Website............... 131 CT: Be Careful with Online Information........ 131 6.8 Dynamic Generation of Webpages................ 132 6.8.1 Active Server Pages.................. 133 6.8.2 Database Access.................... 134 6.9 Client-Side Scripting....................... 134 6.10 Hypertext Transfer Protocol................... 135 6.10.1 HTTP Caching..................... 137 CT: Cache for Speed..................... 138 6.11 Website Development....................... 138 CT: Develop for Users.................... 139 6.12 Web Search Engines....................... 139 CT: Google It......................... 140 CT: Believe It or Not.................... 140 6.13 Web Services........................... 141 6.14 Standard Web Technologies................... 142 Exercises.............................. 144 7 Keeping It Safe 147 7.1 Login................................ 148 7.1.1 Website Login..................... 148 CT: Safeguard Security Realms.............. 149 CT: Prevent Illicit Login.................. 151 7.2 HTTPS and SSL/TLS...................... 152 7.3 What Is a Digital Certificate?.................. 153 7.4 Cryptography........................... 155 7.4.1 Symmetric Cryptosystems............... 157 CT: Secure Sensitive Files................. 159

CT: Add Security Layers.................. 159 7.5 Public-Key Cryptography.................... 160 CT: Breakthrough...................... 160 CT: Beware of Bugs..................... 162 7.6 RSA Public-Key Algorithm................... 162 7.7 Digital Signature......................... 164 CT: Sign Digitally....................... 164 7.8 Message Digests.......................... 164 7.9 Secure Email........................... 167 7.9.1 Secure Email with Thunderbird........... 167 CT: Free from Surveillance................ 169 7.10 Security Attacks and Defenses.................. 170 CT: All for One and One for All............ 171 Exercises.............................. 174 8 Solve That Problem 175 8.1 Solving Puzzles.......................... 175 8.1.1 Egg Frying....................... 175 8.1.2 Liquid Measuring................... 176 8.1.3 A Magic Tray..................... 177 8.2 Sorting............................... 178 8.2.1 Bubble Sort....................... 178 8.2.2 Improved Bubble Sort................. 180 CT: Cut It Down........................ 180 CT: Build It Up........................ 181 CT: Stepwise Refinement.................. 181 CT: Version 2.0......................... 182 8.3 Recursion............................. 182 CT: Remember Recursion.................. 183 8.3.1 Quicksort........................ 184 8.4 Recursive Solution Formula................... 186 CT: Apply the Recursion Magic.............. 186 8.5 Tower of Hanoi.......................... 187 8.6 Eight Queens........................... 190 8.7 General Backtracking....................... 193 8.8 Tree Traversals.......................... 194 CT: Form Tree Structures................. 195 8.9 Complexity............................ 195 CT: Weigh Speed vs. Complexity............. 196 8.10 Heuristics............................. 197 CT: Devise Heuristics..................... 197 Exercises.............................. 200 9 Data Everywhere 201 CT: Garbage in, Garbage Out............... 201 ix

x 9.1 Digital Images........................... 202 9.1.1 Representing Color................... 202 9.2 Raster Image Encoding...................... 204 9.2.1 Raster Image Formats................. 204 CT: Small Is Beautiful.................... 205 9.2.2 Vector Graphics.................... 205 9.2.3 Scalable Vector Graphics............... 205 9.3 Audio and Video......................... 206 9.3.1 Digital Audio...................... 206 9.3.2 Audio Encoding Formats............... 207 9.4 Digital Video........................... 208 9.4.1 Video Containers.................... 208 9.4.2 Video Codecs...................... 209 9.5 Format of Data and Files.................... 210 CT: Interpreting Data.................... 210 CT: Data Is Application Dependent........... 211 CT: Save Trees with PDF.................. 211 9.6 Data Sharing........................... 212 9.7 Document Markup........................ 212 9.7.1 What Is XML?..................... 213 9.7.2 XML Document Format................ 214 9.7.3 XML for News Syndication.............. 214 CT: Markup for Interoperability............. 215 9.8 Data Compression........................ 216 CT: Compression Is Not Encryption........... 217 9.8.1 LZ Deflation...................... 217 9.8.2 Huffman Code..................... 218 CT: Customize for Efficiency............... 220 9.9 Data Structures.......................... 220 CT: Synthesize and Simplify................ 222 9.10 What Is a Database?....................... 222 9.10.1 Relational Databases................. 222 9.10.2 SQL: Structured Query Language.......... 223 CT: Combine Web and Database.............. 224 9.10.3 Big Data........................ 225 CT: Data to Insight...................... 225 9.11 Protecting Personal Data.................... 225 CT: Guard Personal Data.................. 226 Exercises.............................. 227 10 Get That App 229 10.1 Key Programs........................... 230 CT: Remind Yourself..................... 231 CT: Install That App..................... 231 10.2 Knowing Your Apps....................... 232

CT: Learn That App..................... 233 CT: No App, No Way..................... 233 10.3 Program Configuration and Customization........... 234 CT: Configure and Enjoy.................. 234 10.4 Process Cooperation....................... 234 CT: Coordinate or Else................... 235 10.5 Machine Language Programs.................. 236 10.6 Assembly Language Programs.................. 237 10.7 High-Level Programs....................... 238 10.8 Compilers............................. 240 CT: Bootstrapping...................... 241 10.9 Software Development...................... 242 10.10 Object-Oriented Programming................. 242 CT: Compartmentalize.................... 242 10.10.1 OOP Advantages.................... 243 10.10.2 OOP Concepts..................... 244 CT: Expose Only the Interface.............. 244 10.11 Object-Oriented Design..................... 246 Exercises.............................. 247 Epilogue 249 CT: Reprogram Your Brain................. 249 Website and Interactive Demos 251 Bibliography 253 Index 255 xi