EW7 Assignment: (FCN) Functions

Size: px
Start display at page:

Download "EW7 Assignment: (FCN) Functions"

Transcription

1 EW7 Assignment: (FCN) Functions The purpose of this assignment is to introduce the concepts and syntax of writing functions in MATLAB. Note: Use the template provided (FCN Template.m) in the assignment download to complete this assignment. For this assignment the autograder does not rely on the format of this file, but it will help you to organize and test your functions. This completed assignment, named FCN Firstname Lastname.m, should be uploaded to Canvas along with the.mat file that is generated by the autograder. You may run the autograder as many times as you like to check your work as you complete the assignment; the.mat file will be regenerated each time, and your score will only be recorded based on the.mat file that you upload. You will also publish your m-files and upload a PDF version of the result to Canvas. Remember to upload the following to the Canvas website: FCN Firstname Lastname.m FCN Firstname Lastname.pdf FCN Score.mat All function files that you are asked to create Directions to upload files can be found at how-do-i-upload-a-file-to-my-assignment-submission Function Basics 1. Write a function called MyTimeConversion with the following function declaration line. 1 function [Hours, Minutes, Message] = MyTimeConversion (TotalMinutes) The input argument TotalMinutes should be a nonnegative scalar integer representing the total number of minutes in a specified time interval. The output arguments Hours and Minutes should be nonnegative scalars such that Hours*60 + Minutes = TotalMinutes and the value of Minutes must be less than 60. The output argument Message must be a char array. A few examples below illustrate what it s properties should be. Notice that time units should be singular (i.e. minute, hour) if the value is 1, and plural (i.e. minutes, hours) if the value is not equal to 1 (including 0). Also, if TotalMinutes equals 1, the verb should be is instead of are. For TotalMinutes = 151, Message should equal the char array 1 of 7

2 151 minutes are equal to 2 hours and 31 minutes. For TotalMinutes = 84, Message should equal the char array 84 minutes are equal to 1 hour and 24 minutes. For TotalMinutes = 60, Message should equal the char array 60 minutes are equal to 1 hour and 0 minutes. For TotalMinutes = 181, Message should equal the char array 181 minutes are equal to 3 hours and 1 minute. For TotalMinutes = 1, Message should equal the char array 1 minute is 0 hours and 1 minute. 2. To protect information security, secret messages are usually encrypted using an encryption key, turning them into a sequence of apparently meaningless characters called the ciphertext. The goal of encryption is that adversaries who intercept the ciphertext are not be able to determine anything about the original message. An authorized party, however, is able to decrypt the ciphertext if they know the key. Write a function Convert with function declaration line 1 function strout = Convert(strIn,key,mode) to encrypt or decrypt a message using some simple rules below. The input arguments are: strin: 1-by-N char array. It may be the original message, or it may be the ciphertext (see mode below) key: 1-by-K char array. It, along with a rule given below, defines exactly how strin is to be encrypted/decrypted; mode: char array that determines whether Convert is encrypting or decrypting. This input variable has two possible values, encrypt or decrypt. The output argument is: strout: 1-by-N char array. It is the encryption or decryption of strin The encryption/decryption method is described as follows: (a) Horizontally concatenate key with itself, creating a long string keyl, so that numel(keyl)>=numel(strin) is true. Then, remove (as needed) the last few characters in keyl so that numel(keyl)==numel(strin) is true. You can carry this process out exactly as described, or do this is a different manner, as long as the final value of keyl is correct. For example, if strin equals E7 is a course introducing Matlab. 2 of 7

3 and Key equals MonWed then keyl should equal MonWedMonWedMonWedMonWedMonWedMonW so that strin and keyl both have 34 characters. (b) Create double arrays that respectively contain the ASCII codes of the characters in instr and keyl. If mode is equal to encrypt, add these two double arrays, and then for each element in the array, add mod(i,10) to the i th element. In other words, add 1 to the first element, add 2 to the second element,... 9 to the ninth element, 0 to the tenth element, 1 to the eleventh element, and so on. If mode is equal to decrypt, perform the inverse procedure. (c) Finally, convert the resulting double array of ASCII codes into characters to produce the output argument strout. Note: If the user calls Convert with only two input arguments, then Convert should execute the decryption operation. If the user calls Convert with zero or one input arguments, then an appropriate error message should be executed. Test your function with the following code: 1 message = UC Berkeley is everything I hoped for. ; 2 secretkey = abc ; 3 ctext = Convert(message,secretKey, encrypt ); 4 Convert(ctext, secretkey, decrypt ) 3. In previous assignment (LOOPS) you wrote several code-sections that each performed some tasks on a row-vector containing only ones and zeros. In this problem, you will use those code-sections to make corresponding functions that also have some added functionality. Your functions will be tested on several arbitrary sequences of ones and zeros, of varying length, so be sure your code (which you may take from your submission although that is not required) is sufficiently general. In FCN Template, a place is provided for you to define your own vector of ones and zeros to test with. For example, you might use 1 V = [1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0]; If a function requires the use of nargin, you should use it at the beginning of your function to set the default parameters before they are used. (a) Write a function called flipnth, that will flip every Nth entry of the input vector (make the entry 0 if it is 1 and make it 1 if it is 0) and return the modified vector. The function declaration line should be 1 function outvec = flipnth(invec,n) 3 of 7

4 The first input invec is a numeric vector of ones and zeros, like V above. The second input is a scalar integer greater than or equal to 1. The output outvec should be a numeric vector of ones and zeros of the same size as invec. If the function flipnth is called with only one input argument, then treat the value of N as equal to 1. This is called the default value. Hence the default behavior is to flip every element of the input vector. (b) Write a function called flipnthval with function declaration line 1 function outvec = flipnthval(invec,n,value) that will flip every Nth instance of a specified value (0 or 1) in an input vector and return the modified vector. The input invec is a numeric vector of ones and zeros. The input N performs the same role as in the previous function flipnth. The input value is which value (0 or 1) to flip. For example, if the function is called with N = 4 and value = 1, the function should flip every 4th occurrence of the value 1. If, on the other hand, the function is called with N = 2 and val = 0, the function should flip every 2nd occurrence of the value 0. The output outvec should be a numeric vector of ones and zeros of the same size as invec. If flipnthval is called with one argument, the default values of N and value are both 1. IfflipNthVal is called with two arguments (invec and N), set value to 1. (c) Write a function called findwithoverlap with function declaration line 1 function [numappear, idx] = findwithoverlap(invec,pattern) The input invec is a numeric vector of ones and zeros. The input pattern should be a row vector containing only ones and zeros and whose number of elements is less than or equal to that of invec. Your function should count how many instances of pattern occur in invec and return this number to numappear. Additionally, idx should be a 1-by-numAppear array that contains the starting index for each instance of the pattern. Overlap is allowed. 4. (a) Write a function padrv which takes a row vector v, an integer n and inserts zeros at the beginning of v to create a new vector which has length n. The new vector is returned as the output. If n is smaller than numel(v), then padrv should return the original vector v. The function declaration line should be 1 function vpad = padrv(v,n) The function padrv can be written rather simply, with only one line of code after the function declaration line. (Hint: remember the stacking properties of empty arrays). Test your implementation as shown below: 1 v = [ ]; 2 result9a1 = padrv(v,2); 3 result9a2 = padrv(v,9); 4 of 7

5 The result should be that result9a1 equals [ ], and result9a2 equals [ ]. (b) Write a function unpad, which takes a row vector w, removes all zeros at the beginning of the vector and returns the remaining elements of the vector, i.e it drops the zeros at the beginning of the vector. The function declaration line should be 1 function b = unpad(v) The function unpad can be written rather simply, with only one line of code after the function declaration line. (Hint: the function find may be useful). Test your implementation in your main script file as shown below: 1 w = [ ]; 2 result9b = unpad(w); Your result should be that result9b equals the array [ ]. (c) Write a function polyadd which takes row vectors p1 and p2, interpreted as coefficients of two polynomials and returns the row vector that contains the coefficients of the sum of the two polynomials. The function declaration line of polyadd is 1 function psum = polyadd(p1,p2) You will need to use the functions padrv and unpad, which you created in parts (a) and (b). However, we require you to implement these as subfunctions (named LOCALpadrv and LOCALunpad) in the function file polyadd.m. Input arguments p1 and p2 are row vectors that respectively contain the coefficients (in decreasing degree) of the two polynomials that are to be added. For example, if the two polynomials that you want to add are P 1 (x) = x and P 2 (x) = x 2 + 2x + 1, the row vectors of their coefficients are respectively p1 = [1 0 3] and p2 = [-1 2 1]. The output argument psum is a row vector that contains the coefficients of the resulting polynomial addition. The result of adding the two polynomials is 2x+4, which is represented by the row vector of its coefficients psum = [2 4]. The output psum must be in the unpadded format. For instance, polyadd([-2,3,1],[2,2,2]) should output [5 3], not [0 5 3]. As an example, test your function with the following code. 1 p1 = [1 0 3]; 2 p2 = [-1 2 1]; 5 of 7

6 3 result9c1 = polyadd(p1,p2); 4 5 p3 = [ ]; 6 p4 = [-1 2 1]; 7 result9c2 = polyadd(p3,p4); 8 Hint: It may be helpful to use the max and numel functions. 5. Medieval MATLAB: The basic premises of the game is to have two players take turns attacking each other. Each player has four options to pick from during their turns: attack with a sword, attack with a bow and arrow, use their shield, or rest. After each selection, the opposing player s health along with the attacking player s endurance are affected as described by the chart below. Players with no endurance cannot use items that require endurance. The player that loses all of their health first loses. In this problem, we ll write the first function towards completing a full game implementation. In later assignments, we ll continue the development. Write a function called oneround, with function declaration line 1 function [dh1, de1, dh2, de2] = oneround(u1,u2,a,b,c,d,a,b,d) The function has nine input arguments. The first two, u1 and u2, represent the action (Sword, Bow&Arrow, Shield, Rest) of player 1 and player 2, respectively. For simplicity, use integer values to represent the action, namely 1 represents Sword, 2 represents Bow&Arrow, 3 represents Shield, and 4 represents Rest The last 7 input arguments model the effects of the various combinations of battles. By changing the values of these input arguments, the caller can change the outcome of battles between the two players. The function has 4 output arguments, which are the resultant change in the health (dh) and endurance (de) of each player. The function oneround should implement the table shown below. Player 2 Sword Bow&Arrow Shield Rest Player 1 Sword dh1=-a dh2=-a dh1=-b dh2=-a dh1=0 dh2=0 dh1=0 dh2=d-a de1=-a de2=-a de1=-a de2=-b de1=-a de2=-c de1=-a de2=d Player 1 Bow&Arrow dh1=-a dh2=-b dh1=-b dh2=-b dh1=0 dh2=0 dh1=0 dh2=d-b de1=-b de2=-a de1=-b de2=-b de1=-b de2=-c de1=-b de2=d Player 1 Shield dh1=0 dh2=0 dh1=0 dh2=0 dh1=0 dh2=0 dh1=0 dh2=d de1=-c de2=-a de1=-c de2=-b de1=-c de2=-c de1=-c de2=d Player 1 Rest dh1=d-a dh2=0 dh1=d-b dh2=0 dh1=d dh2=0 dh1=d dh2=d de1=d de2=-a de1=d de2=-b de1=d de2=-c de1=d de2=d 6 of 7

7 However, in order to introduce a small amount of nonrepeatability, each computed nonzero value (change in health and endurance) is to be randomly perturbed by ±15% in each call to oneround. Recall that RAND creates a random number between 0 and 1. Hence *(2*(rand-0.5)) creates a random number between 0.85 and For the combinations that return 0 in the table above, perturb those by a random number between -0.1 and 0.1. Test oneround with parameter values that satisfy A > B > D > 0, d > a > b > c > 0 7 of 7

Assignment 2 Due Thursday 7/3 at 10:00 AM

Assignment 2 Due Thursday 7/3 at 10:00 AM Assignment 2 Due Thursday 7/3 at 10:00 AM Working with Strings II (25 points): Download the file StringMaster2003.java from the course web page (the assignments page). You will find code which produces

More information

User Defined Functions

User Defined Functions User Defined Functions 120 90 1 0.8 60 Chapter 6 150 0.6 0.4 30 0.2 180 0 210 330 240 270 300 Objectives Create and use MATLAB functions with both single and multiple inputs and outputs Learn how to store

More information

Today s topics. Announcements/Reminders: Characters and strings Review of topics for Test 1

Today s topics. Announcements/Reminders: Characters and strings Review of topics for Test 1 Today s topics Characters and strings Review of topics for Test 1 Announcements/Reminders: Assignment 1b due tonight 11:59pm Test 1 in class on Thursday Characters & strings We have used strings already:

More information

1 Data Exploration: The 2016 Summer Olympics

1 Data Exploration: The 2016 Summer Olympics CS 1132 Fall 2016 Assignment 2 due 9/29 at 11:59 pm Adhere to the Code of Academic Integrity. You may discuss background issues and general strategies with others and seek help from course staff, but the

More information

Exploring Rational Functions

Exploring Rational Functions Name Date Period Exploring Rational Functions Part I - The numerator is a constant and the denominator is a linear factor. 1. The parent function for rational functions is: Graph and analyze this function:

More information

Python allows variables to hold string values, just like any other type (Boolean, int, float). So, the following assignment statements are valid:

Python allows variables to hold string values, just like any other type (Boolean, int, float). So, the following assignment statements are valid: 1 STRINGS Objectives: How text data is internally represented as a string Accessing individual characters by a positive or negative index String slices Operations on strings: concatenation, comparison,

More information

Homework 2. Out: 09/23/16 Due: 09/30/16 11:59pm UNIVERSITY OF MARYLAND DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING

Homework 2. Out: 09/23/16 Due: 09/30/16 11:59pm UNIVERSITY OF MARYLAND DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING UNIVERSITY OF MARYLAND DEPARTMENT OF ELECTRICAL AND COMPUTER ENGINEERING ENEE 457 Computer Systems Security Instructor: Charalampos Papamanthou Homework 2 Out: 09/23/16 Due: 09/30/16 11:59pm Instructions

More information

CSE 115. Introduction to Computer Science I

CSE 115. Introduction to Computer Science I CSE 115 Introduction to Computer Science I Announcements Lab activites/lab exams submit regularly to autograder.cse.buffalo.edu Announcements Lab activites/lab exams submit regularly to autograder.cse.buffalo.edu

More information

MAT 275 Laboratory 2 Matrix Computations and Programming in MATLAB

MAT 275 Laboratory 2 Matrix Computations and Programming in MATLAB MATLAB sessions: Laboratory MAT 75 Laboratory Matrix Computations and Programming in MATLAB In this laboratory session we will learn how to. Create and manipulate matrices and vectors.. Write simple programs

More information

Bulgarian Math Olympiads with a Challenge Twist

Bulgarian Math Olympiads with a Challenge Twist Bulgarian Math Olympiads with a Challenge Twist by Zvezdelina Stankova Berkeley Math Circle Beginners Group September 0, 03 Tasks throughout this session. Harder versions of problems from last time appear

More information

Notes for Lecture 14

Notes for Lecture 14 COS 533: Advanced Cryptography Lecture 14 (November 6, 2017) Lecturer: Mark Zhandry Princeton University Scribe: Fermi Ma Notes for Lecture 14 1 Applications of Pairings 1.1 Recap Consider a bilinear e

More information

ISA 562: Information Security, Theory and Practice. Lecture 1

ISA 562: Information Security, Theory and Practice. Lecture 1 ISA 562: Information Security, Theory and Practice Lecture 1 1 Encryption schemes 1.1 The semantics of an encryption scheme. A symmetric key encryption scheme allows two parties that share a secret key

More information

MAT 275 Laboratory 2 Matrix Computations and Programming in MATLAB

MAT 275 Laboratory 2 Matrix Computations and Programming in MATLAB MAT 75 Laboratory Matrix Computations and Programming in MATLAB In this laboratory session we will learn how to. Create and manipulate matrices and vectors.. Write simple programs in MATLAB NOTE: For your

More information

Teaching Manual Math 2131

Teaching Manual Math 2131 Math 2131 Linear Algebra Labs with MATLAB Math 2131 Linear algebra with Matlab Teaching Manual Math 2131 Contents Week 1 3 1 MATLAB Course Introduction 5 1.1 The MATLAB user interface...........................

More information

Senior Math Circles Cryptography and Number Theory Week 1

Senior Math Circles Cryptography and Number Theory Week 1 Senior Math Circles Cryptography and Number Theory Week 1 Dale Brydon Feb. 2, 2014 1 One-Time Pads Cryptography deals with the problem of encoding a message in such a way that only the intended recipient

More information

Defining Encryption. Lecture 2. Simulation & Indistinguishability

Defining Encryption. Lecture 2. Simulation & Indistinguishability Defining Encryption Lecture 2 Simulation & Indistinguishability Roadmap First, Symmetric Key Encryption Defining the problem We ll do it elaborately, so that it will be easy to see different levels of

More information

Secure Multiparty Computation

Secure Multiparty Computation Secure Multiparty Computation Li Xiong CS573 Data Privacy and Security Outline Secure multiparty computation Problem and security definitions Basic cryptographic tools and general constructions Yao s Millionnare

More information

LAB 2: Linear Equations and Matrix Algebra. Preliminaries

LAB 2: Linear Equations and Matrix Algebra. Preliminaries Math 250C, Section C2 Hard copy submission Matlab # 2 1 Revised 07/13/2016 LAB 2: Linear Equations and Matrix Algebra In this lab you will use Matlab to study the following topics: Solving a system of

More information

CIS 3362 Final Exam 12/4/2013. Name:

CIS 3362 Final Exam 12/4/2013. Name: CIS 3362 Final Exam 12/4/2013 Name: 1) (10 pts) Since the use of letter frequencies was known to aid in breaking substitution ciphers, code makers in the Renaissance added "twists" to the standard substitution

More information

Functional Programming in Haskell Prof. Madhavan Mukund and S. P. Suresh Chennai Mathematical Institute

Functional Programming in Haskell Prof. Madhavan Mukund and S. P. Suresh Chennai Mathematical Institute Functional Programming in Haskell Prof. Madhavan Mukund and S. P. Suresh Chennai Mathematical Institute Module # 02 Lecture - 03 Characters and Strings So, let us turn our attention to a data type we have

More information

Chapter 9 Introduction to Arrays. Fundamentals of Java

Chapter 9 Introduction to Arrays. Fundamentals of Java Chapter 9 Introduction to Arrays Objectives Write programs that handle collections of similar items. Declare array variables and instantiate array objects. Manipulate arrays with loops, including the enhanced

More information

CS52 - Assignment 7. Due Friday 11/13 at 5:00pm. https://xkcd.com/538/

CS52 - Assignment 7. Due Friday 11/13 at 5:00pm. https://xkcd.com/538/ CS52 - Assignment 7 Due Friday 11/13 at 5:00pm https://xkcd.com/538/ For this assignment we will be writing code that allows us to encrypt and decrypt strings using RSA encryption. Put your solution in

More information

Cryptography. Andreas Hülsing. 6 September 2016

Cryptography. Andreas Hülsing. 6 September 2016 Cryptography Andreas Hülsing 6 September 2016 1 / 21 Announcements Homepage: http: //www.hyperelliptic.org/tanja/teaching/crypto16/ Lecture is recorded First row might be on recordings. Anything organizational:

More information

Math 574 Review Exam #1

Math 574 Review Exam #1 Math 574 Review Exam 1 1. How many 8-card hands, dealt from a standard deck of 5, consist of: (a). 5 of one suit and 3 of another suit? (b). 4 each of two suits. (c). 3 of one suit, 3 of a second suit,

More information

Part I: Written Problems

Part I: Written Problems CSci 4223 Homework 1 DUE: Friday, February 1, 11:59 pm Instructions. Your task is to answer three written problems, and to write eleven SML functions related to calendar dates, as well as test cases for

More information

Chapter 6 User-Defined Functions. dr.dcd.h CS 101 /SJC 5th Edition 1

Chapter 6 User-Defined Functions. dr.dcd.h CS 101 /SJC 5th Edition 1 Chapter 6 User-Defined Functions dr.dcd.h CS 101 /SJC 5th Edition 1 MATLAB Functions M-files are collections of MATLAB statements that stored in a file, called a script file. Script files share the command

More information

MAT 343 Laboratory 2 Solving systems in MATLAB and simple programming

MAT 343 Laboratory 2 Solving systems in MATLAB and simple programming MAT 343 Laboratory 2 Solving systems in MATLAB and simple programming In this laboratory session we will learn how to 1. Solve linear systems with MATLAB 2. Create M-files with simple MATLAB codes Backslash

More information

MAT 275 Laboratory 2 Matrix Computations and Programming in MATLAB

MAT 275 Laboratory 2 Matrix Computations and Programming in MATLAB MATLAB sessions: Laboratory MAT 75 Laboratory Matrix Computations and Programming in MATLAB In this laboratory session we will learn how to. Create and manipulate matrices and vectors.. Write simple programs

More information

第六屆 ACM ICPC 全國私立大專校院程式競賽. National Contest for Private Universities, Taiwan 2016 競賽題目

第六屆 ACM ICPC 全國私立大專校院程式競賽. National Contest for Private Universities, Taiwan 2016 競賽題目 第六屆 ACM ICPC 全國私立大專校院程式競賽 National Contest for Private Universities, Taiwan 016 競賽題目 Problem 1: Maximum Subsequence Sum Problem (Time Limit: 3 seconds) Given a sequence containing both negative and positive

More information

CS Homework 11 p. 1. CS Homework 11

CS Homework 11 p. 1. CS Homework 11 CS 111 - Homework 11 p. 1 Deadline 11:59 pm on Monday, May 2, 2016 How to submit Each time you would like to submit your work: CS 111 - Homework 11 If your files are not already on nrs-labs, be sure to

More information

Fathom Dynamic Data TM Version 2 Specifications

Fathom Dynamic Data TM Version 2 Specifications Data Sources Fathom Dynamic Data TM Version 2 Specifications Use data from one of the many sample documents that come with Fathom. Enter your own data by typing into a case table. Paste data from other

More information

D-Optimal Designs. Chapter 888. Introduction. D-Optimal Design Overview

D-Optimal Designs. Chapter 888. Introduction. D-Optimal Design Overview Chapter 888 Introduction This procedure generates D-optimal designs for multi-factor experiments with both quantitative and qualitative factors. The factors can have a mixed number of levels. For example,

More information

CS1132 Fall 2009 Assignment 1. 1 The Monty Hall Dillemma. 1.1 Programming the game

CS1132 Fall 2009 Assignment 1. 1 The Monty Hall Dillemma. 1.1 Programming the game CS1132 Fall 2009 Assignment 1 Adhere to the Code of Academic Integrity. You may discuss background issues and general solution strategies with others and seek help from course staff, but the homework you

More information

Introduction to Programming, Aug-Dec 2006

Introduction to Programming, Aug-Dec 2006 Introduction to Programming, Aug-Dec 2006 Lecture 3, Friday 11 Aug 2006 Lists... We can implicitly decompose a list into its head and tail by providing a pattern with two variables to denote the two components

More information

Assignment 3: Block Ciphers

Assignment 3: Block Ciphers Assignment 3: Block Ciphers CSCI3381-Cryptography Due October 3, 2014 1 Solutions to the Written Problems 1. Block Cipher Modes of Operation 6 points per part, 30 total. Parts (a)-(d) refer to the cipherblock

More information

B&E 105: TECHNOLOGY FOR BUSINESS SOLUTIONS EXAM 5 CHECKLIST & OUTLINE

B&E 105: TECHNOLOGY FOR BUSINESS SOLUTIONS EXAM 5 CHECKLIST & OUTLINE B&E 105: TECHNOLOGY FOR BUSINESS SOLUTIONS EXAM 5 CHECKLIST & OUTLINE Strategy for doing well: Work along with the videos, filling out your Excel file(s) step by step. Do this until you can comfortably

More information

CS 395T. Formal Model for Secure Key Exchange

CS 395T. Formal Model for Secure Key Exchange CS 395T Formal Model for Secure Key Exchange Main Idea: Compositionality Protocols don t run in a vacuum Security protocols are typically used as building blocks in a larger secure system For example,

More information

Fall 2018 Discussion 8: October 24, 2018 Solutions. 1 Introduction. 2 Primitives

Fall 2018 Discussion 8: October 24, 2018 Solutions. 1 Introduction. 2 Primitives CS 6A Scheme Fall 208 Discussion 8: October 24, 208 Solutions Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write

More information

6.S189 Homework 1. What to turn in. Exercise 1.1 Installing Python. Exercise 1.2 Hello, world!

6.S189 Homework 1. What to turn in. Exercise 1.1 Installing Python. Exercise 1.2 Hello, world! 6.S189 Homework 1 http://web.mit.edu/6.189/www/materials.html What to turn in Do the warm-up problems for Days 1 & 2 on the online tutor. Complete the problems below on your computer and get a checkoff

More information

1 Recursion. 2 Recursive Algorithms. 2.1 Example: The Dictionary Search Problem. CSci 235 Software Design and Analysis II Introduction to Recursion

1 Recursion. 2 Recursive Algorithms. 2.1 Example: The Dictionary Search Problem. CSci 235 Software Design and Analysis II Introduction to Recursion 1 Recursion Recursion is a powerful tool for solving certain kinds of problems. Recursion breaks a problem into smaller problems that are identical to the original, in such a way that solving the smaller

More information

Using the CRM Pivot Tables

Using the CRM Pivot Tables Using the CRM Pivot Tables Pivot tables have now been added to your CRM system: we hope that these will provide you with an easy way to produce charts and graphs straight from your CRM, using the most

More information

Homework 11 Program Setup (with some IMPORTANT NEW STEPS!)

Homework 11 Program Setup (with some IMPORTANT NEW STEPS!) Spring 2018 - CS 111 - Homework 11 p. 1 Deadline 11:59 pm on Friday, April 27, 2018 Purpose To practice with loops, arrays, and more! How to submit CS 111 - Homework 11 Submit your main.cpp (or it may

More information

BoredGames Language Reference Manual A Language for Board Games. Brandon Kessler (bpk2107) and Kristen Wise (kew2132)

BoredGames Language Reference Manual A Language for Board Games. Brandon Kessler (bpk2107) and Kristen Wise (kew2132) BoredGames Language Reference Manual A Language for Board Games Brandon Kessler (bpk2107) and Kristen Wise (kew2132) 1 Table of Contents 1. Introduction... 4 2. Lexical Conventions... 4 2.A Comments...

More information

Unit 14. Passing Arrays & C++ Strings

Unit 14. Passing Arrays & C++ Strings 1 Unit 14 Passing Arrays & C++ Strings PASSING ARRAYS 2 3 Passing Arrays As Arguments Can we pass an array to another function? YES!! Syntax: Step 1: In the prototype/signature: Put empty square brackets

More information

The inverse of a matrix

The inverse of a matrix The inverse of a matrix A matrix that has an inverse is called invertible. A matrix that does not have an inverse is called singular. Most matrices don't have an inverse. The only kind of matrix that has

More information

1. What specialist uses information obtained from bones to help police solve crimes?

1. What specialist uses information obtained from bones to help police solve crimes? Mathematics: Modeling Our World Unit 4: PREDICTION HANDOUT VIDEO VIEWING GUIDE H4.1 1. What specialist uses information obtained from bones to help police solve crimes? 2.What are some things that can

More information

Student Performance Q&A:

Student Performance Q&A: Student Performance Q&A: 2016 AP Computer Science A Free-Response Questions The following comments on the 2016 free-response questions for AP Computer Science A were written by the Chief Reader, Elizabeth

More information

Rational functions, like rational numbers, will involve a fraction. We will discuss rational functions in the form:

Rational functions, like rational numbers, will involve a fraction. We will discuss rational functions in the form: Name: Date: Period: Chapter 2: Polynomial and Rational Functions Topic 6: Rational Functions & Their Graphs Rational functions, like rational numbers, will involve a fraction. We will discuss rational

More information

Information Security

Information Security SE 4472b Information Security Week 2-2 Some Formal Security Notions Aleksander Essex Fall 2015 Formalizing Security As we saw, classical ciphers leak information: Caeser/Vigenere leaks letter frequency

More information

21-Loops Part 2 text: Chapter ECEGR 101 Engineering Problem Solving with Matlab Professor Henry Louie

21-Loops Part 2 text: Chapter ECEGR 101 Engineering Problem Solving with Matlab Professor Henry Louie 21-Loops Part 2 text: Chapter 6.4-6.6 ECEGR 101 Engineering Problem Solving with Matlab Professor Henry Louie While Loop Infinite Loops Break and Continue Overview Dr. Henry Louie 2 WHILE Loop Used to

More information

University of Alberta

University of Alberta A Brief Introduction to MATLAB University of Alberta M.G. Lipsett 2008 MATLAB is an interactive program for numerical computation and data visualization, used extensively by engineers for analysis of systems.

More information

Programming Lab 1 (JS Hwk 3) Due Thursday, April 28

Programming Lab 1 (JS Hwk 3) Due Thursday, April 28 Programming Lab 1 (JS Hwk 3) Due Thursday, April 28 Lab You may work with partners for these problems. Make sure you put BOTH names on the problems. Create a folder named JSLab3, and place all of the web

More information

Secret Key Systems (block encoding) Encrypting a small block of text (say 64 bits) General Considerations:

Secret Key Systems (block encoding) Encrypting a small block of text (say 64 bits) General Considerations: Secret Key Systems (block encoding) Encrypting a small block of text (say 64 bits) General Considerations: Secret Key Systems Encrypting a small block of text (say 64 bits) General Considerations: 1. Encrypted

More information

arxiv: v1 [math.co] 25 Sep 2015

arxiv: v1 [math.co] 25 Sep 2015 A BASIS FOR SLICING BIRKHOFF POLYTOPES TREVOR GLYNN arxiv:1509.07597v1 [math.co] 25 Sep 2015 Abstract. We present a change of basis that may allow more efficient calculation of the volumes of Birkhoff

More information

6.S189 Homework 2. What to turn in. Exercise 3.1 Defining A Function. Exercise 3.2 Math Module.

6.S189 Homework 2. What to turn in. Exercise 3.1 Defining A Function. Exercise 3.2 Math Module. 6.S189 Homework 2 http://web.mit.edu/6.s189/www/materials.html What to turn in Checkoffs 3, 4 and 5 are due by 5 PM on Monday, January 15th. Checkoff 3 is over Exercises 3.1-3.2, Checkoff 4 is over Exercises

More information

Lab 4 CSE 7, Spring 2018 This lab is an introduction to using logical and comparison operators in Matlab.

Lab 4 CSE 7, Spring 2018 This lab is an introduction to using logical and comparison operators in Matlab. LEARNING OBJECTIVES: Lab 4 CSE 7, Spring 2018 This lab is an introduction to using logical and comparison operators in Matlab 1 Use comparison operators (< > = == ~=) between two scalar values to create

More information

Homework 8: Matrices Due: 11:59 PM, Oct 30, 2018

Homework 8: Matrices Due: 11:59 PM, Oct 30, 2018 CS17 Integrated Introduction to Computer Science Klein Homework 8: Matrices Due: 11:59 PM, Oct 30, 2018 Contents 1 Reverse (Practice) 4 2 Main Diagonal (Practice) 5 3 Horizontal Flip 6 4 Vertical Flip

More information

Project 3 Due October 21, 2015, 11:59:59pm

Project 3 Due October 21, 2015, 11:59:59pm Project 3 Due October 21, 2015, 11:59:59pm 1 Introduction In this project, you will implement RubeVM, a virtual machine for a simple bytecode language. Later in the semester, you will compile Rube (a simplified

More information

Elements of Cryptography and Computer and Networking Security Computer Science 134 (COMPSCI 134) Fall 2016 Instructor: Karim ElDefrawy

Elements of Cryptography and Computer and Networking Security Computer Science 134 (COMPSCI 134) Fall 2016 Instructor: Karim ElDefrawy Elements of Cryptography and Computer and Networking Security Computer Science 134 (COMPSCI 134) Fall 2016 Instructor: Karim ElDefrawy Homework 2 Due: Friday, 10/28/2016 at 11:55pm PT Will be posted on

More information

C++ Programming. Arrays and Vectors. Chapter 6. Objectives. Chiou. This chapter introduces the important topic of data structures collections

C++ Programming. Arrays and Vectors. Chapter 6. Objectives. Chiou. This chapter introduces the important topic of data structures collections C++ Programming Chapter 6 Arrays and Vectors Yih-Peng Chiou Room 617, BL Building (02) 3366-3603 3603 ypchiou@cc.ee.ntu.edu.tw Photonic Modeling and Design Lab. Graduate Institute of Photonics and Optoelectronics

More information

EECE.2160: ECE Application Programming Spring 2018 Programming Assignment #6: Using Arrays to Count Letters in Text Due Wednesday, 4/4/18, 11:59:59 PM

EECE.2160: ECE Application Programming Spring 2018 Programming Assignment #6: Using Arrays to Count Letters in Text Due Wednesday, 4/4/18, 11:59:59 PM Spring 2018 Programming Assignment #6: Using Arrays to Count Letters in Text Due Wednesday, 4/4/18, 11:59:59 PM 1. Introduction In this program, you will practice working with arrays. Your program will

More information

Cardinality of Sets. Washington University Math Circle 10/30/2016

Cardinality of Sets. Washington University Math Circle 10/30/2016 Cardinality of Sets Washington University Math Circle 0/0/06 The cardinality of a finite set A is just the number of elements of A, denoted by A. For example, A = {a, b, c, d}, B = {n Z : n } = {,,, 0,,,

More information

Solving Systems Using Row Operations 1 Name

Solving Systems Using Row Operations 1 Name The three usual methods of solving a system of equations are graphing, elimination, and substitution. While these methods are excellent, they can be difficult to use when dealing with three or more variables.

More information

CS52 - Assignment 8. Due Friday 4/15 at 5:00pm.

CS52 - Assignment 8. Due Friday 4/15 at 5:00pm. CS52 - Assignment 8 Due Friday 4/15 at 5:00pm https://xkcd.com/859/ This assignment is about scanning, parsing, and evaluating. It is a sneak peak into how programming languages are designed, compiled,

More information

Assignment 7. Computer Science 52. Due November 30, 2018, at 5:00 pm

Assignment 7. Computer Science 52. Due November 30, 2018, at 5:00 pm Computer Science 52 Assignment 7 Due November 30, 2018, at 5:00 pm Reading This assignment is about RSA encryption. Refer to the course document RSA Encryption and the original RSA paper for details on

More information

Outline. User-based knn Algorithm Basics of Matlab Control Structures Scripts and Functions Help

Outline. User-based knn Algorithm Basics of Matlab Control Structures Scripts and Functions Help Outline User-based knn Algorithm Basics of Matlab Control Structures Scripts and Functions Help User-based knn Algorithm Three main steps Weight all users with respect to similarity with the active user.

More information

TABLE OF CONTENTS Introduction: Default Operation and Remote Programming Programming Receptionist Extensions Installing CallExtend

TABLE OF CONTENTS  Introduction: Default Operation and Remote Programming Programming Receptionist Extensions Installing CallExtend TABLE OF CONTENTS Introduction: Default Operation and Remote Programming... 1 CallExtend s Default Settings... 1 Resetting CallExtend to the Default Settings... 3 Remote Programming... 4 Installing CallExtend...

More information

ECE15: Lab #3. Problem 1. University of California San Diego ( 1) + x4. + x8 + (1)

ECE15: Lab #3. Problem 1. University of California San Diego ( 1) + x4. + x8 + (1) University of California San Diego ECE15: Lab #3 This lab relates specifically to the material covered in Lecture Units 6 and 7 in class, although it assumes knowledge of the previous Lecture Units as

More information

CS 320: Concepts of Programming Languages

CS 320: Concepts of Programming Languages CS 320: Concepts of Programming Languages Wayne Snyder Computer Science Department Boston University Lecture 03: Bare-Bones Haskell Continued: o Function Application = Rewriting by Pattern Matching o Haskell

More information

(Refer Slide Time: 1:27)

(Refer Slide Time: 1:27) Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi Lecture 1 Introduction to Data Structures and Algorithms Welcome to data

More information

Solving Systems of Equations Using Matrices With the TI-83 or TI-84

Solving Systems of Equations Using Matrices With the TI-83 or TI-84 Solving Systems of Equations Using Matrices With the TI-83 or TI-84 Dimensions of a matrix: The dimensions of a matrix are the number of rows by the number of columns in the matrix. rows x columns *rows

More information

Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website:

Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website: Welcome to Lab! Feel free to get started until we start talking! The lab document is located on the course website: https://users.wpi.edu/~sjarvis/ece2049_smj/ We will come around checking your pre-labs

More information

C for Engineers and Scientists: An Interpretive Approach. Chapter 10: Arrays

C for Engineers and Scientists: An Interpretive Approach. Chapter 10: Arrays Chapter 10: Arrays 10.1 Declaration of Arrays 10.2 How arrays are stored in memory One dimensional (1D) array type name[expr]; type is a data type, e.g. int, char, float name is a valid identifier (cannot

More information

Chapter 18 out of 37 from Discrete Mathematics for Neophytes: Number Theory, Probability, Algorithms, and Other Stuff by J. M. Cargal.

Chapter 18 out of 37 from Discrete Mathematics for Neophytes: Number Theory, Probability, Algorithms, and Other Stuff by J. M. Cargal. Chapter 8 out of 7 from Discrete Mathematics for Neophytes: Number Theory, Probability, Algorithms, and Other Stuff by J. M. Cargal 8 Matrices Definitions and Basic Operations Matrix algebra is also known

More information

HMC CS 158, Fall 2017 Problem Set 3 Programming: Regularized Polynomial Regression

HMC CS 158, Fall 2017 Problem Set 3 Programming: Regularized Polynomial Regression HMC CS 158, Fall 2017 Problem Set 3 Programming: Regularized Polynomial Regression Goals: To open up the black-box of scikit-learn and implement regression models. To investigate how adding polynomial

More information

1 Achieving IND-CPA security

1 Achieving IND-CPA security ISA 562: Information Security, Theory and Practice Lecture 2 1 Achieving IND-CPA security 1.1 Pseudorandom numbers, and stateful encryption As we saw last time, the OTP is perfectly secure, but it forces

More information

CS195H Homework 1 Grid homotopies and free groups. Due: February 5, 2015, before class

CS195H Homework 1 Grid homotopies and free groups. Due: February 5, 2015, before class CS195H Homework 1 Grid homotopies and free groups This second homework is almost all about grid homotopies and grid curves, but with a little math in the middle. This homework, last year, took people about

More information

CSC 474/574 Information Systems Security

CSC 474/574 Information Systems Security CSC 474/574 Information Systems Security Topic 2.5 Public Key Algorithms CSC 474/574 Dr. Peng Ning 1 Public Key Algorithms Public key algorithms covered in this class RSA: encryption and digital signature

More information

Part 1. Summary of For Loops and While Loops

Part 1. Summary of For Loops and While Loops NAME EET 2259 Lab 5 Loops OBJECTIVES -Understand when to use a For Loop and when to use a While Loop. -Write LabVIEW programs using each kind of loop. -Write LabVIEW programs with one loop inside another.

More information

Add in a new balloon sprite, and a suitable stage backdrop.

Add in a new balloon sprite, and a suitable stage backdrop. Balloons Introduction You are going to make a balloon-popping game! Step 1: Animating a balloon Activity Checklist Start a new Scratch project, and delete the cat sprite so that your project is empty.

More information

Lesson 2: Using the Number Line to Model the Addition of Integers

Lesson 2: Using the Number Line to Model the Addition of Integers : Using the Number Line to Model the Addition of Integers Classwork Exercise 1: Real-World Introduction to Integer Addition Answer the questions below. a. Suppose you received $10 from your grandmother

More information

a b c d a b c d e 5 e 7

a b c d a b c d e 5 e 7 COMPSCI 230 Homework 9 Due on April 5, 2016 Work on this assignment either alone or in pairs. You may work with different partners on different assignments, but you can only have up to one partner for

More information

Dr Richard Greenaway

Dr Richard Greenaway SCHOOL OF PHYSICS, ASTRONOMY & MATHEMATICS 4PAM1008 MATLAB 3 Creating, Organising & Processing Data Dr Richard Greenaway 3 Creating, Organising & Processing Data In this Workshop the matrix type is introduced

More information

SCHEME 8. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. March 23, 2017

SCHEME 8. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. March 23, 2017 SCHEME 8 COMPUTER SCIENCE 61A March 2, 2017 1 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,

More information

CS Fall Homework 11 p. 1. CS Homework 11

CS Fall Homework 11 p. 1. CS Homework 11 CS 111 - Fall 2018 - Homework 11 p. 1 Deadline 11:59 pm on MONDAY, December 3, 2018 Purpose To practice with loops, arrays, and more! How to submit Submit your THREE.cpp FILES: CS 111 - Homework 11 hw11.cpp

More information

The Simplex Algorithm for LP, and an Open Problem

The Simplex Algorithm for LP, and an Open Problem The Simplex Algorithm for LP, and an Open Problem Linear Programming: General Formulation Inputs: real-valued m x n matrix A, and vectors c in R n and b in R m Output: n-dimensional vector x There is one

More information

SCHEME 7. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. October 29, 2015

SCHEME 7. 1 Introduction. 2 Primitives COMPUTER SCIENCE 61A. October 29, 2015 SCHEME 7 COMPUTER SCIENCE 61A October 29, 2015 1 Introduction In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,

More information

CS 2604 Minor Project 1 Summer 2000

CS 2604 Minor Project 1 Summer 2000 RPN Calculator For this project, you will design and implement a simple integer calculator, which interprets reverse Polish notation (RPN) expressions. There is no graphical interface. Calculator input

More information

It can be confusing when you type something like the expressions below and get an error message. a range variable definition a vector of sine values

It can be confusing when you type something like the expressions below and get an error message. a range variable definition a vector of sine values 7_april_ranges_.mcd Understanding Ranges, Sequences, and Vectors Introduction New Mathcad users are sometimes confused by the difference between range variables and vectors. This is particularly true considering

More information

Administration. Objects and Arrays. Objects. Agenda. What is an Object? What is a Class?

Administration. Objects and Arrays. Objects. Agenda. What is an Object? What is a Class? Administration Objects and Arrays CS 99 Summer 2000 Michael Clarkson Lecture 6 Read clarified grading policies Lab 6 due tomorrow Submit.java files in a folder named Lab6 Lab 7 Posted today Upson Lab closed

More information

Lecture 2 Finite Automata

Lecture 2 Finite Automata Lecture 2 Finite Automata August 31, 2007 This lecture is intended as a kind of road map to Chapter 1 of the text just the informal examples that I ll present to motivate the ideas. 1 Expressions without

More information

Understanding Cryptography by Christof Paar and Jan Pelzl. Chapter 9 Elliptic Curve Cryptography

Understanding Cryptography by Christof Paar and Jan Pelzl. Chapter 9 Elliptic Curve Cryptography Understanding Cryptography by Christof Paar and Jan Pelzl www.crypto-textbook.com Chapter 9 Elliptic Curve Cryptography ver. February 2nd, 2015 These slides were prepared by Tim Güneysu, Christof Paar

More information

Chapter 1 Operations With Numbers

Chapter 1 Operations With Numbers Chapter 1 Operations With Numbers Part I Negative Numbers You may already know what negative numbers are, but even if you don t, then you have probably seen them several times over the past few days. If

More information

ECE 206, Fall 2001: Lab 3

ECE 206, Fall 2001: Lab 3 ECE 206, : Lab 3 Data Movement Instructions Learning Objectives This lab will give you practice with a number of LC-2 programming constructs. In particular you will cover the following topics: - Load/store

More information

CSC443 Winter 2018 Assignment 1. Part I: Disk access characteristics

CSC443 Winter 2018 Assignment 1. Part I: Disk access characteristics CSC443 Winter 2018 Assignment 1 Due: Sunday Feb 11, 2018 at 11:59 PM Part I: Disk access characteristics In this assignment, we investigate the data access characteristics of secondary storage devices.

More information

Interactive Math Glossary Terms and Definitions

Interactive Math Glossary Terms and Definitions Terms and Definitions Absolute Value the magnitude of a number, or the distance from 0 on a real number line Addend any number or quantity being added addend + addend = sum Additive Property of Area the

More information

CHAPTER 4 FUNCTIONS. 4.1 Introduction

CHAPTER 4 FUNCTIONS. 4.1 Introduction CHAPTER 4 FUNCTIONS 4.1 Introduction Functions are the building blocks of C++ programs. Functions are also the executable segments in a program. The starting point for the execution of a program is main

More information

MC 302 GRAPH THEORY 10/1/13 Solutions to HW #2 50 points + 6 XC points

MC 302 GRAPH THEORY 10/1/13 Solutions to HW #2 50 points + 6 XC points MC 0 GRAPH THEORY 0// Solutions to HW # 0 points + XC points ) [CH] p.,..7. This problem introduces an important class of graphs called the hypercubes or k-cubes, Q, Q, Q, etc. I suggest that before you

More information

Block cipher modes. Lecturers: Mark D. Ryan and David Galindo. Cryptography Slide: 75

Block cipher modes. Lecturers: Mark D. Ryan and David Galindo. Cryptography Slide: 75 Block cipher modes Lecturers: Mark D. Ryan and David Galindo. Cryptography 2017. Slide: 75 Lecturers: Mark D. Ryan and David Galindo. Cryptography 2017. Slide: 76 Block cipher modes Block ciphers (like

More information

Diffie-Hellman Key Agreement

Diffie-Hellman Key Agreement Diffie-Hellman Key Agreement (Anonymous) Diffie-Hellman 0. params: p, g 1. generate: a 2. compute: A= g a p 3. compute: s= B a p Alice A B s = g ab p Bob 0. params: p, g 1. generate: b 2. compute: B= g

More information