Design and Implementation*

Slides:



Advertisements
Similar presentations
“I Can” Learning Targets 5 th English/Writing 6th Six Weeks.
Advertisements

Building Multilingual Applications - The Hebrew Challenge Presented by Yigal Ayalon Go4Application.
Enigma Meghan Emilio Faculty Sponsor: Ralph Morelli (Computer Science)
Design and Implementation* Objective: To design and implement a program for a relatively small yet reasonably complicated problem. To introduce and review.
1 Foundations of Software Design Fall 2002 Marti Hearst Lecture 18: Hash Tables.
CS 536 Spring Intermediate Code. Local Optimizations. Lecture 22.
Intro To Encryption Exercise 1. Monoalphabetic Ciphers Examples:  Caesar Cipher  At Bash  PigPen (Will be demonstrated)  …
CS503: Tenth Lecture, Fall 2008 Review Michael Barnathan.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
Lecture 7 Page 1 CS 236 Online Password Management Limit login attempts Encrypt your passwords Protecting the password file Forgotten passwords Generating.
Google Wave for Developers: Making Robots Chris Patrick Con: Martin Sarsale November 17, 2009.
LAS LINKS DATA ANALYSIS. Objectives 1.Analyze the 4 sub-tests in order to understand which academic skills are being tested. 2.Use sample tests to practice.
“I Can” Learning Targets 4 th English/Writing 5th Six Weeks.
`. Lecture Overview Structure Programming Basic Control of Structure Programming Selection Logical Operations Iteration Flowchart.
By: Robert Apeldorn.  Generate statistical random texts that can be read well  Allow for the output texts to be created quickly regardless the size.
By: Jordan Hofstaedter. Make random outputs from inputs that actually make sense. If we let the computer produce random letters in English, chances are.
Lecture 12 Huffman Algorithm. In computer science and information theory, a Huffman code is a particular type of optimal prefix code that is commonly.
HNC Flow Chart 1 IT Systems Analysis and Design SSADM – Design.
Markov Chain Algorithm in Perl Michael Conway CS 265 May 4, 2011.
Computer Programming Week 1: The Basics of CP 1 st semester 2012 School of Information Technology Website:
Lecture 3 Page 1 CS 236 Online Basic Encryption Methods Substitutions –Monoalphabetic –Polyalphabetic Permutations.
Print the sample banner slides or customize with your own message. Click on the letter and type your own text. Use one character per slide. C.
ECE 353 Week 5 Final Paper To purchase this material click below link For more classes.
Trace Tables In today’s lesson we will look at:
Recursion Recursion is a fundamental programming technique that can provide an elegant solution certain kinds of problems © 2004 Pearson Addison-Wesley.
Central Limit Theorem Section 5-5
Binary Search Trees Implementing Balancing Operations Hash Tables
3.1 Fundamentals of algorithms
COMP9024: Data Structures and Algorithms
Topic: Programming Languages and their Evolution + Intro to Scratch
Programming Languages
Topic: Introduction to Computing Science and Programming + Algorithm
Sampling Distributions and Estimators
3D MAN– HOUSE.
Password Management Limit login attempts Encrypt your passwords
DDC 1023 – Programming Technique
LEARNING OBJECTIVES O(1), O(N) and O(LogN) access times. Hashing:
System Design.
CS101 Introduction to Computing Lecture 19 Programming Languages
School of Computing Clemson University Fall, 2012
Content analysis, thematic analysis and grounded theory
Basic Encryption Methods
Content Analysis What is it? How do you do it? What are the advantages and disadvantages of it?
Chapter 8: Inference for Proportions
Good Morning and Welcome Parent's and Carer's Reading Workshop
Strings: Tries, Suffix Trees
Hash Tables in C Louis Manco.
Bellringer After reading and breaking down the prompt, what are the next steps in approaching a timed essay?
Bellringer After reading and breaking down the prompt, what are the next steps in approaching a timed essay?
Component-Level Design
Topic 7 Nested Loops Case Study
PRESENTATION TITLE Optional Title Second Line Optional Subtitle
Chapter 20 Hash Tables.
Hash tables in C.
Flowcharts and Pseudocode
Markov-Chain Algorithm In Perl
Flowcharting & Algorithms
Business and Management Research
LING/C SC/PSYC 438/538 Lecture 13 Sandiway Fong.
slides created by Alyssa Harding
Data Illustrated by Tag Clouds
OMGT LECTURE 10: Elements of Hypothesis Testing
Lecture 7 Algorithm Design & Implementation. All problems can be solved by employing any one of the following building blocks or their combinations 1.
Hash Tables By JJ Shepherd.
Strings: Tries, Suffix Trees
Module contents Hi Hen, This is the outline of what I’m aiming to cover. I don’t think I’ll be using the slides but will just have the heading appearing.
Distribution of Power in Government Systems
CMPT 120 Lecture 2 - Introduction to Computing Science – Problem Solving, Algorithm and Programming.
CS105 Introduction to Computer Concepts Intro to programming
THE SYNTHESIS ESSAY A Guide 1.
Presentation transcript:

Design and Implementation* Objective: To design and implement a program for a relatively small yet reasonably complicated problem. To introduce and review a variety of implementation languages and to have students review the pros and cons of different implementation choices and languages. “Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious” – Frederick P. Brooks, The Mythical Man Month *The examples in these slides come from Brian W. Kernighan and Rob Pike, “The Practice of Programming”, Addison-Wesley, 1999.

Themes “Once the data structures are laid out, the algorithms tend to fall into place, and the coding is comparatively easy” The choice of programming language is relatively unimportant to the overall design. Comparing implementations demonstrates how languages can help or hinder, and ways in which they are unimportant.

Topics Problem: Generate random English text that reads well. Program: some data comes in, some data goes out, and the processing depends on a little ingenuity. Implementations: C, C++, Java, Perl

Failed Attempts Generate random letters (even with proper frequency. Generate random words chosen from a dictionary Need a statistical model with more structure (frequency of whole phrases)

Markov Algorithm set w1 and w2 to the first two words in the text print w1 and w2 loop: randomly choose w3, one of the successors of w1 and w2 (in sample text) print w3 replace w1 and w2 by w2 and w3

Sample Markov Algorithm Input Prefix: show your your flowcharts flowcharts and flowcharts will your tables will be be mystified be obvious Suffix words that follow flowcharts tables and will conceal be and and mystified. obvious. Show (end)

Hash Table to Find Suffix Following Two Word Prefix a state: “show” pref[0] pref[1] “your” “flowcharts” suf a suffix: next word next another state: pref[0] another suffix: pref[1] word “tables” suf next next

Implementation See lecture outline for links to 4 different implementations C (see Makefile) C++ Java Perl What are the pros and cons of the different implementations?