Nifty Assignments Shamelessly Borrowed from Nick Parlante at Stanford University.

Slides:



Advertisements
Similar presentations
Apoorva Vadi M.S Information Systems New York University
Advertisements

Heuristic Search techniques
AI Pathfinding Representing the Search Space
Dreamweaver MX 2004 “Viewing the Workspace” Mrs. Wilson.
Michael Alves, Patrick Dugan, Robert Daniels, Carlos Vicuna
A-Level Computing#BristolMet Session Objectives#8 express numbers in binary, octal and hexadecimal explain the use of code to represent a character set.
The Last Procedure Before First Functional Prototype Grant Boomer, Brett Papineau, Tanis Lopez, Archana Shrestha CS 383.
Best-First Search: Agendas
MATLAB Presented By: Nathalie Tacconi Presented By: Nathalie Tacconi Originally Prepared By: Sheridan Saint-Michel Originally Prepared By: Sheridan Saint-Michel.
1 Presented by Jean-Daniel Fekete. 2  Motivation  Mélange [Elmqvist 2008] Multiple Focus Regions.
David Reed Department of Computer Science Creighton University Nifty Assignments: Encryption & the Enigma Machine.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Supervised by Prof. LYU, Rung Tsong Michael Department of Computer Science & Engineering The Chinese University of Hong Kong Prepared by: Chan Pik Wah,
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
SubSea: An Efficient Heuristic Algorithm for Subgraph Isomorphism Vladimir Lipets Ben-Gurion University of the Negev Joint work with Prof. Ehud Gudes.
Quick Review of material covered Apr 8 B+-Tree Overview and some definitions –balanced tree –multi-level –reorganizes itself on insertion and deletion.
Using Search in Problem Solving
Welcome to the Turnitin.com Instructor Quickstart Tutorial ! This brief tour will take you through the basic steps teachers and students new to Turnitin.com.
Memoplex Browser: Searching and Browsing in Semantic Networks CPSC 533C - Project Update Yoel Lanir.
Feeds Computer Applications to Medicine NSF REU at University of Virginia July 27, 2006 Paul Lee.
Instructor: Dr. Sahar Shabanah Fall Lectures ST, 9:30 pm-11:00 pm Text book: M. T. Goodrich and R. Tamassia, “Data Structures and Algorithms in.
© 2011 Delmar, Cengage Learning Chapter 11 Adding Media and Interactivity with Flash and Spry.
Managing Large RDF Graphs (Infinite Graph) Vaibhav Khadilkar Department of Computer Science, The University of Texas at Dallas FEARLESS engineering.
1 Networks and the Internet A network is a structure linking computers together for the purpose of sharing resources such as printers and files Users typically.
Cryptography Programming Lab
Trees & Graphs Nell Dale & John Lewis (adaptation by Michael Goldwasser and Erin Chambers)
Meal Menu Application Nabil Allataifeh. Preview The program is an application that can be used to search for meals and restaurants in a very friendly.
Introduction CSE 1310 – Introduction to Computers and Programming
MATH 224 – Discrete Mathematics
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
Objectives Overview Define the term, database, and explain how a database interacts with data and information Define the term, data integrity, and describe.
The Confident Researcher: Google Away (Module 2) The Confident Researcher: Google Away 2.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
IPC144 Introduction to Programming Using C Week 1 – Lesson 2
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Introduction. 2COMPSCI Computer Science Fundamentals.
Introduction to CMPT 225. What’s on the menu? Grading Course content Who’s who The story of life.
CS 114 – Class 02 Topics  Computer programs  Using the compiler Assignments  Read pages for Thursday.  We will go to the lab on Thursday.
© 2006 Pearson Addison-Wesley. All rights reserved13 B-1 Chapter 13 (continued) Advanced Implementation of Tables.
By: Lokman Chan Recursive Algorithm Recursion Definition: A function that is define in terms of itself. Goal: Reduce the solution to.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Medians and blobs Prof. Ramin Zabih
Data Structures and Algorithms in Parallel Computing Lecture 2.
Charnelle Bacon & Brandon Carr. Benefits of a Social Web Share Create Connect  The social web is a place that one can share a multiplex of information,
Programming Abstractions Cynthia Lee CS106X. Topics:  Priority Queue › Linked List implementation › Heap data structure implementation  TODAY’S TOPICS.
Queues, Stacks and Heaps. Queue List structure using the FIFO process Nodes are removed form the front and added to the back ABDC FrontBack.
Week 10 - Friday.  What did we talk about last time?  Graph representations  Adjacency matrix  Adjacency lists  Depth first search.
Consultant Presentation Group B5. Presentation Outline Introduction How to design by Group A5 Future Data Structure Interface Future Conclusion.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Communicating Using Your Website. Communication How do we communicate electronically? ◦ News Manager  News postings on our homepage  Text messages concerning.
Data Structures and Algorithms in Java AlaaEddin 2012.
7 Finding Bridge in a Graph. What is a bridge ? A C D B F G E.
Data Structures and Algorithms Lists, Stacks, Queues, and Graphs Sorting and searching algorithms.
Tutorial 1 Getting Started with Adobe Dreamweaver CS5.
Lecture 1 (UNIT -4) TREE SUNIL KUMAR CIT-UPES.
Chapter 15 Lists Objectives
System Programming and administration
IGCSE 6 Cambridge Effectiveness of algorithms Computer Science
Programming Abstractions
Data Representation – Instructions
CS302 Data Structures Fall 2012.
CS 1308 Exam 2 Review.
i206: Lecture 14: Heaps, Graphs intro.
Data Structures – Stacks and Queus
Heaps Chapter 11 has several programming projects, including a project that uses heaps. This presentation shows you what a heap is, and demonstrates.
Advanced Implementation of Tables
Introduction to Data Structures
Analysis and design of algorithm
CS 1308 Exam 2 Review.
Interesting Algorithms for Real World Problems
Presentation transcript:

Nifty Assignments Shamelessly Borrowed from Nick Parlante at Stanford University

UTCS Teachers CampNifty Assignments2 A Little History Began as a small panel discussion at SIGCSE in 1999 Friends of Nick Parlante would present cool assignments Now the “800 pound gorilla” of SIGCSE original web site –nifty.stanford.edu/nifty.stanford.edu/ –AP Central has a similar page

UTCS Teachers CampNifty Assignments3 Start With the Problem Greg Lavender - “Start with the Problem” Motivate what needs to be learned with an interesting problem Biology teacher I knew started his year with the question “What is food?” I think CS actually has it easy because we can actually solve interesting problems in our labs. –students get immediate feedback and can create non trivial artifacts

UTCS Teachers CampNifty Assignments4 What Makes an Assignment Nifty? Not the same answer for everyone I think determining if a 400 digit number is prime is an a very interesting problem –algorithmically interesting with many approaches –look at efficiency of solutions –data representation is interesting –relevant -> Encryption techniques such as RSA A lot of my students DON’T find this as interesting as I do

UTCS Teachers CampNifty Assignments5 What Makes an Assignment Nifty? they are fun, playful, interesting they are often, but not always visual. they are scalable. Top students can run with them, others can complete the basics they fulfill Astrachan’s Law Owen Astrachan – “Do not given an assignment that computes something that is more easily figured out without a computer such as the old Fahrenheit / Celsius conversion problem.”

UTCS Teachers CampNifty Assignments6 Example 1 – Name Surfer From Nick P. The Name Surfer Social Security Administration “popular baby names” web site. Data on names of children born in US Assignment uses list of 1000 most popular names by decade stored in a text file

UTCS Teachers CampNifty Assignments7 Name Surfer Students must read in and store the names, search the names, and complete a GUI to show the names Where did all the Ethels go?

UTCS Teachers CampNifty Assignments8 Name Surfer Handout has fairly detailed step by step instructions on how to approach the problem Components –modular design –multiple classes –using ArrayLists and other classes –calculations for lines on display Scalable –do simple text based, then add window, then add GUI –don’t provide data file, have students create it from multiple files

UTCS Teachers CampNifty Assignments9 Name Surfer Use the tool you have created to investigate naming trends –plot grand parents names –Rock, Trinity, Dwight –Jose, Mohammed –Mike and Michael, Dave and David, Matt and Matthew –J, D, M

UTCS Teachers CampNifty Assignments10 Example 2 – Word Ladders Proposed by Owen Astrachan Begin with two 5 letter words and a list of valid 5 letter words: –brain, smart Change one letter of start word for next word New word be in the list of valid words

UTCS Teachers CampNifty Assignments11 Word Ladder smart scart (a type of audio / video connector) scant slant plant plait plain blain (an inflammatory swelling or sore) brain My word list was derived from a Scrabble word list.

UTCS Teachers CampNifty Assignments12 Word Ladder Actually exploring a graph the nodes are the words connections (or edges or links) exist between 2 words if they differ by a single letter smartscartstartswartsmaltsmarmscantscare

UTCS Teachers CampNifty Assignments13 Word Ladder Assignment I present an algorithm to students that does a breadth first search of the graph using a queue of stacks Students must implement the stack and queue classes and then implement the algorithm Components –implementing data structures –implementing algorithms –comparisons of efficiency

UTCS Teachers CampNifty Assignments14 Word Ladder Assignment How do you find words one letter different? do a linear search of all words in the word list –O(N) …but the word list is sorted. Given a word generate all possible 5 letter combinations that are one letter different –smart -> amart, bmart, cmart, … smarx, smary, smarz (125 in all) –take these 125 words and search the word list for each one using a binary search –This can’t be faster can it?

UTCS Teachers CampNifty Assignments15 Word Ladders smart to brain Linear search method – seconds Binary search method – seconds How can that be?

UTCS Teachers CampNifty Assignments16 Word Ladders Another extension –Do a depth first search Ladders are much longer smart – brain, 521 words in seconds The word list has about 8500 words Other possible extensions: –start from both ends and work towards the middle –find all the connections up front –don’t provide the words in sorted order –map out all the independent sections, which is the biggest? –which word is closest to the center of the largest graph? –what is the largest ladder that exists? –other rules from Wikipedia