Documents Found!
As seen in
Less Work, Better Grades
Join
Course Hero
Access
best resources
Ace
your classes
Ace your courses with Course Hero!
|
|
|
Study Smarter, Score Higher
Here are the top 5 related documents
...Student Solutions for UNIX and Shell Programming A Textbook
Behrouz A. Forouzan and Richard F. Gilberg Brooks/Cole Publishing ( ISBN 0 534-95159-7)
Contents
Chapter 1: Introduction 3 Chapter 2: Basic vi Editor 5 Chapter 3: File Systems 7 Chapter 4: ...
...CS 388: Compiler Design Test 1 Professor Ellen Walker Fall 2007 12 Week NAME: _KEY
Answer all questions in the space provided. Use the backs of the pages if you need extra space. You may have a single-page one-side crib sheet for this exam. Please m...
...CPSC 202: Programming and Problem-Solving Practicum
Successful computer problem solving relies not only on the development of appropriate algorithms, but also on the recognition of instances of well-defined problem classes for which algorithms alread...
...CPSC 201, Fall 2007 Program 2 Due Friday, October 5 When you have done both parts of this program, you will have designed and implemented a Reverse Polish Calculator (RPC) for symbolic polynomials in one variable, x, with coefficients of type double....
Document Content (unformatted)
Course Hero has millions of student submitted documents similar to the one
below including study guides, homework solutions, papers, exam answer keys and textbook solutions.
Spring CS250 2007 Final Exam Solutions, May 5, 2007 Prof. Chris Clifton Time will be tight. If you spend more than the recommended time on any question, go on to the next one. If you can t answer it in the recommended time, you are either going in to too much detail or the question is material you don t know well. You can skip one or two parts and still demonstrate what I believe to be an A-level understanding of the material. Keep in mind that I am concerned about your knowledge of concepts. If you show that you understand the material, but don t quite get the right answer, I can give partial credit. So describe (brie y) your reasoning if you aren t sure of your answer. Note: It is okay to use abbreviations in your answers, as long as the abbreviations are unambiguous and reasonably obvious. Solutions in italics, followed by (anticipated, and subject to change) scoring of each question. Although my expectations will probably change as I grade the exams, at this point I would expect to see an A student get at least 31 of 36, a B student 25. Someone getting less than 20 would need to have demonstrated knowledge elsewhere to convince me they have C-level knowledge. 1 Boolean Algebra/Logic (15 minutes, 6 points) B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 O 0 1 1 1 0 1 0 ? A 0 0 0 You are given the following truth table: 0 1 1 1 1 1.1 Boolean Logic (5 minutes, 3 points) Give a boolean logic formula for the above truth table. Note that for don t care (?) values in the truth table, your formula can give either a 1 or a 0; it will be correct either way. You will get 2 points for any correct formula; for the full three points, your formula should be as compact as possible. Letting the don t care be 1, we get O = AB + C. This is easily discovered with a Karnaugh map. Scoring: 1 point for showing evidence that you know how to construct a formula, 1 for getting it right, 1 for compact. 1.2 Circuit Diagrams (10 minutes, 3 points) Draw a circuit diagram to implement the formula (2 points if correct). For full credit, use only one type of gate (remember that logic chips often contain multiple gates of a single type, so using a single type of gate may result in lower cost even if it increases the number of gates.) Applying DeMorgan s Theorem AB + C = ABC This is implemented using four nand gates: 1 one with both inputs tied to A to get A, one with both inputs tied to C to get C, one to get AB, and the nal taking this and C to get the output. Scoring: 1 for getting close to your formula or the truth table, 1 for exact match of either, 1 for using only one type of gate. 2 Memory Mapped I/O vs. System Calls (35 minutes, 9 points) 1. Memory-mapped I/O: The device has a control/status register and a data register that are mapped to consecutive words in memory. When a program needs to use the I/O device, it issues a system call that maps the physical address of the device into the program s virtual address space. It then reads/writes to the control register and writes to the data register at the corresponding locations in memory. 2. Kernel-based I/O: A program sets up a system call. One argument to the system call determine if the control register is to be read or written, or the data register is to be written, the other argument is the data to be written (if appropriate); both arguments (as well as the result) are passed in registers (as with the MIPS syscall). Assume the syscall is implemented using a software interrupt and is executed as a kernel function (i.e., the code handling the interrupt has direct address to physical memory and can read/write the device registers directly.) You are asked to compare two approaches to support a (very fast) output device. 2.1 Performance (10 minutes, 3 points) Which would you expect to be faster and why? Memory-mapped, as this saves the switch to kernel space, ushing TLB, switching page tables, possibly ushing a level-1 cache, etc. Scoring: 1 for an answer and explanation showing some understanding, 1 for the explanation matching the answer, 1 for getting the correct answer (memorymapped). 2.2 Other tradeo s (15 minutes, 4 points) Other than performance, give and explain at least one advantage (or explain why there are no advantages) to using: 1. The memory-mapped I/O approach: In addition to being more e cient, the memory-mapped approach may give somewhat simpler code, although this is largely a matter of opinion (number of instructions are very similar.) It is also acceptable to say no advantage other than performance, since any action that could be done using the memory-mapped approach could be performed through appropriate arguments to the syscall. (Scoring: 1 for an advantage, 1 for explanation.) 2 2. The kernel / system call approach: Sharing. With the memory-mapped approach, it is possible for two processes to both use the device, but there is no control over the ordering/interleaving of their use of the device. The kernel could control this with system calls. Other reasonable answers are protection, error checking, wasted virtual space (since a whole page would have to be mapped to get two words), etc. Scoring: 1 for an advantage, 1 for explanation. 2.3 Implementation (10 minutes, 2 points) Do you need to use di erent hardware for these approaches, or can the di erence be accomplished at the software level? Explain. Assuming a virtual memory system, the di erence is at the software level. The key is if the kernel allows the memory addresses to be mapped into a user virtual address space, or prevents it. The one issue would be caching - the cache would need to recognize that it couldn t cache this address. Scoring: 1 point for answering can be done in software , 2 points for a good explanation why (or saying needs special hardware and explaining that virtual memory hardware or some special cache hardware is needed. 3 MIPS Assembly (20 minutes, 12 points) For this question, you ll be working with the following piece of MIPS assembly code. (This IS syntactically correct code, and has been run on SPIM.) Final: .text # Purpose: Challenge Students # Input, Output, function: You ll have to figure it out. # Prologue addiu $sp,$sp,-8 sw $a0,0($sp) addiu $sp,$sp,-8 sw $ra,0($sp) # Initialize locals move $s1,$0 li $s0,10 Loop: blez move addiu lw sub jal bge $s0,Done $t0,$sp $t0,8 # Loop termination check $a0,0($t0) # Set up arguments for subroutine call $a0,$a0,$s0 unknown_subroutine $v0,$s1,Next # If ... 3 Next: move addi j $s1,$v0 $s0,$s0,-1 Loop Done: move $v0,$s1 # Epilogue lw $ra,0($sp) addiu $sp,$sp,16 jr $ra # Return to calling function. Each of the following questions is worth 2 points. 1. What is value of register s0 the rst time Loop: is reached? 10. Scoring: 2 points for right, 1 point if you manage to misinterpret the question but clearly get it right based on your interpretation. 2. What is value of s0 the rst time Done: is reached? 0. Scoring: 2 points for right, not sure how you could get it partially right and still have any clue what happening. is Might give 1 point for less than or equal to 0. 3. This procedure has a aw in it. While it does not a ect the value produced by the function, it is a mistake that could result in problems. Describe the aw and give code to x it. (You can write your answer in the program above if you wish.) Procedures fails to save registers s0 and s1 before use. One solution is to add sw $s0,4($s0) and sw $s1,12($sp) immediately before Initialized locals , and add lw $s1,12($sp) and lw $s0,4($sp) at the beginning of the epilogue. Note quite appropriate use of stack convention, but works. Scoring: 1 point for noting the failure to save registers, 1 for wasted stack space, 1 for a reasonable shot at a x (doesn t need to be syntactically correct.) 4. Give a change to the code that will accomplish the same thing with fewer instructions. What I had in mind was replacing the use of register t0 with o set from the stack pointer, e.g., replacing the 3 lines after the blez with lw $a0,8($sp). Might be other valid answers. Scoring: 1 point for recognizing redundancy, 1 for a semantically valid x. 5. Describe what the result of the function will be. You might not be able to give the exact value, but you should be able to give a description in terms of the arguments and function(s) called. Computes the maximum of the result of the function unknown subroutine applied to the argument to Final -10, argument to Final -9, ..., argument to Final -1. Scoring: 1 point for showing knowledge that result is in register v0, 1 for maximum over function called, 1 for proper dependence on argument. 6. Give a change to the code that might make it run faster without changing the number of instructions. Explain. (Credit possible for explaining even if the change you suggest wouldn t actually make a di erence on the MIPS.) The line immediately before Loop: could cause a pipeline stall; the branch depends on the immediately preceding instruction. It would be easy to switch the move $s1,$0 and li $s0,10 4 to prevent a possible stall. This is one example (and probably wouldn t make a di erence on the latest versions of the MIPS processor); other examples may exist as well. What I was looking for was pipeline stall , although other reasonable answers are valid as well. Scoring: 1 point for noting something other than instruction count that a ects time taken, 1 if your example / change could conceivably x the problem you found. 4 Virtual Memory (15 minutes, 7 points) Assume a virtual memory system that has a page table and 16 byte pages. The total physical memory in the system is 4096 bytes (i.e., a 12 bit physical address), however each process only has access to 256 bytes (i.e., an 8 bit virtual address). A memory dump of a portion of physical memory is given below, along with a page table. Physical Address 080 090 0A0 0B0 0C0 0D0 0E0 0F0 100 110 120 130 140 150 160 170 Data (bytes) 13 12 22 13 00 00 00 00 00 00 00 00 00 00 00 00 22 33 11 12 00 00 00 00 01 0B 11 10 00 00 00 00 10 02 20 03 00 00 00 00 00 00 00 00 12 13 01 02 00 00 00 00 00 00 00 00 02 0A 10 11 03 04 00 00 Page Table: 0 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 P 17 2A 00 00 00 02 00 02 00 1A 00 00 01 00 00 01 01 1B 00 00 00 1B 00 01 00 2B 00 00 1A 00 00 01 02 0C 00 00 00 A1 00 03 01 3C 00 00 A0 00 00 02 02 3D 00 00 00 2C 00 04 10 4D 00 00 2B 00 00 03 01 5A 00 00 00 11 00 11 00 5E 00 00 10 00 00 10 01 02 00 00 00 31 00 01 00 01 00 00 21 00 00 01 02 4A 00 00 00 14 00 12 00 40 00 00 04 00 00 02 00 0B 00 00 00 2B 00 13 00 0A 00 00 2A 00 00 03 00 10 00 00 00 11 00 00 00 11 00 00 01 00 00 00 00 21 00 00 00 2B 00 03 00 22 00 00 1B 00 00 02 00 21 00 00 00 15 00 11 00 01 00 00 02 00 00 10 00 12 00 00 00 13 00 0B 00 10 00 00 03 00 00 0A 00 1. (2 points) Give the physical address corresponding to the virtual address 70. 70 = page 7 = 0F, o set 0, so the answer is 0F0. Scoring: 1 point for getting page correct, one for o set correct. 2. (2 points) What is the byte at the virtual address C1? 00. Scoring: 2 for correct answer, 1 for 1B (Physical address C1). 3. (2 points) What is the decimal value of the 32 bit integer at the virtual address EC? What assumptions did you make in arriving at your answer? 135178. I assumed Big-endian notation, as it made my calculation easier. Scoring: 1 for an answer based on 32-bit word beginning at Physical address 16C, 1 for noting you need to know representation, 1 for noting you need to know byte order, 1 for correct calculation. 5 4. (1 point) Describe a simpler method of implementing virtual memory that would give exactly the same mapping as the above page table. Using a base register with a value of (page) 08 and a bound register with a value of 16 (pages) would give the same result. Scoring: 1 for saying base-bound (or anything else reasonable.) 5 Novel Architectures (15 minutes, 2 points) You are given the task of speeding up an N-body (or particle) simulation. The idea is that movement of a particle is governed by forces of nearby particles (think electromagnetic or gravitational.) After the movement of a particle is determined, a nearby particle (that might be a ected by the movement of the previous particle) is chosen, and the operation is repeated. You discover that the most expensive operation is computing the new position/direction of a particle; this is a oating point equation involving several neighboring particles. You read that the Graphics Processing Unit (GPU) in your computer is capable of very fast parallel oating point operations, and have the bright idea to use the GPU to compute the new position/direction. The GPU is a separate processor, as shown in the following diagram. You write (brilliant) code to enable the GPU to compute the new position/direction of a particle given the particle and its neighbors, and discover that this operation takes 1/10th of the time it takes to compute on the CPU. Based on this, you rewrite the program to send each such computation to the GPU, with the result returned to the CPU to choose the next computation to send. 1. You nd that while the program works, the overall simulation runs slower than the original. Give a good reason why (based on what you have learned in the course.) The problem is that sending the next point to the GPU over the PCI-e bus takes longer than computing the position on the CPU. Scoring: 1 point for recognizing this problem (or some other reasonable suggestion.) 2. You still like the idea of using the GPU to do the calculations, since it is much faster - but it doesn t really have the capability to run the complete program. Can you think of a way to make this work? (This might require hardware or software changes it isn t necessarily something you will be able to do with the computer you have.) A heterogeneous multicore architecture with the GPU on the same chip as the CPU could overcome this problem. Scoring: 1 point for recognizing that it is possible to move the GPU closer to the CPU, or some other reasonable solution to the problem you identify. 6
Find millions of documents here - Study Guides, Homework Solutions, Papers, Exam Answer Keys and more.
Course Hero has millions of course related materials that will enable you to learn better,
faster and get an A in all your courses.
Below is a small sample set of documents:
Below is a small sample set of documents:
Purdue >> C S >> 250 (Spring, 2008)
CS250 Spring 2007 Final Exam Solutions, May 5, 2007 Prof. Chris Clifton Time will be tight. If you spend more than the recommended time on any question, go on to the next one. If you cant answer it in the recommended time, you are either going in to ...
Purdue >> CS >> 251 (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 7 Due Monday October 22, 11:59PM Hash Tables 1. Implement a C+ hash table class HashTable in files HashTable.cc and HashTable.h a. The items stored are integers which serve both as keys and as elements. b. ...
Purdue >> CS >> 251s (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 7 Due Monday October 22, 11:59PM Hash Tables 1. Implement a C+ hash table class HashTable in files HashTable.cc and HashTable.h a. The items stored are integers which serve both as keys and as elements. b. ...
Purdue >> C S >> 251 (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 7 Due Monday October 22, 11:59PM Hash Tables 1. Implement a C+ hash table class HashTable in files HashTable.cc and HashTable.h a. The items stored are integers which serve both as keys and as elements. b. ...
Purdue >> C S >> 251s (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 7 Due Monday October 22, 11:59PM Hash Tables 1. Implement a C+ hash table class HashTable in files HashTable.cc and HashTable.h a. The items stored are integers which serve both as keys and as elements. b. ...
Purdue >> CS >> 251 (Spring, 2008)
CS 251 Fall 2007 Voicu Popescu Assignment 5 Due Monday October 1, 11:59PM Binary trees 1. Implement a C+ binary tree class BinaryTree that models arithmetic expressions. An internal node stores an operator represented with a character (i.e. +, -, *,...
Purdue >> CS >> 251s (Spring, 2008)
CS 251 Fall 2007 Voicu Popescu Assignment 5 Due Monday October 1, 11:59PM Binary trees 1. Implement a C+ binary tree class BinaryTree that models arithmetic expressions. An internal node stores an operator represented with a character (i.e. +, -, *,...
Purdue >> C S >> 251 (Spring, 2008)
CS 251 Fall 2007 Voicu Popescu Assignment 5 Due Monday October 1, 11:59PM Binary trees 1. Implement a C+ binary tree class BinaryTree that models arithmetic expressions. An internal node stores an operator represented with a character (i.e. +, -, *,...
Purdue >> C S >> 251s (Spring, 2008)
CS 251 Fall 2007 Voicu Popescu Assignment 5 Due Monday October 1, 11:59PM Binary trees 1. Implement a C+ binary tree class BinaryTree that models arithmetic expressions. An internal node stores an operator represented with a character (i.e. +, -, *,...
Purdue >> CS >> 251 (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 8 Due Monday October 29, 11:59PM AVL Tree 1. Implement a C+ AVL Tree class AVLTree in files AVLTree.cpp and AVLTree.h a. The items stored are positive integers which serve both as keys and as elements. b. T...
Purdue >> CS >> 251s (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 8 Due Monday October 29, 11:59PM AVL Tree 1. Implement a C+ AVL Tree class AVLTree in files AVLTree.cpp and AVLTree.h a. The items stored are positive integers which serve both as keys and as elements. b. T...
Purdue >> C S >> 251 (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 8 Due Monday October 29, 11:59PM AVL Tree 1. Implement a C+ AVL Tree class AVLTree in files AVLTree.cpp and AVLTree.h a. The items stored are positive integers which serve both as keys and as elements. b. T...
Purdue >> C S >> 251s (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 8 Due Monday October 29, 11:59PM AVL Tree 1. Implement a C+ AVL Tree class AVLTree in files AVLTree.cpp and AVLTree.h a. The items stored are positive integers which serve both as keys and as elements. b. T...
Purdue >> CS >> 251 (Spring, 2008)
Merge Sort 7 29 4 2 4 7 9 72 2 7 77 22 94 4 9 99 44 Sets 1 Outline and Reading Divide-and-conquer paradigm (10.1.1) Merge-sort (10.1) Algorithm Merging two sorted sequences Merge-sort tree Execution example Analysis Generic merging and set ope...
Purdue >> CS >> 251s (Spring, 2008)
Merge Sort 7 29 4 2 4 7 9 72 2 7 77 22 94 4 9 99 44 Sets 1 Outline and Reading Divide-and-conquer paradigm (10.1.1) Merge-sort (10.1) Algorithm Merging two sorted sequences Merge-sort tree Execution example Analysis Generic merging and set ope...
Purdue >> C S >> 251 (Spring, 2008)
Merge Sort 7 29 4 2 4 7 9 72 2 7 77 22 94 4 9 99 44 Sets 1 Outline and Reading Divide-and-conquer paradigm (10.1.1) Merge-sort (10.1) Algorithm Merging two sorted sequences Merge-sort tree Execution example Analysis Generic merging and set ope...
Purdue >> C S >> 251s (Spring, 2008)
Merge Sort 7 29 4 2 4 7 9 72 2 7 77 22 94 4 9 99 44 Sets 1 Outline and Reading Divide-and-conquer paradigm (10.1.1) Merge-sort (10.1) Algorithm Merging two sorted sequences Merge-sort tree Execution example Analysis Generic merging and set ope...
Purdue >> CS >> 251 (Spring, 2008)
C+ By Example A Simple App: 2D Graphics 1 Graphics pipeline overview Scene description Geometry Animation Material properties Lights 2D array of pixels Image Transformation Find what is seen in the requested view, and how. Rasterization Fill in ...
Purdue >> CS >> 251s (Spring, 2008)
C+ By Example A Simple App: 2D Graphics 1 Graphics pipeline overview Scene description Geometry Animation Material properties Lights 2D array of pixels Image Transformation Find what is seen in the requested view, and how. Rasterization Fill in ...
Purdue >> C S >> 251 (Spring, 2008)
C+ By Example A Simple App: 2D Graphics 1 Graphics pipeline overview Scene description Geometry Animation Material properties Lights 2D array of pixels Image Transformation Find what is seen in the requested view, and how. Rasterization Fill in ...
Purdue >> C S >> 251s (Spring, 2008)
C+ By Example A Simple App: 2D Graphics 1 Graphics pipeline overview Scene description Geometry Animation Material properties Lights 2D array of pixels Image Transformation Find what is seen in the requested view, and how. Rasterization Fill in ...
Purdue >> CS >> 251 (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 9 Due Friday November 9, 11:59PM Sorting 1. Implement void quicksort(unsigned int *a, int n) as a C style function in the file quicksort.cc a. The function sorts the array a of n positive integers. b. The ma...
Purdue >> CS >> 251s (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 9 Due Friday November 9, 11:59PM Sorting 1. Implement void quicksort(unsigned int *a, int n) as a C style function in the file quicksort.cc a. The function sorts the array a of n positive integers. b. The ma...
Purdue >> C S >> 251 (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 9 Due Friday November 9, 11:59PM Sorting 1. Implement void quicksort(unsigned int *a, int n) as a C style function in the file quicksort.cc a. The function sorts the array a of n positive integers. b. The ma...
Purdue >> C S >> 251s (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 9 Due Friday November 9, 11:59PM Sorting 1. Implement void quicksort(unsigned int *a, int n) as a C style function in the file quicksort.cc a. The function sorts the array a of n positive integers. b. The ma...
Purdue >> CS >> 251 (Spring, 2008)
CS 251 Fall 2007 Voicu Popescu Assignment 1 Due Friday August 31st, 11:59PM A simple C+ application: 2D graphics 1. Take the simple 2D graphics application developed in class and get it to work in your favorite C+ environment a. Use 08.24 code archi...
Purdue >> CS >> 251s (Spring, 2008)
CS 251 Fall 2007 Voicu Popescu Assignment 1 Due Friday August 31st, 11:59PM A simple C+ application: 2D graphics 1. Take the simple 2D graphics application developed in class and get it to work in your favorite C+ environment a. Use 08.24 code archi...
Purdue >> C S >> 251 (Spring, 2008)
CS 251 Fall 2007 Voicu Popescu Assignment 1 Due Friday August 31st, 11:59PM A simple C+ application: 2D graphics 1. Take the simple 2D graphics application developed in class and get it to work in your favorite C+ environment a. Use 08.24 code archi...
Purdue >> C S >> 251s (Spring, 2008)
CS 251 Fall 2007 Voicu Popescu Assignment 1 Due Friday August 31st, 11:59PM A simple C+ application: 2D graphics 1. Take the simple 2D graphics application developed in class and get it to work in your favorite C+ environment a. Use 08.24 code archi...
Purdue >> CS >> 251 (Spring, 2008)
Heaps and Priority Queues 2 5 9 7 6 Heaps and Priority Queues 1 Priority Queue ADT (7.1) A priority queue stores a collection of items An item is a pair (key, element) Main methods of the Priority Queue ADT insertItem(k, o) inserts an item with ke...
Purdue >> CS >> 251s (Spring, 2008)
Heaps and Priority Queues 2 5 9 7 6 Heaps and Priority Queues 1 Priority Queue ADT (7.1) A priority queue stores a collection of items An item is a pair (key, element) Main methods of the Priority Queue ADT insertItem(k, o) inserts an item with ke...
Purdue >> C S >> 251 (Spring, 2008)
Heaps and Priority Queues 2 5 9 7 6 Heaps and Priority Queues 1 Priority Queue ADT (7.1) A priority queue stores a collection of items An item is a pair (key, element) Main methods of the Priority Queue ADT insertItem(k, o) inserts an item with ke...
Purdue >> C S >> 251s (Spring, 2008)
Heaps and Priority Queues 2 5 9 7 6 Heaps and Priority Queues 1 Priority Queue ADT (7.1) A priority queue stores a collection of items An item is a pair (key, element) Main methods of the Priority Queue ADT insertItem(k, o) inserts an item with ke...
Purdue >> CS >> 251 (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 10 Due Monday December 3rd, 11:59PM Graphs & more 1. Implement an undirected graph data structure using adjacency lists, as a C+ class UGraph in UGraph.cpp. A skeleton of UGraph.cpp is provided. The class sh...
Purdue >> CS >> 251s (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 10 Due Monday December 3rd, 11:59PM Graphs & more 1. Implement an undirected graph data structure using adjacency lists, as a C+ class UGraph in UGraph.cpp. A skeleton of UGraph.cpp is provided. The class sh...
Purdue >> C S >> 251 (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 10 Due Monday December 3rd, 11:59PM Graphs & more 1. Implement an undirected graph data structure using adjacency lists, as a C+ class UGraph in UGraph.cpp. A skeleton of UGraph.cpp is provided. The class sh...
Purdue >> C S >> 251s (Spring, 2008)
CS 251, Fall 2007 Voicu Popescu Assignment 10 Due Monday December 3rd, 11:59PM Graphs & more 1. Implement an undirected graph data structure using adjacency lists, as a C+ class UGraph in UGraph.cpp. A skeleton of UGraph.cpp is provided. The class sh...
Purdue >> CS >> 355 (Fall, 2008)
CS355: Cryptography Lecture 37: SSL. CS355 Lecture 27/ Fall 2008 1 OSI/ISO Model Application Presentation Session Transport Network Data Link Physical Layer CS355 Lecture 27/ Fall 2008 Application Presentation Session Transport Network Data Lin...
Purdue >> C S >> 355 (Fall, 2008)
CS355: Cryptography Lecture 37: SSL. CS355 Lecture 27/ Fall 2008 1 OSI/ISO Model Application Presentation Session Transport Network Data Link Physical Layer CS355 Lecture 27/ Fall 2008 Application Presentation Session Transport Network Data Lin...
Purdue >> CS >> 355 (Fall, 2008)
CS355: Cryptography Lecture 31: X509. PGP. Authentication protocols. Key establishment. CS355 Lecture 23/ Fall 2008 1 Public Keys and Trust Public Key:PA Secret key: SA Public Key:PB Secret key: SB How are public keys stored How to obtain th...
Purdue >> C S >> 355 (Fall, 2008)
CS355: Cryptography Lecture 31: X509. PGP. Authentication protocols. Key establishment. CS355 Lecture 23/ Fall 2008 1 Public Keys and Trust Public Key:PA Secret key: SA Public Key:PB Secret key: SB How are public keys stored How to obtain th...
Purdue >> CS >> 355 (Fall, 2008)
CS355: Cryptography Lecture 3: Cryptanalysis of Vigenere cipher. CS355 Lecture 3/ Fall 2008 1 Hw1 due Thursday Sept. 11 in class 1:30 PM Prj 1 due by email to the TA, Sept. 12, midnight, 11:59PM CS355 Lecture 3/ Fall 2008 2 The Vigenre C...
Purdue >> C S >> 355 (Fall, 2008)
CS355: Cryptography Lecture 3: Cryptanalysis of Vigenere cipher. CS355 Lecture 3/ Fall 2008 1 Hw1 due Thursday Sept. 11 in class 1:30 PM Prj 1 due by email to the TA, Sept. 12, midnight, 11:59PM CS355 Lecture 3/ Fall 2008 2 The Vigenre C...
Purdue >> CS >> 355 (Fall, 2008)
CS355: Cryptography Lecture 24: Kerberos CS355 Lecture 24/ Fall 2008 What is Kerberos? Kerberos is a network authentication protocol Provides authentication for clientserver applications, and data integrity and confidentiality Relies entir...
Purdue >> C S >> 355 (Fall, 2008)
CS355: Cryptography Lecture 24: Kerberos CS355 Lecture 24/ Fall 2008 What is Kerberos? Kerberos is a network authentication protocol Provides authentication for clientserver applications, and data integrity and confidentiality Relies entir...
Purdue >> CS >> 355 (Fall, 2008)
CS355: Cryptography Lecture 15: Public-Key Cryptography.RSA. Attacks against RSA. CS355 Lecture 15/ Fall 2008 1 Public Key Cryptography Overview Proposed in Diffie and Hellman (1976) New Directions in Cryptography public-key encryption sch...
Purdue >> C S >> 355 (Fall, 2008)
CS355: Cryptography Lecture 15: Public-Key Cryptography.RSA. Attacks against RSA. CS355 Lecture 15/ Fall 2008 1 Public Key Cryptography Overview Proposed in Diffie and Hellman (1976) New Directions in Cryptography public-key encryption sch...
Purdue >> CS >> 355 (Fall, 2008)
CS355: Cryptography Lecture 9, 10: Basic Number Theory CS355 Lecture 9/ Fall 2008 1 RSA Public Key Crypto System Key generation: Select 2 large prime numbers of about the same size, p and q Compute n = pq, and (n) = (q-1)(p-1) Select a random in...
Purdue >> C S >> 355 (Fall, 2008)
CS355: Cryptography Lecture 9, 10: Basic Number Theory CS355 Lecture 9/ Fall 2008 1 RSA Public Key Crypto System Key generation: Select 2 large prime numbers of about the same size, p and q Compute n = pq, and (n) = (q-1)(p-1) Select a random in...
Purdue >> CS >> 355 (Fall, 2008)
CS355: Cryptography Lecture 4: Enigma. CS355 Lecture 4/ Fall 2008 1 How to move from pencil and paper to more automatic ways of encrypting and decrypting? Albertis Disk Enigma CS355 Lecture 4/ Fall 2008 2 Alberti Disk Picture courtesy o...
Purdue >> C S >> 355 (Fall, 2008)
CS355: Cryptography Lecture 4: Enigma. CS355 Lecture 4/ Fall 2008 1 How to move from pencil and paper to more automatic ways of encrypting and decrypting? Albertis Disk Enigma CS355 Lecture 4/ Fall 2008 2 Alberti Disk Picture courtesy o...
Purdue >> CS >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 23 Attacks on RSA CS 355 Fall 2005 / Lecture 23 1 Lecture Outline Quadratic Residues Modulo a composite number Attacks on RSA CS 355 Fall 2005 / Lecture 23 2 Notation clarification Zn* = { 0<...
Purdue >> C S >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 23 Attacks on RSA CS 355 Fall 2005 / Lecture 23 1 Lecture Outline Quadratic Residues Modulo a composite number Attacks on RSA CS 355 Fall 2005 / Lecture 23 2 Notation clarification Zn* = { 0<...
Purdue >> CS >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 2 Classical Cryptography: Shift Cipher and Substitution Cipher CS 355 Fall 2005/Lecture 2 1 Announcements Join class mailing list CS355_Fall2005@cs.purdue.edu To join the list sent an email to mailer@c...
Purdue >> C S >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 2 Classical Cryptography: Shift Cipher and Substitution Cipher CS 355 Fall 2005/Lecture 2 1 Announcements Join class mailing list CS355_Fall2005@cs.purdue.edu To join the list sent an email to mailer@c...
Purdue >> CS >> 355 (Fall, 2008)
CS355: Cryptography Fall 2005 Homework #3 Due date & time: 10:30am on October 7, 2005. Hand in at the beginning of class (preferred), or email to the TA (wangq@purdue.edu) by the due time. The Late Policy and Additional Instructions for HW1 still a...
Purdue >> C S >> 355 (Fall, 2008)
CS355: Cryptography Fall 2005 Homework #3 Due date & time: 10:30am on October 7, 2005. Hand in at the beginning of class (preferred), or email to the TA (wangq@purdue.edu) by the due time. The Late Policy and Additional Instructions for HW1 still a...
Purdue >> CS >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 10 Linear Feedback Shift Register CS 355 Fall 2005 / Lecture 10 1 Linear Feedback Shift Register (LFSR) Example: 1 0 0 0 Starting with 1000, the output stream is 1000 1001 1010 1111 000 Repeat e...
Purdue >> C S >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 10 Linear Feedback Shift Register CS 355 Fall 2005 / Lecture 10 1 Linear Feedback Shift Register (LFSR) Example: 1 0 0 0 Starting with 1000, the output stream is 1000 1001 1010 1111 000 Repeat e...
Purdue >> CS >> 355 (Fall, 2008)
Cryptography and Computer Security CS255 Basic number theory fact sheet Part II: Arithmetic modulo composites Basic stu 1. We are dealing with integers N on the order of 300 digits long, (1024 bits). Unless otherwise stated, we assume N is the prod...
Purdue >> C S >> 355 (Fall, 2008)
Cryptography and Computer Security CS255 Basic number theory fact sheet Part II: Arithmetic modulo composites Basic stu 1. We are dealing with integers N on the order of 300 digits long, (1024 bits). Unless otherwise stated, we assume N is the prod...
Purdue >> CS >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 18 Security of Symmetric Encryption Schemes CS 355 Fall 2005 / Lecture 18 1 Lecture Outline Ideal Block Cipher Pseudorandom Permutation (PRP) Semantic security (a.k.a. Indistinguishability Security)...
Purdue >> C S >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 18 Security of Symmetric Encryption Schemes CS 355 Fall 2005 / Lecture 18 1 Lecture Outline Ideal Block Cipher Pseudorandom Permutation (PRP) Semantic security (a.k.a. Indistinguishability Security)...
Purdue >> CS >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 5 The Enigma Machine CS 355 Fall 2005/Lecture 3 1 Lecture Outline Rotor machines The Enigma machine Breaking the Enigma machine CS 355 Fall 2005/Lecture 5 2 Rotor Machines Basic idea: if the ke...
Purdue >> C S >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 5 The Enigma Machine CS 355 Fall 2005/Lecture 3 1 Lecture Outline Rotor machines The Enigma machine Breaking the Enigma machine CS 355 Fall 2005/Lecture 5 2 Rotor Machines Basic idea: if the ke...
Purdue >> CS >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 21 Group & Testing Prime Numbers CS 355 Fall 2005 / Lecture 21 1 Lecture Outline Group Quadratic Residues Primality Test CS 355 Fall 2005 / Lecture 21 2 Groups Definition: A group (G, *) is a se...
Purdue >> C S >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 21 Group & Testing Prime Numbers CS 355 Fall 2005 / Lecture 21 1 Lecture Outline Group Quadratic Residues Primality Test CS 355 Fall 2005 / Lecture 21 2 Groups Definition: A group (G, *) is a se...
Purdue >> CS >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 36 Secure Multiparty Computation and Commitment Schemes CS 355 Fall 2005 / Lecture 35 1 Secure Function Evaluation Also known as Secure Multiparty Computation 2-party SFE: Alice has x, Bob has y, and th...
Purdue >> C S >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 36 Secure Multiparty Computation and Commitment Schemes CS 355 Fall 2005 / Lecture 35 1 Secure Function Evaluation Also known as Secure Multiparty Computation 2-party SFE: Alice has x, Bob has y, and th...
Purdue >> CS >> 355 (Fall, 2008)
Introduction to Cryptography CS 355 Lecture 32 Zero Knowledge Proof Protocols CS 355 Fall 2005 / Lecture 32 1 Lecture Outline Properties of ZK proof of knowledge Schnorr protocol Noninteractive ZK CS 355 Fall 2005 / Lecture 32 2 Propertie...
What are you waiting for?