LIBRARY OF THE UNIVERSITY OF ILLINOIS AT URBANA-CHAMPAIGN The person charging tins material is re sponsible for its return to the library from which it was withdrawn on or before the Latest Date stamped below. Theft, mutilation, and underlining of books are reasons for disciplinary action and may result in dismissal from the University. UNIVERSITY OF ILLINOIS LIBRARY AT URBANA-CHAMPAIGN U i ■ L161 — O-1096 lit, »> //'U Report No. IJHEDCS-R-7'j-6U5 GENERAL EXAM SYLLABUS May, 197 h THE LIBRARY OF THE JUN14 1974 UNtVbKSill* OF ILLINOIS AT URHANVr"- Report Nc DCS-R-7U-645 GENERAL EXAM SYLLABUS May, 197^ Department of Computer Science University of Illinois at Urbana-Champaign Urbana, Illinois 61801 Digitized by the Internet Archive in 2013 http://archive.org/details/generalexamsylla645univ TABLE OF C ONTO NTS Page HARDWARE LOGIC DESIGN 5 NUMERICAL ANALYSIS jj_ SOFTWARE 2.6 -111- GKIWKA1, KXAM :'.Y 1 .1 .AM' i. : The Computer Science General Exam covers four areas: hardware, logic design, numerical analysis, and software. These areas correspond approximately to the material presented in CS 28l, CS 26U, CS 257, and CS 221, respectively, with at least an 80 percent intersection in each case. This exam must he passed "by each M.S. and Ph.D. degree candidate in Computer Science. It has two purposes. First, it encourages the student to engage in a comprehensive review of the fundamental material covered in our 200-level core courses. Second, it may be used in directing a student to courses which will remedy any weaknesses which are discovered in his background. The exam will contain a large number of relatively simple questions (e.g., true/false, multiple choice, short answer questions, and simple problems). Every M.S. and Ph.D. student is expected to take the exam in his first semester as a graduate student in the department. The student must retake the exam in any areas he fails. A student may take the exam or a portion thereof up to a maximum of three consecutive offerings. An absence from any consecutive offering of the exam will count as a failure. A student will not be allowed to register in the department after failing to complete this exam in three consecutive attempts. Students who change programs within the department (e.g., from M.S.T.C.S. to M.S.) will be held to the three - semester rule beginning from their enrollment in the department. The exam will be given on Monday and Tuesday evenings of the second week of classes of each semester (fall and spring). A section corresponding to each area will last 1-1/2 hours. This syllabus describes the material from which the examination will be drawn in each of the four areas . -1- HAND WAUL' 1. BASIC ELECTRICITY AND MAGNETISM Concepts of charge (atomic origin), potential, current, energy and power, electromagnetic field vectors (E, B, H, D) ; Ohm's law and exceptions; Kirch- hoff's laws; flux of D and B; laws of Gauss, Coulomb, Ampere, Faraday; capaci- tance, inductance, transformers, filters; dielectric constant, permeability (of ferromagnetics and ferrites); motion of charged particles in electric and magnetic fields (conductivity, resistivity, Hall effect, CRT's). References (3) Chapters 1-5, 9-11, 13 (9) Chapters 1-2 (11) Chapters 1-5, 7-9, 11-16, 18 (12) Chapters 1-1+ 2. SIMPLE DIODE AND TRANSISTOR THEORY Concepts of energy bands in crystalline solids; electrons and holes; qualitative differences between metals, semiconductors and insulators; majority carriers; mobility; drift and diffusion currents; qualitative behavior of pn junctions; the diode equation I = I s (exp(qv/kT)-l) ; form of Shockley equations for a transistor; origin of depletion layer capacitance and diffusion capaci- tance; frequency dependence of current gain. References (1) Chapters 1-2 (2) Chapters 1-2 (8) Chapters 2-3 (9) Chapters 3—1+ , 9 -2- (10) Chapters 1-2, U, 7, 9 (12) Chapters '.-<■ (13) Chapters 3-6, 9 (1^) Chapters 1-3 3. STEADY STATE CIRCUITS Idealized properties of diodes (off/on) transistors (off/on, saturated, constant alpha) and MOS devices (off/on, transconductance) ; base input and emitter input transistor configurations; steady state analysis of circuits containing voltage/ current sources, resistors, idealized diodes and transis- tors, and other elements of specified I-V characteristics. References (7) Chapters 6-8 (9) Chapters U-5 (12) Chapters 5-6 (13) Chapter 8 f. TRANSIENT BEHAVIOR OF CIRCUITS Response of circuits containing capacitors and inductors to sine wave and step excitations; phase lag and lead; idealized transient properties of diodes (C d . ff ) and transistors (C diff , C depl , f T ); concepts of rise/fall and delay times of commonly used diode and transistor configurations; simple feedback amplifiers. References (h) Chapters 1-7 (5) Chapters 1-2 (7) Chapters 9-11 (8) Chapter h (9) Chapters 1+ , 8 -3- ) Chapter 7, 12, 13, ih (li) Chapters 5, 9 5. SIMPLE LOGIC CIRCUITS Representation of logic levels by charges/voltages/currents; diode logic (AND, OR); the transistor as an inverter (NOT, NAND, NOR); configurations and relative merits of commonly used logic circuits (DTL, TTL, ECL, MOS); RS, JK, and D flipflops; Schmitt trigger, monostable and astable multivibrators. References (2) Chapter k (h) Chapters 1-7 (5) Chapters 1-2 (T) Chapters 9-11 (8) Chapter 5 (9) Chapter 6 (12) Chapter 8-9 (Ik) Chapters 1-3 -k- HARDWARE REFERENCES 1. Adler, R. B. , et. al. , Introduction to Semiconductor Physics , Wiley, 196U. 2. Carr, W. N. and Mize, J. P., MOS/LSI Design and Application , McGraw-Hill, 1972. 3. Harnwell, G. P., Principles of Electricity and Electromagnetism , McGraw- Hill, 19^9. k. Harris, J. N. , et al. , Digital Transistor Circuits , SEEC, Vol. 6, Wiley, 1966. 5. Littauer, R. , Pulse Electronics, McGraw-Hill, 1965. 6. Luecke, G. , et al. , Semiconductor Memory Design and Application , McGraw- Hill, 1972. 7. Millman, J. and Taub, H. , Pulse, Digital and Switching Waveforms , McGraw- Hill, 1965. 8. Penny, W. H. , MPS Integrated Circuits , Van Nostrand/Reinhold, 1972. 9. Poppelbaum, W. J., Computer Hardware Theory , Macmillan, 1972. 10. Searle, C. L. , et al. , Elementary Circuit Properties of Transistors , SEEC, Vol. 3, Wiley, I96U. 11. Sears, F. W. , Principles of Physics II: Electricity and Magnetism , Addi son-Wesley, 19^7. 12. Smith, R. J. , Electronics: Circuits and Devices , Wiley, 1973. 13. Stoutman, B. G. , Solid State Electron Devices , Prentice-Hall, 1972. Ik. T. I. Staff, Designing with TTL Integrated Circuits , McGraw-Hill, 1971. 15. Warner, R. W. , et al., Integrated Circuits: Design Principles and Febrication , McGraw-Hill, 1965. -5- LOGIC DESIGN This syllabus for the Logic Design section of the General Qualifying Examination is in four parts. First come the topical subject headings which are subdivided into Combinational Circuits, Sequential Circuits, Digital Computer Structure and Common Integrated Circuit Devices. Then follows a list of references. A cross reference table is included next, in order to indicate which chapters of the given references relate to the various topics. Finally, there is a Note for the Student summarizing the essential qualities of each reference in terms of the syllabus. -6- TOPICAL OUTLi I. Combinational Circuits (a) Switching Algebra Postulates and fundamental theorems. Truth tables. Canonical forms of switching functions. Algebraic and Karnaugh map minimi- zation. (b) Practical Implementation Analysis and synthesis of combinational networks of commonly used gates, especially NAND and NOR. Limitations of finite fan-in, fan-out, delay time, rise and fall times. (c) Data Representation Commonly used codes, e.g. BCD, Gray, Excess 3, 2 out of 5, Walking. Parity generation and detection, encoders, decoders and code con- verters. II. Sequential Circuits (a) Basic Storage Elements Simple RS flipflop and gated derivatives: D-type, T(toggle) and JK. Master- slave operation. Level and edge triggering of flipflops. Parallel and shift (serial) registers. (b) Synchronous Sequential Circuits Ripple and synchronous counters. The standard design technique of: state diagram — state reduction — state assignment — excitation and output tables — implementation. (c) Asynchronous Sequential Circuits Semi-intuitive and practical treatment of "handshaking" controls, e.g. for tying slow, asynchronous peripherals to a computer. III. Digital Computer Structure (a) Binary Number Representation and Arithmetic Radix conversion. Signed magnitude, one's and two's complement, excess. Integer, fraction, floating point. Addition and subtrac- tion. Carry lookahead. Simple multiplication and division. (b) Typical Memory Organization Cell array, addressing, buffering. Characteristic operation times for random access, serial and read-only memories. -7- (c) Typical Processor Organ i za1 ion Data and control flow in a von Neumann machine. Addressing modes. I/O handling. Bus architecture. Hardware interrupt. Control design options: synchronous, asynchronous, microprogram. IV. Common Integrated Circuit Devices Functional properties of typical small and medium scale integrated logic elements (e.g. 7^ family): gate and flipflop packages, ALU, selector/multiplexer, decoder/demultiplexer, register, counter. B. REFERENCES Bannister & Whitehead Booth Dietmeyer Gschwind Kohonen Lenk Maley Maley & Earle Mano Texas Instruments Fundamentals of Digital Systems Digital Networks and Computer Systems Logic Design of Digital Systems Design of Digital Computers Digital Circuits & Devices Handbook of Logic Circuits Manual of Logic Circuits Logic Design of Transistor Digital Computers Computer Logic Design The TTL Data Book McGraw-Hill (U.K.), 1973 Wiley, 1971 Allyn & Bacon, 1971 Springer- Verlag , 1967 Prentice-Hall, 1972 Reston, 1972 Prentice-Hall, 1970 Prentice-Hall, 1963 Prentice-Hall, 1972 T. I. , Inc. , 1973 -8- C. CROSS REFERENCE TABLE 1(a) I 1(b) ! 1(c) i 11(a) 11(b) I 11(c) .. Booth IH(a) !lll(b) CU(c) 1,3 K L M 3,5,6 k 8 2,3 3 2 > 2 J 1_ ' 1 2 1,2 3,4,5 M & E Mano 2,3 TI 6 2 S',5 ,^,1 2 Jj 5,6 3X5 1 ._ 4 A._. , 3,i L5_ 9,10 2,8 » 8 ! 6 IV 1.4 : 9 8 6 2,3 __4± 7,8 i 2,7 1,8,9,12 '"'8 9,10,11,12 2,3 D. A NOTE FOR THE STUDENT Most of the material is to be found in the book by Mano to which the student should therefore turn first. But Mano, in company with many authors of in- troductory texts, has nothing on asynchronous circuits which are usually treated in more advanced courses. Chapter 2 in Maley introduces enough nota- tion m capsule form to describe the operation of some simple examples later on in his handbook. Knowledge of formal synthesis techniques is not required. The student should work problems from previous Qualifying exams and from course CS 26k 9 both of which may be found in the DCS library. The other references are intended as a sampling, not an exhaustion, of the many books available treating logic design in some form or other. Bannister and Whitehead is engineering oriented and less concerned about general pur- pose digital subsystems. Booth is fairly well written and contains a good discussion, at the microstep level, of a PDP/8-like machine. Dietmeyer is compendious and thorough, oriented heavily toward switching theory and pro- motes his own digital simulation language. Gschwind is somewhat dated, freely mixing engineering, logic and theory, but with very good discussions of data manipulation, including arithmetic, and control. A new edition is supposed to be available shortly. Kohonen is idiosyncratic, half logic, half engineering, not too well interrelated, but a useful introductory reference for unusual devices, e.g. rate multipliers and pseudo-random number genera- tors. Lenk, like Maley, is basically a reference handbook for some of the more^ common logic packages that have been built at one time or another. They are instructive educationally, but their examples are being rapidly obsoleted by developing technology. Maley and Earle is one of the few books to remain of value after so many years . The writing is succinct and direct, even if some of the material is dated. It contains good discussions of NAND logic design and asynchronous sequential circuits. It also has good problems. Finally, the "TI Catalog," is included to show what was heavily used by the logic -9- designers of the late '60s and early '70s. Chapter 3 lists a con able number of MSI circuits with equivalent logic diagrams for each, oome worthy of attention are r jhk2, -89, -ihQ, -163, -170, -181, -193, -] -251 and -298. -10- NUMKKlL'Ah ANALYSIS Each of the following three books comes close to covering the topics required for low level performance on the qualifying examination in numerical analysis: P. A. Stark, Introduction to Numerical Methods, McMillan, 1970 (does not quite contain all of the material, elementary presentation) S.D. Conte and C. de Boor, Elementary Numerical Analysis, 2nd edition, McGraw-Hill, 1972 (contains the right material, presented at an inter- mediate mathematical level) E. Isaacson and H. B. Keller, Analysis of Numerical Methods, John Wiley 1966 (contains more material than required, presented at a more advanced mathematical level) The subject matter that you should know has been partitioned into the following five categories : 1. Simple analysis of roundoff errors 2. Approximating the roots of nonlinear equations 3. Quadrature k. Numerical linear algebra 5. Approximation of functions A more detailed definition of these topics is contained in the references to specific chapters of the books listed in each of these five sections. Each section contains a list of concepts with which you should be familiar. By looking up the referenced chapters you can determine what you should know about these concepts. A complete list of all the books referred to can be found in section 6. You must be able to write programs for the algorithms mentioned in this syllabus in some well-known programming language (for example PL/l, Algol, or FORTRAN). 1. Simple Analysis or Roundoff Errors (a) Mathematical and machine representation of numbers (binary, decimal octal, and hexadecimal) : Henrici, Chapter 15 AND Conte and De Boor, Chapter 1, Sees. 1.1, 1.2. (b) Floating point representation of numbers. Roundoff errors for floating point addition, multiplication, and division with double length accumulator and single length accumulator. Roundoff error analysis for simple expressions involving combinations of the above operations with floating point numbers, in particular, the calculation of extended products, sums, and inner-products. The use of forward and backward error analysis. Wilkinson, Chapter 1, Sections 1-7, I3-I9, 23-26 OR Fox and Mayers, Chapter 2 AND Forsythe and Moler, Chapter 20 (c) Absolute and relative errors Shampine and Allen, Part I 2. Approximating the Roots of Nonlinear Equations Functional iteration, that is, iterative methods of the form x i+l = f ( x i )- Lips chit z continuity and the convergence of functional iteration. The mean value theorem and Lips chit z continuity. The student should be able to determine from an inspection of the derivative of f whether the iterative method converges and what the rate of convergence, or order of the method, is. Acceleration of rate of convergence. -12- Rate of convergence and geometric interpretation of each of the following methods: bisection, false position, Newton's method. Convex and concave functions and how to locate an initial approximation to a root of such a function which will assure convergence of Newton ' s method. Conte and de Boor, Chapter 2, except sections 2.7 and 2.8 OR Henrici, Chapter k, except section If. 13 OR Isaacson and Keller, Chapter 3, sections 0, 1, 2 and l+.l only 3. Quadrature (a) Newton-Cotes quadrature formulas: Derivation, understanding of the error formula for applications, and extension of the basic idea of interpolatory quadrature for the derivative of new formulas. Isaacson and Keller, Chapter 7, Sections 0, 1, 2, 5 (except 5.1 and 5.2) OR Conte and De Boor, Chapter 5 , Sections 2, 3 (b) Gauss quadrature formulas: Orthogonal polynomials and their relation to Gauss quadrature formulas; understanding of the underlying principle for obtaining a quadrature formula of maximal degree by appropriate selection of the nodes of the polynomial interpolator approximating the integrand, and understanding of the error formula for applications. Isaacson and Keller, Chapter 7, Sections 3, \ OR Conte and De Boor, Chapter 5 > Section k (c) Romberg quadrature: The connection of Romberg quadrature with the procedure known as Richardson's deferred approach to the limit (or Richardson's extrapolation) should be known. Given the fundamental recurrence relations -13- the student should know how to build up the array of estimates of the integral. Conte and De Boor, Chapter 5, Section 5 (d) Adaptive procedures. Removing singularities Shampine and Allen, Chapter 2 k. Numerical Linear Algebra Gaussian elimination and its variants: The LU (or LDU) decompo- sition theorem and algorithm. Compact method of Crout. Partial and complete pivoting; its use, and its relation to error. Estimates on the number of operations required in the above methods. Condition of a matrix and its role in finding the numerical solution of a system of equations. Fox, Chapter 3, Sections 3.1 - 3-17, 3-2^, 3-25, 3-38, 3-39, Chapter k, Sections I|. 1, J+ . T - ^.H, Chapter 6, Sections 6.1 - 6.7 OR Forsythe and Moler, Chapters 1, 9, 10, 11, 12 AND Fox, Chapter 6, Sections 6.1 - 6.7 5. Approximation of Functions (a) Taylor's theorem with remainders. Use of orthogonal functions, expansion in orthogonal functions, evaluation of orthogonal functions. Fourier, Legendre and Chebyshev series. Isaacson and Keller - Sections 3.1, 3.2, 3.3 of Chapter 5 OR Hamming - Chapter 11 and Chapter 12 OR Conte and de Boor - Sections 1^.10 and if. 12 of Chapter k (b) Polynomial interpolation: Unequal intervals Lagrange and Newton; equally spaced points Newton and Gauss formulas. -Ik- Isaacson and Keller - Chapter 6 except sections h , l >, OR i liming - Chapter 6 except sections 6.10 through 6. 15 OR Conte and de Boor - Chapter k except sections k-1 through lj.,12 (c) Least squares curve fitting: Applications and pitfalls of polynomial curve fitting. Isaacson and Keller - Sections J.l, 3.2, 3.3 of Chapter 5 i'K Hamming - Chapter 10 OR Conte and de Boor - Section l+.ll of Chapter k (d) Minimax or uniform approximation: equi-oscillation property and Chebyshev series. Isaacson and Keller - Section k of Chapter 5 OR Hamming - Chapter 17> OR Conte and de Boor - Section 4.12 of Chapter k 6. References cited S. D. Conte, C. de Boor, Elementary Numerical Analysis , McGraw-Hill Book Company, New York, 1972. G. Forsythe, C. B. Moler, Computer Solution of Linear Algebraic Systems , Prentice -Hall, Inc., Englewood Cliffs, 1967. ~~~ L. Fox, An Introduction to Numerical Linear Algebra , Oxford University Press, New York, 1965. L. Fox and D. F. Mayers, Computing Methods for Scientists and Engineers , Clarendon Press, Oxford, 1968. R. W. Hamming - Introduction to Applied Numerical Analysis , McGraw-Hill, 1971 P. Henrici, Elements of Numerical Analysis , John Wiley and Sons, Inc., New York, 19^ E. Isaacson, H. B. Keller, Analysis of Numerical Methods , John Wiley and Sons, Inc., New York, 1966. L. Shampine, R. Allen, Numerical Computing, an introduction , W. B. Saunders Co. , Philadelphia, 1973- P. A. Stark, Introduction to Numerical Methods , McMillan, I97O. J. H. Wilkinson, Rounding Errors in Algebraic Processes , Prentice -Hall, Inc. , 1963. ' ~~~ ' -15- SOFTWARE The general examination in software requires candidates to demon- strate that they can effectively and efficiently solve problems that require computer programs for their solution. They must also show mastery of basic techniques in the area and sufficient grasp of the terminology to communicate with programmers. No specific machine or programming language is required; however, candidates must be familiar with at least one machine, one assembler lan- guage, and one block-structured, high-level language. In the description below, items in parentheses are examples of the concept being described. PROGRAMMING Candidates must demonstrate the ability to write programs from problem descriptions and to read and comprehend programs in languages of various types . They must be able to analyze a problem and decompose it into smaller problems and to demonstrate that the decomposition preserves or generates important relations among the input and output data. They must show sufficient familiarity with boolean algebra and in- equalities to comprehend and synthesize complex conditional tests, familiarity with expression organization, and familiarity with use of iteration and re- cursion. -16- LANGUAGES Candidates must be able to use machine language and a macro assembly language. They must be familiar with machine language programming of 0, 1, 2, and 3-address computers. They must be able to use registers, indexing, indirect addressing, branch instructions, and data operation instructions. Candidates must be prepared to write programs in a block-structured, high-level language (ALGOL 60, ALGOL W, ALGOL 68, PASCAL, or PL/l). They must be able to comprehend programs in one or more languages for special purposes such as string manipulation, list processing, or simulation languages. In general, though, examination problems will accept an informal algorithm specification such as that used by Knuth. Candidates must be able to understand language description tech- niques such as BNF. DATA STRUCTURES Candidates must be familiar with the machine representation of elementary data items: integers, floating-point numbers, characters, and instructions. They must be able to use data aggregation constructs such as arrays, strings, and plexes (PL/I: BASED structures and POINTERS ; ALGOL W: RECORDS and REFERENCES), higher level organizations such as stacks, queues, linked lists, trees, and hash tables, and input/output structures such as physical and logical records, blocks, and files. PROGRAM STRUCTURES Candidates must be able to use program organization mechanisms such as block structure, subroutines, coroutines, and sets of macro in- structions for performing primitive operations on some invented data types. They must understand various parameter passing mechanisms. •IT- They must be familiar with statement and expression organization constructs for iteration (FOR, DO, WHILE, REPEAT), alternation (IF, CASE), interrupts (ON), parallelism (FORK, JOIN). ALGORITHMS Candidates will be required to demonstrate techniques for comparing the time and space efficiency of algorithms. They must be familiar with a few basic searching and sorting algorithms such as binary search and quick sort. They must be familiar with basic compiler techniques: token scanning, symbol table construction, conversion of infix to Polish, and evaluation of Polish expressions. SYSTEMS Candidates must show knowledge of the relative speeds of various input/output devices and the impact of these speeds on algorithm design. They must demonstrate an elementary knowledge of the structure of an operating system so as to know what components are instrumental in com- piling and executing a job. They must be familiar with spooling techniques. They must demonstrate an overview of the range of commands available to instruct an operating system and the function of each command. They must show knowledge of linkers and loaders. They must be able to use system traces and dumps in debugging. -18- REFERENCES General Gear, C. W. , Computer Organization and Programming . McGraw-Hill, 2nd Ed., 1974. All chapters are relevant. This is a good approximation to the amount of detailed knowledge required by the syllabus. Gear, C. W. , Introduction to Computer Science . Science Research Associates, 1973. Generally too elementary although Chapter 7 is a reasonable alternative to wading through Knuth's Vol. 3. Ignore Chapter 9. Knuth, D. E., The Art of Computer Programming , Addison-Wesley , 1968, Vol. 1. Important basic material. Rosen, Saul, ed. , Programming Systems and Languages . McGraw-Hill, 1967. Primarily of historical interest now. Parts 2 and 4 present original documents for some important programming languages (ALGOL 60, PL/I, SNOBOL, COBOL, LISP). Part 5 affords a good survey of the basics of operating system design. Wegner, Peter, Programming Languages, Information Structures, and Machine Organization . McGraw-Hill, 1968. Comprehensive discussion of macro generators (GPM, TRAC, LISP). Knowledge of the Lambda Calculus is not required. Brief coverage of simulation languages. Languages : Each of the following references describes a major programming lan- guage. Knowledge of all of these is not required. One or two would be sufficient. Baumann, R. , M. Feliciano, F. L. Bauer, and K. Samelson, Introduction to ALGOL . Prentice-Hall, 1964. Dijkstra, E. W. , A Primer of ALGOL 60 PROGRAMMING . Academic Press, 1962. Naur, Peter, et al . , "Revised Report of the Algorithmic Language ALGOL 60,' Comm. A. CM., 6 (January 1963), pp. 1-17. This report has been reprinted in several places. See, e.g., the books by E. W. Dijkstra and by Saul Rosen. -19- Griswold, R. E. , et al., The SNOBOL 4 Programming Language . Prentice- Hall, 2nd Ed., 1971. Lindsey, C. H. and S. G. Van der Meulen, Informal Introduction to ALGOL 68. North-Holland, 1971. Struble, George, Assembler Language Programming: the IBM System/ 360 . Addison-Wesley, 1969. Wegner, Peter, Programming Languages, Information Structures, and Machine Organization . McGraw-Hill, 1968. GPM, TRAC, SIMSCRIPT, SIMULA, ALGOL 60 and PL/ I. Wirth, N. , Systematic Programming: an Introduction . Prentice-Hall, 1973. PASCAL. Programming These references represent current views on good programming style and structure. Conway, Richard, and David Gries, An Introduction to Programming: a Structured Approach Using PL/ I and PL/C . Winthrop, 1973. Redigested for novice and intermediate programmers. Dahl, 0. J., E. W. Dijkstra, and C. A. R. Hoare, Structured Programming . Academic Press, 1972. Contains Dijkstra and Wirth 's original papers on the subject. Kernighan, Brian W. , and P. J. Plauger, The Elements of Programming Style , McGraw-Hill, 1974. Wirth, N., Systematic Programming: An Introduction . Prentice-Hall, 1973, -20- Advanced Material : Elson, Mark, Concepts of Programming Languages . Science Research Associates, 1973. A general awareness of the types of language features discussed here would be helpful. Gries, D. , Compiler Construction for Digital Computers . Wiley, 1971. Initial chapters give a good introduction to the basics of compiler writing. Knuth, D. E. , The Art of Computer Programming . Add i son-Wesley , 1968. Vol. 3. Here is a complete collection of searching and sorting algorithms. Select two or three and know the principles behind them. Sammet, Jean E., Programming Languages: History and Fundamentals . Prentice-Hall, 1969. -21- BLIOGRAPHIC DATA EET I. Report No. iilUCDCS-R-7^-6U5 3. Rei ipicnt '■■ Accc taion N< 5. Repori Date May, 197^ tlr .iiul iMibt il If Genera] Exam ;',v I Labus Authors 1 Department of Computer Science 8. Performing Organization Rept. No - UHJCDCS-R-7 1 +-6U5 Performing Organization Name and Address Department of Computer Science University of Illinois at Urbana-Champaign Urbana, Illinois 6l801 10. Projeci/Task/Work Unit No. 1 1. ( ontr.K 1 Grant No. Sponsoring Organization Name and Address Department of Computer Science University of Illinois at Urbana-Champaign Urbana, Illinois 6l801 13. Type of Report & Period Covered Syllabus 14. . Supplementary Notes Abstracts Not Applicable Key Words and Document Analysis. 17a. Descriptors Not Applicable '. Identifiers/Open-Ended Terms Not Applicable COSATI Field/Group Availability Statement Unlimited Release ''MNT IS-35 ( 10-70) 19. Security Class (This Report) UNCLASSIFIED 20. Security Class (This Page UNCLASSIFIED 21. No. of Pages 22 22. Price USCOMM'OC 40329-P7 1 JVH24 Wi m CO to J*