Style for Special CS Components. Mathematics “Our confidence in any science is roughly proportional to the amount of mathematics it employs” (Bronowski.

Slides:



Advertisements
Similar presentations
Analysis of Computer Algorithms
Advertisements

MATH 224 – Discrete Mathematics
Situation Calculus for Action Descriptions We talked about STRIPS representations for actions. Another common representation is called the Situation Calculus.
Reviewing Rejection Top Ten ( The most common reasons I reject papers that I am asked to review ) James Davis UC Santa Cruz 2005.
Chapter 12 – Strategies for Effective Written Reports
ISBN Chapter 3 Describing Syntax and Semantics.
CS 330 Programming Languages 09 / 19 / 2006 Instructor: Michael Eckmann.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Midterm Review Fri. Oct 26.
Proof Points Key ideas when proving mathematical ideas.
CSE332: Data Abstractions Lecture 9: BTrees Tyler Robison Summer
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 20 Instructor: Paul Beame.
CS 330 Programming Languages 09 / 18 / 2007 Instructor: Michael Eckmann.
UMass Lowell Computer Science Advanced Algorithms Computational Geometry Prof. Karen Daniels Spring, 2004 Project.
Cmpt-225 Algorithm Efficiency.
Complexity (Running Time)
Chapter 11: Limitations of Algorithmic Power
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
7 INVERSE FUNCTIONS. The common theme that links the functions of this chapter is:  They occur as pairs of inverse functions. INVERSE FUNCTIONS.
Describing Syntax and Semantics
Elementary Data Structures and Algorithms
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Summary of Algo Analysis / Slide 1 Algorithm complexity * Bounds are for the algorithms, rather than programs n programs are just implementations of an.
DAST, Spring © L. Joskowicz 1 Data Structures – LECTURE 1 Introduction Motivation: algorithms and abstract data types Easy problems, hard problems.
Cmpt-225 Simulation. Application: Simulation Simulation  A technique for modeling the behavior of both natural and human-made systems  Goal Generate.
APPLICATIONS OF DIFFERENTIATION 4. In Sections 2.2 and 2.4, we investigated infinite limits and vertical asymptotes.  There, we let x approach a number.
Copyright © Cengage Learning. All rights reserved.
Advanced Research Methodology
CSE 373 Data Structures Lecture 15
Copyright © Cengage Learning. All rights reserved. CHAPTER 11 ANALYSIS OF ALGORITHM EFFICIENCY ANALYSIS OF ALGORITHM EFFICIENCY.
Intro to Discrete Structures
Algorithms Describing what you know. Contents What are they and were do we find them? Why show the algorithm? What formalisms are used for presenting.
Writing up.
Towers of Hanoi. Introduction This problem is discussed in many maths texts, And in computer science an AI as an illustration of recursion and problem.
Copyright © Cengage Learning. All rights reserved.
Analysis CS 367 – Introduction to Data Structures.
Data Structures and Algorithms Lecture 5 and 6 Instructor: Quratulain Date: 15 th and 18 th September, 2009 Faculty of Computer Science, IBA.
Mathematics Review and Asymptotic Notation
Analysis of Algorithms1 Running Time Pseudo-Code Analysis of Algorithms Asymptotic Notation Asymptotic Analysis Mathematical facts.
Writing for Computer Science 7. Algorithms 8. Editing Cho, Ho-Gi GNU OSLab.
LIMITS AND DERIVATIVES 2. In Sections 2.2 and 2.4, we investigated infinite limits and vertical asymptotes.  There, we let x approach a number.  The.
Analysis of Algorithms
Chapter 19: Searching and Sorting Algorithms
The Recursion Theorem Pages 217– ADVANCED TOPICS IN C O M P U T A B I L I T Y THEORY.
In Sections 2.2 and 2.4, we investigated infinite limits and vertical asymptotes.  There, we let x approach a number.  The result was that the values.
Complexity of Algorithms
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
Copyright © Cengage Learning. All rights reserved. 1 Functions and Models.
Algorithms & Flowchart
Reading and Writing Mathematical Proofs Spring 2015 Lecture 4: Beyond Basic Induction.
MATH 224 – Discrete Mathematics
Copyright © Cengage Learning. All rights reserved. 6 Inverse Functions.
Data Structure Introduction Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2010.
1 CSC 421: Algorithm Design & Analysis Spring 2014 Complexity & lower bounds  brute force  decision trees  adversary arguments  problem reduction.
CS 150: Analysis of Algorithms. Goals for this Unit Begin a focus on data structures and algorithms Understand the nature of the performance of algorithms.
CES 592 Theory of Software Systems B. Ravikumar (Ravi) Office: 124 Darwin Hall.
Lecture 2 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
21-Feb-16 Analysis of Algorithms II. 2 Basics Before we attempt to analyze an algorithm, we need to define two things: How we measure the size of the.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1.1 Modeling and Equation Solving.
Ch03-Algorithms 1. Algorithms What is an algorithm? An algorithm is a finite set of precise instructions for performing a computation or for solving a.
Chapter 3 Chapter Summary  Algorithms o Example Algorithms searching for an element in a list sorting a list so its elements are in some prescribed.
Chapter 15 Running Time Analysis. Topics Orders of Magnitude and Big-Oh Notation Running Time Analysis of Algorithms –Counting Statements –Evaluating.
1 Writing for Computer Science 4. Punctuation Ko, Myung warn.
Lecture 2 Algorithm Analysis
Pseudocode and comments
Introduction to Algorithms
Written Description of Algorithms
1.6 Inverse Functions and Logarithms
Pseudocode and comments
Estimating Algorithm Performance
Discrete Mathematics CS 2610
Presentation transcript:

Style for Special CS Components

Mathematics “Our confidence in any science is roughly proportional to the amount of mathematics it employs” (Bronowski & Mazlish, The Western Intellectual Tradition) “The use of mathematics for expressing ideas is often the difference between a vague paper and a clear one.”

Mathematical Clarity Be correct: “Reading mathematics is difficult work, … and pointless if the mathematics doesn’t make sense.” Use mathematics to untangle convoluted statements (introducing identifiers)introducing identifiers Use words correctly.  “intractable” means NP-hard, not “hard to do.”  “formula” and “equation” are not the same.  “subset”  not to be used to mean “sub-problem”  …

Theorems Motivate lemmas Prefer direct proofs Proofs are reasoned arguments  Proofs are social (target intended audience)  Proof step size: so reader can fill gaps “easily”  No algebraic transformations

Readability Don’t start a sentence with a variable or a mathematical symbol. Break up any (long) stream of complex expressions with intermittent explanation. Break down overly complex expressions. Typeset carefully. Use (only) commonly understood symbols. Don’t overload operators. Be precise about ranges, e.g. […) Minimize use of unfamiliar letters and don’t misuse them (e.g., don’t use  for  ) Avoid line breaks in formulas.

Numbers Write numbers as figures (  except numbers up to twenty  (except literals, measurements, percentages)) Be careful with precision, binary/decimal, percentages, units  Not … 7.31 and 181  “I’m told that there are 10 kinds of people in the world, those that understand binary and those that don’t.”  Make percentages clear: is it “grew by 4% from 52% to 54%” or “grew by 2% from 52% to 54%”?  Plural/singular: “0.5 seconds” vs. “a half second”

Graphs, Figures, Tables “And what is the use of a book”, thought Alice, “without pictures or conversations?” (Lewis Carrol, Alice in Wonderland) “Well-chosen illustrations breathe life into a paper.” But “should be reserved for material that is central to the paper.”

ExamplesExamples (Good and Bad) Graphs Figures Tables

Illustrations and Captions Strive for independence  Graphs, figures, and tables, should be fairly self explanatory and self contained.  Captions should aid, making the entire unit fairly independent. But never make it entirely independent  “If you don’t have anything to say about an illustration, leave it out.”  Introduce illustrations on the same page or on the preceding page (in so far as possible).

Algorithms “Mostly gobbledygook …” (Eric Partridge, defining computation in Usage and Abusage) “An algorithm by itself is uninteresting: what is of value is an algorithm that has been shown to solve a problem.”

Objectives for Presenting Algorithms Demonstrate that it’s worthwhile  Proof of correctness, or  Experimental results showing that it has some claimed performance, or both Expectations  Input/output (including scope and limitations)  Steps  Properties (preconditions, postconditions, loop invariants) for correctness proofs  Complexity analysis  Experimental validation

Algorithm Description Examples Pseudocode Prose-code Literate code

Auxiliary Information Figures (e.g., AVL tree rotation) Examples (e.g., B + -tree insertion/deletion) Notation  Prefer mathematical notation over programming notation  x i not x[i]  Avoid specific programming-language syntax  never: ==, a++, for(i=0;i<n;i++)  Avoid possible ambiguities  p × q, if pq might be misunderstood as a variable

Performance Evaluation Basis of evaluation  Be realistic: don’t (obviously, or otherwise) favor your algorithm.  “If the basis of comparison is questionable, the results are questionable too.” Processing time  Difficult to measure  Many factors involved: CPU speed, cache size, system load, pre-fetch strategy, … Disk and network traffic  Complex  can’t describe mathematically  “Broad approximations are often the only manageable way of describing disk performance.”

Asymptotic Complexity Bounds  Upper bounds: O(n)  Lower bounds: o(n),  (n),  (n)  Tight bounds:  (n) Big-O, however, is often used less formally  We often mean “the complexity” rather than “the upper bound on the complexity”  Both of the following, for example, are OK Comparison-based sorting takes O(n log n) time. Insertion sort always takes at least O(n) time.