CIS 200 Test Review 1

advertisement
CIS 200 Final Review
New Material
Sorting
Selection Sort
 Repeated scan of list for smallest/largest value
 Each swap with item in correct spot
 Big O, N-1 Passes
 Probes – O(N^2)
 Data Movements – O(N)
Insertion Sort
 Like cards being one at a time
 Array is split into 2 logical parts, sorted and unsorted
 On each pass, next item from unsorted walks (via swaps) to
correct position in sorted portion
 Big O, N-1 passes
Best, Worst, Ave. cases
 Best – O(N)
 Worst – O(N^2), T(N) =1/2N^2 – 1/2N
 Avg – O(N^2), T(N) = 1/4N^2…
Merge Sort
Recursive
1. Divide list into 2 parts
2. Sort each part using recursion
3. Combine the 2 (now sorted) parts into one sorted list
Big O
 Best, Avg, Worst – O(N log2 N)
Quick Sort
 Partition is the key
Two approaches
 Dr. Wright’s
 Text, from E18.10, p. 745
Big O
 Worst case is when pivot is extreme value (min or max)
 Already sorted list!
 O(N^2)
 Best/Avg
 O(N log2 N)
 Really is twice as fast as merge sort on average
Data Structures
Linked List
Doubly Linked List
Doubly Linked List
Doubly Linked List
Queue
Queue
Stack
Stack
Binary Search Tree
 How to add items
 Show a well-balanced BST – Add in this order: 9, 7, 12, 15, 2
 Show a poorly balanced BST – Add in this order: 2, 7, 9, 12, 15
 How to search
 Show Inorder traversal in BST
Traversals
 Preorder
 Inorder
 Postorder
http://www.cs.cmu.edu/~adamchik/15-121/lectures/Trees/trees.html
Generics
 Generic methods
 Generic classes
.NET Collections
 Esp. Hash Table
 Collisions
 Bucket – Linked List
 Load Factor
Test 01 Material
Memory Management
 C, C++ - Have to “allocate” memory
 Forgetting to “free” results in memory leaks
 “Garbage Collector” Rounds up and “reclaims” memory
 Variables that drop out of “scope” will be collected
 Temporary values inside methods reclaimed on method exit
 Generally uncontrolled by the developer
LINQ
Language Integrated Query
 Perform Queries Against Objects, Data
LINQ Keywords
 “from” - Data Source
 “where” – Filters the source elements with Boolean
expressions
 “select” – Choosing the data type to work with
 “group” – Groups results according to a desired key value
 “orderby” – Sorts the query results in ascending or
descending order based on a comparer
 “let” – Introduce a variable for query use
 Select new creates anonymous class as result set
Namespaces, Scope
Classes, often with common functionality, bundled together
 System.Console
 System.Collections.Generic
 System.Linq
Scope
 “private” – Can only be accessed by the class, object itself
 “protected” – Can only be accessed by the class, object, or any
child classes, objects
 “public” – Available access for all
Constructors
C#, .NET compiler provides a ‘free’ constructor - Default
 No parameters
 When a new constructor is created, ‘free’ constructor goes
away
 Constructors can be “connected” with “this”
Interfaces
 Object used for creating “interfaces”, common code
 Classes “implement” an interface
 All methods, properties are “abstract” in an interface
 Objects that implement interface can be grouped
 List<IPayable>
 IPayable, IDisposable, etc
Inheritance
 Classes with child or children classes
 Can be used to “share” common code properties
 Allows for “unique” objects, while reducing code
 Object -> Person -> Student
 Object -> Person -> Employee
Polymorphism
 Override
 Virtual
 abstract
Inheritance - Keywords
 “abstract” – Methods marked MUST be overridden
 Class declared with abstract prevents creation with “new”
 “virtual” – Methods marked CAN be overridden
 Controls “how” other classes inherit information from the
class
 Private, protected, public – Used to control what is
inheritance
Casting
 Convert one type to another
 Integer to String
 Decimal to Integer
 Byte to Integer
 C#, .NET will know how to “box” and “unbox” types
 Decimal -> Object -> Integer
 Remember back to the Person – Student relationship
 We can “cast” Person to Student both ways
Will cast to student just
fine
Will compile,
But will throw an
EXCEPTION at runtime
Exceptions and Exception Handling
 Exceptions are…
 “Exceptional” events
 Unexpected events, errors during runtime
 Unhandled exceptions? Stack trace and application death
 Handled with try/catch/finally blocks
 Try block “attempts” to run the code in question
 Catch block handles the exception(s) that may occur
 Finally block, optional, always executes
Vs. multiple catches
 What order must the catch clauses appear?
Test 02 Material
Windows Forms, GUI
Programming
 Elements






Textboxes
Tab Groups
Checkboxes
Fields
Menus
Combobox
 Event Handlers
 Visual Studio Designer
Event Handlers
 “Events” triggered by end user




Button Press
Key Press
Field Entry
…other GUI modifications or events
Role of Delegates in Event Handling
 Sender?
 E?
 Need examples
Files and Streams
 Files
 Objects on Disks
 Streams
 Data structure that exposes




Read
Write
Synchronous
Asynchronous
Write to File
Read from File
Recursion
…a solution strategy that involves a simpler version of the
same problem. The problem becomes simplified with each call
until we reach a stopping point. Resolution level by level.
Useful for
 Complex equations (Fibonacci number)
 Towers of Hanoi
 Binary Searching
 Entry point
 Stopping point
 Deceptively simple
Define a Recursion Method
What is my base case?
 What is the solution to my base case?
What is my intermediate case?
 What is the solution to the intermediate case?
Recursion Example
Recursion Example
Big O
 What’s better?
 T(N) = 2 * N * N
 … 2(N^2)
 T(N) = 1 * N * N + 1 * N
 … N^2 + N
Sample Questions from
Blackboard Wiki
What is the differences between
Panel and GroupBox?
Panel
 Scrollable
 Does not have a caption
Groupbox
 Not scrollable
 Has a caption
What is the differences between
CheckBox and RadioButton?
CheckBox
 Offer a “binary” choice
 Turn options on / off
 True / False
 Multiple together
RadioButton
 Two or more mutually
EXCLUSIVE items
 … XOR
 Multiple Choice Question
RadioButton controls become a set
of mutually exclusive choices.
How?
 A group of RadioButtons
offer only a single choice to
a user
 Selecting one will deselect
another
 Logical XOR
 By container the radio
buttons are placed in
ListBox has four modes of
operation, what are they and
describe them.
None
 No items can be selected
One
 Only one item can be
selected
MultiSimple
 Multiple items can be
selected by toggling
MultiExtended
 Multiple items can be
selected AND the user can
use SHIFT, CTRL, and
ARROw keys to make
selections
ComboBox has three modes of
operation, name and describe each.
Simple
 List is always visible, text portion
editable
 User can enter a new value
DropDown
 List is displayed by clicking down
arrow and text portion is editable
 User can enter a new value
DropDownList
 List is displayed by clicking down
arrow and text is not editable
 Only values in the list can be
selected
How does the use of object
serialization compare to simply writing
our data to a text file?
Raw Write to Text File
 List of “strings”
 Will require manual “reentry” later
 Some method, or handler to
convert text file to .NET
object
Object Serialization
 Takes state of object,
serializes for storage
 Reading serialization
produces native .NET object
The hierarchy of data includes
what, and in what order?
 (Smallest)
 Bits
 Bytes
 Fields
 Records
 Files
 (Largest)
Describe the hierarchy of data
elements
 Bits
 0 or 1
 Bytes
 8 bits together
 Fields
 Name, Phone number, Data
Dimension
 Conveys meaning
 Records
 Group of related fields
 Files
 Group of related fields or
other data
How can REACH
further help you
today?
 Ask Questions Now!
 Need to see an Example?
 Need to see a concept again?
 Need additional help?
 Visit us at:
 iTech Zone
 CRC (Ekstrom Library)
 Wednesday & Thursday (12 / 5 - 12 / 6)
 9:00AM – 5:00PM
 Friday (12 / 7)
 9:00AM – 4:00PM
Download