MAT2440 Discrete Structures & Algorithms I

Professor Kate Poirier, Spring 2017

Page 4 of 9

Reminders/updates

  • Thanks to Chris for pointing out that student licenses for MATLAB are available from CityTech! Choose MathWorks here. Now you can download MATLAB to your own computer for your spring break assignment (instead of Scilab, the free alternative I mentioned in class).
  • Your Test #2 grades will be available on Blackboard as soon as they’re available (sometime during the break). You will also be assigned a rough mid-semester grade there. The last day to withdraw from the course is April 19, so you will have this grade information available before then so you can make an informed decision. If you’re unsure about whether you should stay in the course, I can’t make an official recommendation, but I’m happy to talk with you about it over email.
  • Don’t forget about your three spring break assignments.
  • HAVE A GREAT SPRING BREAK! SEE YOU ON APRIL 25!

In-class Exercise algorithm in JavaScript

I know two other students wrote an algorithm in Java and C++, but I had finished my code right after class the other day and forgot to post on here. Incase others wanted to see another way to solve it, I used JavaScript.

background(255, 255, 255);
var m = 30;
var i = 0;
var x = 7;
var a = 19;
var c = 8;
var num, div, num1, mod;

while( i <10){
var change = (i+1) * 25;
num = (a*x)+c;
div = floor(num/ m);
num1 = div*30;
fill(0, 0, 0);
text(x, 100,change);
x= num-num1;
i++;
}

In the above code, I declared/ initialized some variables. I used a While loop using "i" as a counter. I have the variables outside the loop as a static number and "change", "num", "div", "num1", "x" as a variable inside the loop that will continuously change each time the program loops.

I hope this helps if anyone was confused, or wanted to see another solution. Feel free to message/ reply to this post if you have questions.

I attached a screenshot I took. I wrote the code in Khan Academy since the website lets you write programs and run them.

Also, the variable “change” is just used to format where I want the text to print the number. You can see that in the text command where I text “x” and then place it at 100 on the X-axis and the “change” is the Y-axis. The X- axis is always at 100 and the “change” keeps changing on the Y-axis by 25 pixels each loop.

Spring Break Assignments

  1. OpenLab code-breaking assignment (in teams); first post due by Tuesday April 11; others due Thursday April 13.
  2. MATLAB assignment; bring files with you to class on Tuesday, April 25.
  3. Complete the assigned exercises for Sections 10.1, 10.2, and 10.4 (20 questions total; most require an understanding of a particular definition). Quiz #7 on Thursday, April 27 will cover material/homework from these sections and/or 4.5 and 4.6. If there’s anything that’s still unclear by the end of the break, make sure to attend office hours on Tuesday, April 25.

MATLAB assignment

  1. On a computer that has MATLAB installed, watch the videos for Lectures #1, #2, #3, and #5 here (5-10 minutes each).
  2. Open MATLAB and follow along with the videos. (If you’re using a computer lab on campus, don’t forget to bring headphones.)
  3. Read from page 191 to the top of page 196.
  4. Complete #1, 13, 14, and 16 on page 202.
  5. Try implementing Algorithms 1, 2, and 3 in MATLAB for a random list of numbers.
  6. Try implementing your answers for #1, 13, 14, and 16 on page 202 in MATLAB for a random list of numbers.
  7. Bring these files with you to class on Tuesday, April 25.

While MATLAB is the official requirement for this assignment, and is installed on most computers in CityTech labs, a free alternative to MATLAB is Scilab. You might like to practice on Scilab if you will not have access to MATLAB during the break but do have access to a computer that you can install software on. Commands in Scilab are similar to the commands in MATLAB, but they’re not necessarily identical, so you may find the MATLAB-Scilab equivalence page helpful. You will have to convert to MATLAB after you arrive back on campus after the break.

OpenLab code-breaking assignment (in teams)

For this assignment, form teams of 2-3 students. There are two goals for this assignment:

  1. Conduct a conversation publicly on the OpenLab with your partners entirely in code.
  2. Break another team’s code to decipher their messages.

Before starting your conversation, you and your partner(s) must choose how you will encrypt your messages. Read pages 294-297 and, together with your teammates, choose a shift cipher, an affine cipher, or a block cipher to use. Keep this information private. Decide who will post the first message.

One team member will post the first message as a new post on the OpenLab. Title your post “Code-breaking” and the names of all the team members (not encrypted). Select the “Code-breaking” category from the right-hand side of the screen. The message can be as long as you want, but it must be at least two sentences long and must be entirely encrypted. It will look something like:

L ZLOO EH UHDOOB KDSSB LI BRXU HQFRGHG PHVVDJHV DUH VLOOB MRNHV RU IXQQB VWRULHV. MXVW PDNH VXUH WKDW WKHB DUH QRW WRR LQDSSURSULDWH!

After the first message is posted, other team members can add their encrypted responses as comments on their teammate’s post. Every team member must post at least one message. Messages don’t need to say anything in particular. You can tell a story together or ask each other questions. You can be silly or you can be serious. Keep posting encrypted messages until someone else breaks your code.

After enough encrypted messages have been posted, try breaking another team’s code. If you break it, post a comment on their thread with the decrypted messages along with the kind of cipher they chose, and the information you needed to decrpyt it. If you and a partner work together to break another team’s code, make sure to credit them in your post. You can try breaking as many other teams’ codes as you like, but you may only post the decrypted code for one team.

First post due by Tuesday, April 11. All teammates’s comments due by Thursday, April 13.

We’ll see how many codes have been broken by our first class meeting after spring break!

You might find the Khan Academy unit on cryptography (including videos) to be useful.

test solution #6b

a=superman is able to prevent evil

b= superman is impotent

c=superman is willing to prevent evil

d=superman is malevolent

e= superman exsists

f= superman prevents evil

 

argument form=

(a∧c)→f

¬a→b

¬c→d

¬f

e→¬b∧¬d

___________________

:.¬e

 

Argument =

(we have to prove ¬e)

 

  1.  (a∧c)→f    =”p”→f  =add  !f  =  apply modus tollens   (!f∧(p→f))→!p = !p = !(a∧c)
  2.  ¬ (a∧c)  =  !a V !c

¬a→b

¬c→d

 

e→¬(b∧d)

 

*i am lost after this

i know this is supposed to look like this

and pg 73 of the book has it but i dont really understand how the substituting works

 

this website explains more about building arguments:

http://sites.millersville.edu/bikenaga/math-proof/rules-of-inference/rules-of-inference.html

 

 

 

 

 

 

 

 

 

 

 

 

 

« Older posts Newer posts »