Research Tools & Techniques for Computer Engineering Ron Sass http://www.rcs.uncc.edu/ rsass University of North Carolina at Charlotte Fall 2009 1/ 106
Overview of Research Tools & Techniques Course What Is It? Why? Organization 2/ 106
What Is A Research Tools & Techniques Course? This class prepares students for graduate-level research; it covers two topics that will converge and diverge during the semester. mathematics discrete structures and counting reasoning (argument, logic, proof) order analysis some statistics software C data structures algorithms operating system basics software development techniques 3/ 106
Why? Many M.S. students come very different institutions, various programs, and have diverse backgrounds... some may have Computer Science degrees others: traditional Electrical Engineering degrees faculty have noticed huge swings in student programming skills many students need additional math skills to set up and conduct research experiments 4/ 106
Course Objective our overall goal of this course is: Raise all accepted, incoming students to the same level in terms of their mathematical and software skills. to do this, our specific objective will be to teach these two topics in an integrated, first-year Master s level course some natural side-effects some aspects may overlap with your prior education some material may require you to seek additional preparation at times, there may be a disconnect between the topics 5/ 106
Who Should Take This? students interested in Computer Engineering research students taking the coursework-only option (part of the exit exams includes the mathematics taught here) students interested in certain topics embedded systems reconfigurable computing (some) wireless/communications 6/ 106
Organization each topic (mathematics and software) will get roughly equal time Mondays math Wednesday: software 7/ 106
Grading Points Assignments ( 8 10) 25 Quizzes ( 6) 15 Test 1 (Wed, September 30th) 15 Test 2 (Wed, November 11th) 15 Final Exam (Wed, December 16, 11:30 2:30) 30 100 8/ 106
With that, let s begin... What Type of Problems do CpE Researchers face? 9/ 106
Alfred Suppose Alfred satisfies all of these conditionals. What, if anything, can you say about Alfred s academic performance? from Kalish & Montague 10/ 106
Minimum Spanning Tree A 7 B 6 2 D 5 8 C each link is weighted; blue highlights sum to smallest can you prove it? can you write a program that will find it? what if there were 10,000 nodes? 11/ 106
Automake and Friends Suppose you want to use or you have an application you want to contribute to the Open Source community. It requires about a half-dozen (free) libraries but and may or may not work on every version of Unix. How do you make a package suitable for wide distribution without creating a unique solution for each? 12/ 106
Recurrence Relations Suppose a problem can be divided into 100 sub-problems. takes 5 steps to divide the problem in half takes 10 steps to form a complete solution from two sub-problem solutions takes 50 steps to directly solve 1 basic sub-problem assuming, you use a divide-and-conquer technique (repeatedly split your problem in half until you have basic problem that is solved directly)... How many steps are required? What if the size of the problem N sub-problems was variable? Would it be faster than a problem that takes N 2 steps? 13/ 106
Dynamic Programming Suppose you have word (call it the query) and you list of words (call it a database). Question: Does query appear in the database? If not, what word(s) in the database is(are) the most similar? Example: photsnythesis is very close to photosynthesis because one letter is missing and two letters have been swapped. Now write a program that automatically performs this similarity search... 14/ 106
Overview these are the sorts of problems that we will be able to solve after completing this class... they involve practical problems knowledge of discrete mathematics ability to reason and write proofs programming skills exactly the skills one needs to do research! 15/ 106