# WSU Computer Science Challenge Exams

## What is the process of ta king these exams:

1

Fill out the application form.

2

Pay the fee ($25 per credit hour + $10 recording fee) at the cashier’s office.

3

Contact Isabelle Vivier to set up a time: isabellevivier@weber.edu. Most exams have a 2 hour limit.

4

After the exam is taken then the instructor will grade the exam.

If the student passes the exam:

- The Department Chair signs the form and the box under “Credit Awarded” is checked.
- The form is then stamped and then the department administrative specialist will send the form to Records

## Restrictions:

- Students may NOT take the challenge exam if any of the following have occurred:
- The student has previously taken or attempted the course. (This means that there is a record on the transcript including a ‘W.’)
- The student is currently enrolled in the course.

- Students may only get credit for up to four (4) challenge exams.
- Students may only attempt a challenge exam once.
- Students can only take challenge exams when the testing center is open.
- Students must take challenge exams in prerequisite order (for example, you must complete CS 1030 and CS 1400 prior to taking CS 2705 challenge exam).
- Concurrent enrollment students can not be awarded special exam credits.

## Study Guides

- CS 1030
- AND, OR, NOT, NAND, NOR, XOR Gate Logic BIOS
- RAM Types
- CPU
- Motherboard/Bus
- Numbering System Conversions
- Operating Systems
- Kernel
- Modems
- Network Topologies
- URLs
- IP Addresses
- Basic HTML Tags
- Database (Indexes, Primary Keys, Foreign Keys, Rows, Columns, Tables, etc.)
- Data Structure Types
- Hard Disk Organization
- Software Development Life Cycle

- CS 1400
- Pseudocode / Flowcharts
- Compilers vs. Interpreters
- .class vs. .java
- Legal Identifiers in Java
- Java Convention
- Java Mathematical Operators (Addition, Subtraction, Multiplication, Division, Modulus)
- Increment/Decrement Operators
- String Methods
- Concatenation
- == vs. .equals() in Java
- Variable Types
- Loops

- CS 1410
1.Operators

- a. +, -. *, /, %, =, operation with assignment, pre/post increment/decrement, and ?:,
- b. &&, ||, !

2. Flow of control statements:

- a. if, if-else, if-else ladder, switch, default, and break
- b. dangling else
- c. for, while, do-while, break, continue, and test at the top versus test at the bottom
- d. null-statement
- e. block-structure

3. Functions and function arguments and return values

- a. pass by value, pass by reference, and pass by pointer (pass by value where the
- b. default arguments
- c. the address of operator
- d. the deference/indirection operator

4. Arrays and array function arguments

5. Structures: members/fields, the dot operator, and the arrow operator

6. C++ string class: string member functions including string/number conversions, C-strings and c-string functions (strlen, strcat, strcpy, strstr, strchr, strtok)

7. Classes and objects

- a. constructors (general, default, copy, conversion)
- b. destructors
- c. member functions
- d. friend and inline functions
- e. data members
- f. public, private, and protected
- g. dot and arrow operators

8. Overloaded operators

- a. friend vs. member
- b. overloaded inserter and overloaded extractor

9. UML (diagrams and implementation in C++)

10. Class relationships

- a. inheritance, association, composition, aggregation, and dependancy
- b. identifying from UML diagrams; identifying from code
- c. implementation in C++
- d. up and down casting
- e. overloading and overriding functions

11. Polymorphism

12. Exception handling

13. File I/O

14. Dynamic memory (new and delete)

15. Templates

16. File I/O

There are about 65 - 70 questions: multiple choice, short answer, and essay questions (programming).

- CS 2130
## Sets

Intersection, Union, Null Set

A ? B (symmetric difference) = A ? B -- A n B

Addition principal - |A ? B ? C| = |A| + |B| + |C| - |A n B| - |B n C| - |A n C| + |A n B n C|

A = U -- A (complement of A)

Subsets

Sets containing other sets

Set builder notation

Cardinality## Functions and integers

Everywhere defined -- everything in A is used and each element in A goes to only 1 element in B

Onto -- every element in B can be gotten to with the function ie. Range(f) = B

1-to-1 -- each element in B can be gotten to by at most one element in A

Invertible -- 1-to-1 and onto

A function is invertible if its inverse (f-1) is also a function

g ° f -- (g ° f)(a) = g(f(a))

f ° g -- (f ° g)(a) = f(g(a)) Floor -- round down

Ceiling -- round up

LCM = 2max(a,b) * 3max(a,b) * 5max(a,b) * ... {all primes}max(a,b)

GCD = 2min(a,b) * 3min(a,b) * 5min(a,b) * ... {all primes}min(a,b)

Euclid's alogorithm -- d = sa + tb

Base conversion -- alternate using / and %## Sequences

Sequence -- order matters

Finite -- countable, has specific start and end points

Infinite -- has no end point. The book calls it countable, but how do you count infinity?

Countable -- can be arranged in a list, has a start

Uncountable -- anything not countable, an example is all real numbers between 0 and 1

Recursive -- element depends on previous values, may be infinite, but has a specific starting point

Explicit -- element depends only upon itself, has a specific starting point

String -- sequence of letters, set corresponding to a sequence

Regular Expressions -- defining a set of strings## Counting and Probability

Multiplication principle

Permutation -- order matters P(n,r) = n!/(n-r)!

Combination -- order doesn't matter C(n,r) = n!/(r!(n-r)!) Permutation with repeats -- P(n,r) = nr

Combination with repeats -- C(n,r) = rewrite this one as a regular combination using C(n+r-1, r)

Event (E) -- the desired outcome or combination of outcomes

Sample space (S) -- all possible outcomes

Probability -- P = |E|/|S|

Pigeonhole principle## Matrices -- Boolean and Regular

Add, ? AND, ? OR - only exact same sizes

Multiply -- MxN * JxK is possible only if N=J, result is a MxK matrix

Transpose -- flip around the diagonal (first row becomes first column, etc). Is symmetric if A = AT

Identity matrix -- binary matrix where the diagonal is all 1's, all other values are 0, is always square

Inverse -- only computable for a 2x2 matrix (bigger can be done, but not in this class)## Propositions and logical operations

Truth tables for logical operators

Statement -- true or false declaration (not opinion, question, command, changing value, etc.)## Graphs

Matix

in-degree = number of arrows into node, number of 1's in the column

out-degree = number of arrows out of node, number of 1's in the row

**Paths**

Cycle -- begin and end at the same vertex

Connectivity relation showing all paths of all lengths

Rn path of length n

**Relations**

reflexive -- R is reflexive if aRa for all a in A

irreflexive -- R is irreflexive if aRa for all a in A

symmetric -- aRb and bRa

asymmetric -- aRb and bRa (a?b or both 0, diagonal is 0)

antisymmetric -- if aRb and bRa then a=b, else aRb and bRa, or both 0

transitive -- if aRb and bRc then aRc

Digraph representations of relations

Matrix representations of relations

**Graphs**

reflexive -- all nodes need a cycle of length 1

irreflexive -- no node can have a cycle of length 1

symmetric -- all edges go both ways, cycles of length 1 are ok

asymmetric -- no cycle of length 1, all edges are single path

antisymmetric -- all edges between vertices are single path, cycle of length 1 is ok

transitive -- if there is a path of length 2 from a to c, passing through b, then there must also be a path of length 1 between a and c. If no path of length 2 exists, it is still transitive.## Growth of Function

Big-Theta and Big-Oh Notation

## Trees

root -- first or top vertex in the tree, has a height of 0

leaf -- bottom vertex, has 0 children

n-tree -- all vertices have at most n children

complete -- all vertices except leaves have the same number of children

balanced -- height of all leaves differ by at most 1

sub-tree -- any vertex of a tree may be partitioned off (with all children etc) to become a new tree## Grammar

G=(V, S, v0, ->)

G -- grammar

V -- everything, similar to the universe

S -- set of terminal symbols

N -- set of non-terminal symbols -> - the production## Machine

M = (S, I, F) machine or (S, I, F, s0, T) Moore machine

S -- state set

I -- input set

F -- state transition function

T -- terminal state set

s0 -- starting state - CS 2350
Questions randomly selected on the CS 2899 exam, covers topics in XHTML 1.1, CSS, JavaScript, and JQuery.

Here is a sampling of areas to study...

1. Targeting INTERNAL hyperlinks.

2. <a> vs. <link>

3. Ways to create bold text (using elements and/or inline styling).

4. Reasons you would use tables in XHTML.

5. XHTML Rules (closing tags, nested elements)

6. <td> vs. <th>

7. list elements in XHTML

8. internal, relative, absolute and mailto hyperlinks

9. Image sizing and format

10. CSS p,h1 vs. p h1 (with space)

11. Form Action and Form Method

12. XHTML Block Elements

13. CSS p h1 vs. p > h1

14. CSS hierarchy (and override of rules)

15. Commenting in XHMTL

16. JPG vs GIF vs PNG

17. The 16 web safe colors (recognizable by all browsers by name)

18. The Input element (valid types)

19. img - valid attributes

20. table - valid attributes

21. The CSS Box Model

22. CSS Float

23. form - valid elements

24. CSS hiding underlines in hyperlinks

25. CSS ID's vs Class

26. table - valid elements

27. font-size: %, em, x-large, etc.

28. b vs strong, i vs em

29. input type button

30. XHTML inline elements

31. Mandatory elements in XHTML

32. Well-formed XHTML

33. Identify the correct XHTML template

34. Color #00ff00 vs. RGB

35. Table Colspan and Rowspan

36. Table deprecated align and bgcolor attributes

37. Input button vs. Input Submit - differences

38. The <dt> element

39. CSS top, right, bottom, left (the abbreviated ordering is TRBL)

40. Commenting in CSS

41. JS: window.prompt

42. JS: window.alert

43. JS DOM: radio button properties - determining which button is selected

44. JS DOM: text area properties - determining the content of the data entered

45. JS DOM: removing focus from a control

46. JS DOM: event triggered when a new item is selected from a list

47. JS DOM: checkbox properties - determining which items are selected

48. JS DOM: clearing a check from a checkbox object

49. JS: Math object method to return the largest value passed to it

50. JS: Escape characters in JavaScript strings

51. JS: Date Object - creating new date

52. JS: Date Object - getMonth, getDay, GetDate

53. JS: ToFixed()

54. JS: ParseFloat and ParseInt

55. JS: toLowerCase a

56. JS: = vs ==

57. JS: isNAN

58. JS: If else If

59. JS: switch case, break

60. JS: While vs. For loops

61. JS: break and continue

62. JS: concatenation of strings (or numeric)

63. JS: array indexing

64. JS: array join, splice, concat

65. JS: multi-dimensional arrays (general)

66. JS: multi-dimensional arrays and looping

67. JS: declaring variables

68. JS: creating functions

69. JS: function return values

70. JS: function parameter naming

71. JQuery toggle()

72. JQuery changing color

73. JQuery adding/removing classes

74. JQuery referencing info from a hyperlink element

75. JQuery selectors id vs class

76. JQuery selectors with multiple values

77. JQuery jquery-1.x.x.js vs. jquery-1.x.x.min.js

78. JQuery .html()

79. JQuery show hide

80. JQuery document.ready

- CS 2420
- Understand the basic concept being data containers, including exposed methods, templates, specific targeted purposes of them, etc. Know about C++ arrays, how to work with them, how they are managed, and how fast they are in comparison to other collections. How pointers and arrays are two ways of working with the same thing. How to work with pointer arithmetic.
- Explain what an iterator is, and why it is useful.
- Be able to work with linked lists. Know how they work in theory. Know how the code works to add, locate, and delete nodes. Be prepared to write methods for singly linked lists and doubly linked lists.
- Know what a stack is, and common methods to be found for stack objects.
- Know what a queue is, and common methods to be found for a queue.
- Understand Big-O notation. Know what major purposes it is used for. Be able to rank Big-O notations if asked.
- Know how to work with hash tables. How fast can they be? How much memory do they use? What's the differences between an array based and a linked list based hashed table. What's the full process for inserting and retrieving data.
- The basic search algorithms, a sequential search, binary search tree, and hash table searching. Know the Big-O notation of each of these, including average and worst case.
- You should be able to understand how bubble, selection, insertion, quick, merge, and heap sorts work. You should know the average and worst case Big-O notation of each. You should know the Big-O notation of memory usage for these. You should also understand how the bucket/bin sort works. Know what stability means with sorting.
- How to work with binary trees. How to traverse them in an in-order, pre-order, and post-order manner. How to insert and search for items from a binary search tree. How to delete items from a binary tree.
- AVL trees. Why they are useful. How to insert an item into an AVL tree. How AVL tree balance factors work. When an AVL tree will do single and double rotations and what the resulting tree will look like.
- How B Trees work. Why they are useful. What the order of a B Tree means. How nodes are inserted into B Trees. What the resulting tree will look like. What B+ trees are and how they differ from B Trees. Why they are useful.
- Graphs. Various ways to store graphs in a data structure. This includes matrices, adjacency lists, and CSR arrays. How to process data using the Dijkstra's shortest path algorithm. How to traverse a graph using queue/breadth and depth/stack first traversal. What a minimum spanning tree is, and how to use Prim's algorithm to find one.

- CS 2450
- Phases of the SDLC The definition and purpose of UML
- Use Case diagrams and relationships
- functional versus non-functional requirements
- components of or representations of functional, structural, and behavioral modeling
- modeling focus and components of a class diagram
- modeling focus and components of a sequence diagram
- coupling, cohesion and connascence as design criteria for an OOP system
- Things to consider when selecting a physical architecture

View this as a PDF

- CS 2550
## Chapter 1

Know what a table, row, and column are used for in databases Know what a primary key and a foreign key is Know which SQL statements are used for data manipulation, data definition, data control and transaction control Know what each form of Normalization involves. Know the keys of when data is in a given normalized form.

## Chapter 2

Know the types of commonly used data types Know how to write a SQL SELECT statement Know the purpose of the DISTINCT and UNIQUE statements

## Chapter 3

Know the different SQL Comparison Operators Know how to write an SQL statement checking for equality Know how to write and SQL statement using the greater than and less than operators Know how to use the BETWEEN operator Know how to use the IN operator Know how to use the LIKE operator Know how to use the NOT operator Know how to use the NULL and NOT NULL operators Know how to use the ORDER BY operator Know how to create column aliases Know how to add comments to your SQL statements

## Chapter 4

Know how to use the LOWER, UPPER, INITCAP functions## Chapter 5

Know how to use the TO_CHAR function to format dates Know how to use the TO_DATE function Know how to use the LPAD and RPAD functions Know how to use the DUAL table Know how to use the SUBSTR function Know how to use the LENGTH function Know how to use arithmetic operators Know how to use the NVL function Know how to use the CASE function

## Chapter 6

Know how to use the COUNT function Know how to use the SUM function Know how to use the AVG function Know how to use the GROUP BY clause Know how to use the HAVING clause

## Chapter 7

Know how to write a table alias Know how to write an equijoin Know what a Cartesian product is Know how to write a three or more table join Know how to write a JOIN statement.

## Chapter 8

Know syntax for writing subqueries Know how to write subqueries Know how to write a subquery using the Inline View Know how to write a subquery where subquery is in the FROM clause

## Chapter 9

Know how to write a UNION statement Know how to write a MINUS operation statement

## Chapter 10

Know how to write an Outer Join statement## Chapter 11

Know how to write an INSERT, UPDATE and DELETE statement Know how to write a COMMIT statement Know how to write a ROLLBACK statement

- CS 2705
- Know all 7 layers of the OSI model. Know what the responsibilities and functions of OSI layer
- Know what the types of addresses are used in the OSI layers
- Know how to convert binary digits to decimal and vice versa
- Know classful addressing of IP addresses
- Know how to determine the network address, first and last host addresses, and the broadcast
- address when given an IP address in the range and the subnet mask length
- Know networking devices and their functions (hub, router, switch and bridge)
- Know the components of a data communications system
- Know the transmission modes associated with networking
- Know the various network topologies
- Know the key elements of a protocol
- Know what multiplexing is
- Know what addresses are used in Network Address Translation
- Know tools used to troubleshoot networking issues
- Know the types of entity authentication
- Know what IPSec is and the types of headers used
- Know the types of cryptographic algorithms
- Know the types of firewalls

View this as a PDF

- CS 2810
The 2810 exam will cover numeric conversions which include both 16-bit signed integers and 32-bit floating point numbers (IEEE-754 Single Precision). To help you focus your studies, This is a list of major ideas that may or may not be on the exam. They are in no particular order.

- The primary components of a computer Von Neumann Architecture
- Positional Numbering SystemsConversions between Numbering Systems
- Signed Integer (Two’s Complement)
- IEEE754 Floating Point
- Character Representation
- Error Detection and Correction
- Digital Circuits
- Busses
- I/O
- Memory Addressing
- Types & Speeds of memory
- Cache Memory
- Cache Management
- Magnetic Disk Technology
- RAID
- Interrupt Vector Table Decoding
- Fat Systems decoding (root and boot sector) -- Decoding key provided.
- MP3 Decoding -- Decoding key provided.
- RISC/CISC
- Registers and busses
- The Intel 8088 Register Set & ISA
- Instruction Processing
- Assembler Programming
- Assembler Instructions