Keyboard Devices

Posted by Hollywood Updates


Keyboard Devices:

Most input data is entered input the computer by using a keyboard. This input methods is similar to typing on a typewriters.

Most typewriters and computer keyboards are Qwerty Keyboards. The alphabetic keys are arranged so that the upper-left row of letters begins with the six letters QWERTY. Designers of other keyboards claim that their boards are easier to learn than the QWERTY keyboard.

Computer keyboards

Include keys that are designed to perform specific tasks. These special keys include function keys, directional keys and special-purpose keys such as Alt, Ctrl, Enter, Ins, and Esc. These keys enable the user to perform complex tasks easily when using the application.

Some of keyboards have even 112 keys, with three new keys designed to simplify working with Windows 98. two of these keys, next to the Alt key, bring up Start menu. The third key, next to the right Ctrl key, brings up a menu of functions that are frequently accessed in whichever application is currently being used.


Point and Draw Devices : Many people use devices instead of keyboards whenever possible. Pointing devices minimize the amount of typing (consequently, the number of errors). The many pointing devices available include the mouse, trackball, light pen, digitizing tablet, touch screen and pen-based systems.




The Mouse and Track Ball: The mouse is a palm-size device with a ball built into the button. The mouse is usually connected to the computer by the cable (computer wires are frequently called cables) and many have from one to four buttons (usually two). The mouse may be mechanical or optical and comes in many shapes and sizes. When you move the mouse over a smooth surface, the calls rolls, and the pointer on the display screen moves in the same direction. The Apple Macintosh, with its graphical user interface, made the mouse popular. Now, most microcomputer systems, regardless of the manufacturer, use a mouse. With the mouse, you can draw, select options from a menu and modify or move text. You issue commands by pointing with the pointer and clicking a operating a microcomputer easier for beginning users.



Touchpad:

The touch pad is a stationary pointing devices that people find less tiring to use than a mouse or a track ball. The movement of a finger across a small touch surface is translated into cursor movement on the computer screen. The touch sensitivity surface may be just 1.5- 2 inch square, so the finger does not have to move much. Its size makes it most suitable for the notebooks or the laptops.

A device

That was released in 1995 enables the user to move the cursor using and infrared pen. The pen is cordless and works when it is as fifteen feet from the screen. Although the mouse is still the most pointing device, these innovations may change that in future.



Joysticks:
A joysticks is a pointing device often used for playing games. The joystick has a gearshift-like lever that is used to move the pointer on the screed. On most joysticks, a button on the top is used to select options. In industry and manufacturing, joysticks are used to control robots. Flight simulators and other training simulators also use joysticks.


Touch-Sensitive Screens:

Perhaps the easiest way to enter data is with the touch of finger. Touch screens enable the user to select and option by pressing a specific part of the screen. Touch screens are commonly used in grocery stores, fast-food restaurants and information kiosks.

Data Scanning Devices

Posted by Hollywood Updates


Posted by fateh

Data Scanning Devices



Optical Recognition System:

Optical Recognition System provide another means of minimizing keyed input by capturing data at the source. These systems enable the computer to “red” data by scanning printed text for recognizable patterns.

The banking industry developed one of the earliest scanning systems in the 1950’s for processing cheque. The Magnetic link Character Recognition (MICR) system is still used throughout the banking industry. The bank, branch, account number and cheque number are encoded on the cheque before it is sent to the customer. After the customer has used the cheque and it comes back to the bank to the bank, all that needs to be entered manually is the amount. MICRO has not been adopted by other industries because the character set has only fourteen symbols.



Bar Code Reader:

Of all the scanning devices, you are probably most familiar with BAR CODE READES. Many retail and grocery stores use some from of bar code reader to determine the item being sold and to retrieve the item price from a computer system. The code reader may be a handled unit or it may be embedded in a countertop. The bar code reader reads the Universal Product Code(UPC), a pattern of bars printed on merchandise. The UPS has gained the use of the code because the system was used to check their accuracy and speed. Today, bar codes are used to update inventory and ensure correct pricing. Federal Express employees can usually tell a customer within a matter of minutes the location of any package.


Optical Mark Reader:

By taking exams, you are familiar with Mark Sense Character Recognition systems. Every time you take a test with a “fill in the bubble” Scranton from and use a #2 lead pencil, you are creating input suitable for and OPTICAL MARK READER (ORMO. A #2 lead pencil works best because of the number of magnetic particles in that weight lead. The OMR sense the magnetized marks, enabling the reader to determine which responses are marked.

Optical Scanners:

Can scan typed documents, pictures, graphics or even handwriting into a computer. Photographs scanned into a microcomputer appear clearly on the screen and can be displayed whenever desired. The copy that the computer stores never yellows with age. Early scanners could recognize only text printed in a special OPTICAL CHARACTER RECOGNITION(OCR) typeface. A scanner converts the image that it sees into numeric digits before storing it in the computer. This conversion process in known as DIGIZING.

Depending on the volume and type of material to be scanned, you can use drum scanner, flatbed scanner, sheeted scanner and even small handheld scanners. The small, hadheld scanner sheeted scanners(priced at about $150) are used most frequently with micro microcomputer; however, only 5 per cent of all microcomputer systems are equipped with scanners. Manufacturers responded to user reluctance to use scanners by releasing in 1995 a number of new, small paper scanners priced between $500 and $700.) most of these new devices sit between the keyboard and the monitor and can interface with a fax machine, send e-mail, and store documents on disk for archive purposes.

Digitizer:

Digitizer is used to create drawing and pictures using a digitizer tablet by a process called digitizing. Digitizing is a process by which graphic representations are converted into digitizer consist of 3 main parts – a flat surface called tablet, a small hand held mouse-like device called puck and a special pen like device called stylus. The puck is used to input existing drawings into the computer. The stylus is used to trace exiting drawing placed on the tablet. The user makes contact to the tablet with stylus. As the stylus is connected to the tablet by a write, the traced image is stored in RAM and displayed on the monitor.


Electronic Card Reader:

Before discussing electronic card reader, let we discuss electronic credit cards. Electronic credit card make it possible to charge online payments to one’s credit card account. It is card details can be encrypted by using the SSL. Protocol in the buyer’s computer, which is available in standard browsers. The number of input devices are common in association with ash transactions. The most common are ATMs and POS terminals.

1. ATM:

Automatic Taller Machine are interactive input/output devices the enable people to make bank transactions from remote locations. ATMs utilize screen input as well as magnetic card readers.

2. POS:
Point of Sale: terminals are computerized cash registers that also often incorporate touch screen technology and bar-code scanners. These devices allow the input of numerous data such as item sold, price, method of payment, name or Zip code of the buyer, and so on. Some inputs are automated; others may be entered by the operators.

Vision Input System:

Are the latest input devices that can recognize the vision/image which appears in the range of its lens. It seems to be vary useful and are becoming popular in different Got. Departments like licensing, passport department and other authorities where personal identification is required.

Printer

Posted by Hollywood Updates

Printer is the most important output device, which is used to print information on paper. Printers are essential for getting output of any computer based application.

Types of Printers:

There are many types of computer which are classified on various criteria. Printers can be broadly categorized into the following two types:


a. Impact Printers:

The characters by striking against the ribbon and onto the paper, are called Impact Printers. These printers are of two types –


1. Character Printer. 2. Line Printers.




b. Not Impact Printers:

The printers that print the characters without striking against the ribbon and onto the paper, are called Non-Impact Printers. These printers print a complete page at a time, therefore, also Printers.

1. Ink Jet Printers. 2. Thermal Printers.

Plotter

Posted by Hollywood Updates

Plotter
is an important output device. Used to print high quality graphics and drawings. Although the graphics can be printed on printers, the resolution of such printing is limited on printers. Plotters are generally used for printing/drawing graphical images such as charts, drawings, maps. Of engineering and scientific application.

Some important types of printers are:

a.) Flat Bed Plotters:
These plotters print the graphical images by moving the pen on stationary flat surface material. They produce very accurate drawings.

b.) Drum Plotters:
These plotters print graphical images by moving both the pen and the drum having paper. They do not produce as accurate drawings as printed by flat bed plotters.

c.)Inkjet Plotters: These plotters use inkjet in place of pens. They are faster than flat bed plotters and can print multi-colored large drawings.

Overview of Computer Architecture

Posted by Hollywood Updates

Your computer system consists of thousands of individual components that work in harmony to process data. Each of these components has its own job to perform, and each has its own performance characteristics.

The brainpower of the system is the Central Processing Unit(CPU), which processes all the calculations and instructions that run on the computer. The job of the rest of the system is to keep the CPU busy with instructions to process. A well-tuned system runs at maximum performance if the CPU or CPU are busy 100% of the time.

So how does the system keep the CPUs busy? In general, the system consists of different layers, or tiers, of progressively slower components. Because faster components are typically the most expensive, you must perform a balancing act between speed and cost efficiency.

CPU and Cache


The CPU and the CPU’s cache are the fastest components of the system. The cache is high-speed memory used to store recently used data instructions so that it can provide quick access if this data is used again in a short time. Most CPU hardware designs have a cache built into the CPU chip. This internal cache is known as a Level 1 (or L1) cache. Typically, an L1 cache is quite small-8-16KB.

When a certain piece of data is wanted, the hardware looks first in the L1 cache. If the data is there, it’s processed immediately. If the data is not available in the cache, the hardware looks in the L2 cache, which is external to the CPU chip but located close to it. The L2 cache is connected to the CPU chip(s) on the same side of the memory bus as the CPU. To get to main memory, you must use the memory bus, which affects the speed of the memory access


CPU Design


Most instructions processing occurs in the CPU. Although certain intelligent devices, such as disk controllers, cam process some instruction, the instructions these devices can handle are limited to the control of dada moving to and from the devices. The CPU works from the determine how quickly these instructions are executed.
The CPU usually falls into one of two groups process:

Complex Instructions Set Computer(CISC) or
Reduced Instructions Set Computer(RISC).

Computer Science Lectures

Posted by Hollywood Updates

Greetings everyone! A new month and a new post on free science online. This month I have a bunch of computer science video lectures.

Video lectures include: basics of computation theory, intro to computer science, data structures, compiler optimization, intro to computers and internet, intro to clojure, and some videos from EECS colloquium at Case Western Reserve University.


Higher Computing (University of New South Wales, by Richard Buckland, COMP1917)


Higher Computing Video Lectures


Course description:
This is the introductory course for computer science at UNSW. This course consists of three strands: programming, systems, and general computer-science literacy. The programming strand is further divided into two parts. For the first half of the course we cover small scale programming, in the second half we look at how to effectively use teams to produce more substantial software. In the systems strand we will look at how computers work. Concentrating on microprocessors, memory, and machine code. In the literacy strand we will look at topics drawn from: computing history, algorithms, WWW programming, ethics and law, cryptography and security, and other topics of general interest. The strands will be covered in an intermingled fashion.

Course topics:
Higher Computing. Inside a computer. Machine Code. Simple C Program. Clarity (C programming #2). Solving Problems. Side Effects. A simple recursive function. The Amazing Alan Turing. The Turing Test. Frames. Arrays. Pass by reference. Game design. Everything you need to know about pointers. Sudoku solver. Stack Frames. eXtreme Programming. VS programming. Programming in the Large. Stress. Random Numbers. The Trouble with Concrete Types. Abstract Data Types in C. Blackadder and Baldrick. ADT. Steganography (hidden messages). Don't give up. File I/O. Linked lists. Experimenting with CMOS. Complexity & Trees. Errors, Risks, Snarks, Boojums. Taste of Graphics. Sample Tree Code: loop detection. Ethics. Hamming Error Correcting Code. Professionalism. What makes a good programmer? Learning and Teaching Computing. Coding samples.


Introduction to Computer Science (Harvard, professor David J. Malan)


Intro to Comp. Sci. Video Course


Course description:
Introduction to Computer Science I is a first course in computer science at Harvard College for concentrators and non-concentrators alike. More than just teach you how to program, this course teaches you how to think more methodically and how to solve problems more effectively. As such, its lessons are applicable well beyond the boundaries of computer science itself. That the course does teach you how to program, though, is perhaps its most empowering return. With this skill comes the ability to solve real-world problems in ways and at speeds beyond the abilities of most humans.

Course topics:
How Computers Work, Binary. Introduction to Programming and Scratch. Threads and Programs with Multiple Scripts. Binary Numbers, Programming Languages, Working in Linux, and Programming in C. Secure File Transfer, Variable Types, and Arithmetic Operators. Standard Input Functions, Boolean Expressions, and Loops. Cryptography, Bugs, Integer Casting, and Functions. Local and Global Variables, the Stack, Return Values, and Arrays. Strings as Arrays, Command-Line Arguments, and more Cryptography. Run Times and Algorithms, Recursion. Sorting: Bubble Sort, Selection Sort, and Merge Sort. Hardware, Processors, and Implications for Software. Greedy Algorithms, Software Design and Debugging. Pointers. Pointers and Arrays, Dynamic Memory Allocation. Pointer Arithmetic, Structures, File I/O. Linked Lists. Inserting and Deleting Elements in Linked Lists, Doubly-Linked Lists. Hash Tables, Dealing with Collisions. Pointers to Pointers, Binary Search Tree, Tries, Heaps. Heapsort, Jeopardy. Huffman Coding Theory. Bitwise Operators, Underneath the Hood - From Code to Executable File. Dangerous Functions, Secure Code. The Internet and Webpages - HTTP and XHTML. Introduction to PHP. User Input, Setting up a Login Page, SQL. Threats. Introduction to LISP. Brief Introduction to System Programming and Machine Organization. Conclusions.


Data Structures (Berkeley, professor Paul Hilfinger)


Data Structures Video Lectures


Course description:
Fundamental dynamic data structures, including linear lists, queues, trees, and other linked structures; arrays strings, and hash tables. Storage management. Elementary principles of software engineering. Abstract data types. Algorithms for sorting and searching. Introduction to the Java programming language.

Course topics:
Developing a Simple Program. More on Simple Programs. Values and Containers. Simple Pointer Manipulation. Arrays and Objects. Object-Oriented Mechanisms. Interfaces and Abstract Classes. Abstract Methods and Classes, Continued. Examples of Interfaces. Misc. Support for Abstraction; Exceptions. Numbers. Algorithmic Analysis. Collections Overview. Paradox of Voting. Resource Curse. Getting a View - Sublists. Data Structures Exam Review. Trees. Trees, Searching. Generic Programming. Priority Queues, Range Queries. Hashing. Sorting. Balanced Search Structures. Pseudo-Random Sequences. Backtracking Search, Game Trees. Enumeration Types, Threads, and Concurrency. Graphs, Introduction. Graphs, Minimal Spanning Trees, Union-find. Dynamic Programming. Storage Management. Storage Management, Continued, Reflection. Data Structures Course Summary.


Compiler Optimization


Compiler Optimization Video Lectures


Course description:
This course introduces students to modern techniques in efficient implementation of programming languages. Modern processors and systems are designed based on the assumption that a compiler will be able to effectively exploit architectural resources. This course will examine in detail techniques to exploit instruction level parallelism, memory hierarchy and higher level parallelism. It will examine classic static analysis approaches to these problems and introduce newer feedback directed and dynamic approaches to optimisation.

Course topics:
Scalar Optimisation - Redundant Expressions. Scalar Optimisation - Dataflow Framework and SSA. Code Generation. Instruction Scheduling. Register Allocation. Dependence Analysis. Program Transformations. Vectorisation. Parallelisation. Adaptive and Profile Directed Compilation. Iterative + Dynamic Compilation. Dynamic Compilation. Machine Learning based Compilation.


Understanding Computers and the Internet


Understanding Computers and the Internet Videos


Video course description:
This course is all about understanding: understanding what's going on inside your computer when you flip on the switch, why tech support has you constantly rebooting your computer, how everything you do on the Internet can be watched by others, and how your computer can become infected with a worm just by turning it on. In this course we demystify computers and the Internet, along with their jargon, so that students understand not only what they can do with each but also how it all works and why. Students leave this course armed with a new vocabulary and equipped for further exploration of computers and the Internet. Topics include hardware, software, the Internet, multimedia, security, website development, programming, and dotcoms. This course is designed both for those with little, if any, computer experience and for those who use a computer every day.

Course topics:
Hardware - Computation. Overview. Bits and bytes. ASCII. Processors. Motherboards: buses, connectors, ports, slots, and sockets. Memory: ROM, RAM, and cache. Secondary storage: floppy disks, hard disks (PATA and SATA), CDs, and DVDs. Virtual Memory. Expansion buses and cards: AGP, ISA, PCI, PCI Express, and SCSI. I/O devices. Peripherals. How to shop for a computer. History. The Internet - Networks: clients and servers, peer-to-peer, LANs and WLANs, the Internet, and domains. Email: addresses; IMAP, POP and SMTP; netiquette; spam; emoticons; snail mail; and listservs. SSH. The World Wide Web: URLs and HTTP. Blogs. Instant messaging. SFTP. Usenet. Network topologies. The Internet: backbones, TCP/IP, DHCP, and DNS. NAT. Ethernet: NICs, cabling, switches, routers, and access points. Wireless: IR, RF, Bluetooth, and WiFi. ISPs. Modems: dialup, cable, and DSL. Multimedia - Graphics: file formats, bitmaps and vectors, and compression. Audio: file formats and compression. Video (and audio): file formats and compression. Streaming. Security - Threats to privacy: cookies, forms, logs, and data recovery. Security risks: packet sniffing, passwords, phishing, hacking, viruses and worms, spyware, and zombies. Piracy: WaReZ and cracking. Defenses: scrubbing, firewalls, proxy servers, VPNs, cryptography, virus scanners, product registration and activation. Website Development - Webservers: structure, permissions, and implementations. Static webpages: XHTML, well-formedness, and validity. Dynamic webpages: SSIs, DHTML, AJAX, CGI, ASPs, and JSPs. Programming - Pseudocode. Constructs: instructions, variables, conditions, branches, and loops. Languages: interpreted and compiled. Scratch.

Free Computer Science Video Lecture Courses

Posted by Hollywood Updates

Here is a list of video lectures in computer science I had collected over the years.
This list is only two-thirds of all links I have in my bookmarks, I will go through the rest of links later. Check back.

For formal computer science education here is an overview of a bachelor degree in computer science.


Web Applications

Video Lectures at ArsDigita University
Mirror ar ArsDigita
High Speed Mirror at Internet Archive
Course website

Teaches basics of designing a dynamic web site with a database back end, including scripting languages, cookies, SQL, and HTML with the goal of building such a site as the main (group) project Emphasizes computer-human interface and the graphical display of information.


Structure and Interpretation of Computer Programs

Video lectures at MIT
Structure and Interpretation of Computer Programs has been MIT's introductory pre-professional computer science subject since 1981. It emphasizes the role of computer languages as vehicles for expressing knowledge and it presents basic principles of abstraction and modularity, together with essential techniques for designing and implementing computer languages. This course has had a worldwide impact on computer science curricula over the past two decades.


Structure and Interpretation of Computer Programs (a different course)

Video lectures at ArsDigita University
Mirror at ArsDigita
High Speed Mirror at Internet Archive
Course website

An introduction to programming and the power of abstraction, using Abelson and Sussman's classic textbook of the same name. Key concepts include: building abstractions, computational processes, higher-order procedures, compound data, data abstractions, controlling interactions, generic operations, self-describing data, message passing, streams and infinite data structures, meta-linguistic abstraction, interpretation of programming languages, machine model, compilation, and embedded languages.


Structure and Interpretation of Computer Programs (a different course)

Video Lectures: CS61A (Berkeley)
Course website

The CS 61 series is an introduction to computer science, with particular emphasis on software and on machines from a programmer's point of view. This first course concentrates mostly on the idea of abstraction, allowing the programmer to think in terms appropriate to the problem rather than in low-level operations dictated by the computer hardware. The next course, CS 61B, will deal with the more advanced engineering aspects of software on constructing and analyzing large programs and on techniques for handling computationally expensive programs. Finally, CS 61C concentrates on machines and how they carry out the programs you write.
In CS 61A, we are interested in teaching you about programming, not about any particular programming language. We consider a series of techniques for controlling program complexity, such as functional programming, data abstraction, object-oriented programming, and query systems. To get past generalities you must have programming practice in some particular language, and in this course we use Scheme, a dialect of Lisp. This language is particularly well-suited to the organizing ideas we want to teach. Our hope, however, is that once you have learned the essence of programming, you will find that picking up a new programming language is but a few days' work.


Data Structures

Video Lectures: CS61B (Berkeley)
Course website

The CS 61 series is an introduction to computer science, with particular emphasis on software and on machines from a programmer’s point of view. CS 61A covered high-level approaches to problem-solving, providing you with a variety of ways to organize solutions to programming problems: as compositions of functions, collections of objects, or sets of rules. In CS 61B, we move to a somewhat more detailed (and to some extent, more basic) level of programming. As in 61A, the correctness of a program is important. In CS 61B, we’re concerned also with engineering. An engineer, it is said, is someone who can do for a dime what any fool can do for a dollar. Much of 61B will be concerned with the tradeoffs in time and memory for a variety of methods for structuring data. We’ll also be concerned with the engineering knowledge and skills needed to build and maintain moderately large programs.


Machine Structures

Video Lectures: CS61C (Berkeley)
Course webpage

The subjects covered in this course include C and assembly language programming, how higher level programs are translated into machine language, the general structure of computers, interrupts, caches, address translation, CPU design, and related topics. The only prerequisite is that you have taken Computer Science 61B, or at least have solid experience with a C-related programming language.


Programming Languages

Video Lectures: CSEP505 (University of Washington)
Course website

Goals: Successful course participants will:
• Master universal programming-language concepts (including datatypes, functions, continuations, threads,
macros, types, objects, and classes) such that they can recognize them in strange guises.
• Learn to evaluate the power, elegance, and definition of programming languages and their constructs
• Attain reasonable proficiency programming in a functional style
• Find relevant literature somewhat more approachable.


Principles of Software Engineering

Video Lectures: CS584 (University of Washington)

Course website

Study of major developments in software engineering over the past three decades. Topics may include design (information hiding, layering, open implementations), requirements specification (informal and formal approaches), quality assurance (testing, verification and analysis, inspections), reverse and re-engineering (tools, models, approaches).


Object Oriented Program Design

Video lectures at ArsDigita University
Mirror at ArsDigita
High Speed Mirror at Internet Archive
Course website

The concepts of the Object-oriented paradigm using Java. The basic principles of software engineering are emphasized. We study how to design and think in an object oriented fashion.


Algorithms

Video lectures at ArsDigita University
Mirror at ArsDigita
High Speed Mirror at Internet Archive
Course website

The design and analysis of algorithms is studied. Methodologies include: divide and conquer, dynamic programming, and greedy strategies. Their applications involve: sorting, ordering and searching, graph algorithms, geometric algorithms, mathematical (number theory, algebra and linear algebra) algorithms, and string matching algorithms.

We study algorithm analysis - worst case, average case, and amortized, with an emphasis on the close connection between the time complexity of an algorithm and the underlying data structures. We study NP-Completeness and methods of coping with intractability. Techniques such as approximation and probabilistic algorithms are studied for handling the NP-Complete problems.


Introduction to Algorithms

Video lectures: 6.064J/18.410J (MIT)
Course homepage

This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.


Systems

Video Lectures at ArsDigita University
Mirror at ArsDigita
High Speed Mirror at Internet Archive
Course website

Topics on the engineering of computer software and hardware systems: techniques for controlling complexity, system infrastructure, networks and distributed systems, atomicity and coordination of parallel activities, recovery and reliability, privacy of information, impact of computer systems on society. Case studies of working systems and outside reading in the current literature provide comparisons and contrasts.


Computer System Engineering

Video Lectures: 6.033 (MIT) (first 3 lectures don't have videos)
Course homepage

This course covers topics on the engineering of computer software and hardware systems: techniques for controlling complexity; strong modularity using client-server design, virtual memory, and threads; networks; atomicity and coordination of parallel activities; recovery and reliability; privacy, security, and encryption; and impact of computer systems on society. We will also look at case studies of working systems and readings from the current literature provide comparisons and contrasts, and do two design projects.


Graduate Computer Architecture

Video Lectures: CS 252 (Berkeley)
Course website

This course focuses on the techniques of quantitative analysis and evaluation of modern computing systems, such as the selection of appropriate benchmarks to reveal and compare the performance of alternative design choices in system design. The emphasis is on the major component subsystems of high performance computers: pipelining, instruction level parallelism, memory hierarchies, input/output, and network-oriented interconnections.


Computer Architecture

Video Lectures: CSE P 548 (University of Washington)

Course website
The purpose of this course is to give you a broad understanding of the concepts behind several advanced microarchitectural features in today’s microprocessors and to illustrate those concepts with appropriate (usually modern) machine examples. We will cover the rationale for and the designs of strategies for instruction sets, dynamic branch prediction, multiple-instruction issue, dynamic (out-of-order) instruction scheduling, multithreaded processors, shared memory multiprocessors, and, if there is time, dataflow machines. Some of these topics require some understanding from what is normally thought of as undergraduate material; for these, we’ll briefly review that material, and then go on from there.

You will augment your knowledge of the architectural schemes by doing experimental studies that examine and compare the performance of several alternative implementations for a particular feature. Here you will learn how to design architectural experiments, how to choose metrics that best illustrate a feature’s performance, how to analyze performance data and how to write up your experiment and results - all skills computer architects, and, actually, researchers and developers in any applied subfield of computer science, use on a regular basis.


Operating Systems and System Programming

Video Lectures: CS 162 (Berkeley)
Course website
The purpose of this course is to teach the design of operating systems and other systems. Topics we will cover include concepts of operating systems and systems programming; utility programs, subsystems, multiple-program systems; processes, interprocess communication, and synchronization; memory allocation, segmentation, paging; loading and linking, libraries; resource allocation, scheduling, performance evaluation; I/O systems, storage devices, file systems; basic networking, protocols, and distributed file systems, protection, security, and privacy.


How Computers Work

Video lectures at ArsDigita University
Mirror at ArsDigita
High Speed Mirror at Internet Archive
Course website

Includes the basics of digital logical design, computer organization and architecture including assembly language, processor design, memory hierarchies and pipelining. Students examine the detailed construction of a very simple computer. A higher level view of a modern RISC architecture is studied, using the Patterson and Hennessey introductory text, from both the programmer's point of view and the hardware designer's point of view. The distinction between RISC and CISC architectures is emphasized.


Performance Analysis

Video Lectures: CSE 597 (University of Washington)

Course website

This course is intended to provide a broad introduction to computer system performance evaluation techniques and their application. Approaches considered include measurement/benchmarking, stochastic and trace driven simulation, stochastic queueing networks, and timed Petri


Database Management Systems

Video Lectures at ArsDigita University
Mirror at ArsDigita
High Speed Mirror at Internet Archive
Course website

A more formal approach to Relational Database Management Systems, compared the way they were covered during Web Applications. Database systems are discussed from the physical layer of B-trees and file servers to the abstract layer of relational design. Also includes alternative and generic approaches to database design and database management system including relational, object-relational, and object-oriented systems, SQL standards, algebraic query languages, integrity constraints, triggers, functional dependencies, and normal forms. Other topics include tuning database transactions, security from the application perspective, and data warehousing.


Database Management Systems

Video Lectures: CSEP544 (University of Washington)
Course website

Databases are at the heart of modern commercial application development. Their use extends beyond this to many applications and environments where large amounts of data must be stored for efficient update and retrieval. The purpose of this course is to provide an introduction to the design and use of database systems, as well as an appreciation of the key issues in building such systems, and working with multiple database systems.
We begin by covering basis aspcts of SQL, and illustrating several data management concepts through SQL features (e.g., views, constraints and triggers). Next, we study conceptual database design and normalization theory. We then study management of XML data, and cover the XPath and XQuery languages. We consider the issues arising in data integration from multiple databases, and more generally, issues in managing meta-data. Finally, we cover the basic aspects of the internals of database systems.


Transaction Processing for E-Commerce

Video Lectures: CSEP545 (University of Washington)

Course website

Course covers Database Concurrency Control, Database Recovery, Basic Application Servers, Two-Phase Commit, Queuing, Replication, Application Servers.


Practical Aspects of Modern Cryptography

Video Lectures: 950TU (University of Washington)
Course website
Course covers Symmetric Key Ciphers and Hashes, Public Key Ciphers, Analysis of Block Ciphers, AES and Attacks on Cryptographic Hashes, Certificates, Trust & PKI, Public Key Cryptography, Digital Rights Management, The Politics of Cryptography


Theory of Computation

Video Lectures at ArsDigita University
Mirror at ArsDigita
High Speed Mirror at Internet Archive
Course website

A theoretical treatment of what can be computed and how fast it can be don. Applications to compilers, string searching, and control circuit design will be discussed. The hierarchy of finite state machines, pushdown machines, context free grammars and Turing machines will be analyzed, along with their variations. The notions of decidability, complexity theory and a complete discussion of NP-Complete problems round out the course.


Artificial Intelligence (4 lectures)

Video Lectures at ArsDigita University
Mirror at ArsDigita
High Speed Mirror at Internet Archive
Course website

An quick overview of AI from both the technical and the philosophical points of view. Topics discussed include search, A*, Knowledge Representation, Neural Nets.


Applications of Artificial Intelligence

Video Lectures: CSE592 (University of Washington)

Course website
Introduction to the use of Artificial Intelligence tools and techniques in industrial and company settings. Topics include: foundations (search, knowledge representation) and tools such as expert systems, natural language interfaces and machine learning techniques.



Related Posts


Google Tech-Talk Computer Science Video Lectures
(Lectures on theoretical and practical aspects of computer science such as: creative commons licensing issues, grid clusters, debian linux testing, python programming language, computer security, networking, click fraud, reusable software components, ruby programming language, privacy, service monitoring)


More Mathematics and Theoretical Computer Science Video Lectures
(Includes algebra, elementary statistics, applied probability, finite mathematics, trigonometry with calculus, mathematical computation, pre-calculus, analytic geometry, first year calculus, business calculus, mathematical writing (by Knuth), computer science problem seminar (by Knuth), dynamic systems and chaos, computer musings (by Knuth) and other Donald E. Knuth lectures)


Computer Science Lectures
(Courses include higher computing (intro to theory of computation), intro to computer science, data structures, compiler optimization, computers and internet, intro to clojure, the akamai story, cryptography, EECS colloquium videos at Case Western Reserve University)


Computer Science Courses
(Includes introduction to computer science and computing systems, computational complexity and quantum computing, the c programming language, multicore programming, statistics and data mining, combinatorics, software testing, evolutionary computation, deep learning, data structures and algorithms and computational origami.)