Computer Science and Engineering

Computer Science Fundamentals Course (CS5160)

On this page:

Overview

Programming skills rusty or nonexistent? This course is for you. The demand for computer scientists and computer engineers is strong and growing.  Students without strong programming skills have a hard time taking advantage of these opportunities.

Success in this graduate program requires a solid background in core computer science skills including:
  • computer programming
  • computer organization
  • data structures and algorithms
  • programming languages
  • operating systems
  • problem solving and implementation using computer programming
To ensure your success we have a new course available for you. 

Computer Science Fundamentals is a 6 credit hour course offered by the department. This is a project-intensive course that covers computer programming and fundamental computer science.

If you do not have an undergraduate degree in computer science you must complete this course. Computer Science Fundamentals starts you on your journey towards your formal Master's program. You can waive it if you pass a proficiency exam offered the week before classes start. Students will have the choice of using either C, C++, or Java to solve the proficiency exam questions.

Students who are successful in this course go on to succeed in their Master's degree program. They have cutting edge knowledge in computer science coupled with excellent programming skills. This provides them with excellent job opportunities in the future.

Sample Questions

Print Triangle Pattern (C++ Version)

Write a function that prints a triangle shaped pattern using space and asterisk characters. Your function should accept one parameter that determines the number of rows of asterisks to display. This value will always be a positive integer greater than zero (e.g. 1, 2, 3, …).

The function prototype is: void printPattern( int numRows );

Sample input-output

input:

printPattern( 3 );

output:

  *

 ***

*****

input:

printPattern( 2 );

output:

 *

***

input:

printPattern( 1 );

output:

*

Note that each row begins with zero or more space characters followed by one or more asterisk characters and is terminated by a single return character (‘\n’). There should be no trailing space characters on any line and no blank lines in the output.


Print every Nth item in an array (C Version)

Write a function to print every Nth value in an array starting with the first value. Your function should accept two parameters, an array of integer values, an integer representing the size of the array and an integer value of N.

The function prototype is: void printNth( int* array, int arraySize, int N );

Sample input-output

  1.  If the printNth function is passed an array containing 3 4 7 2 1 4 8 4 9 0 1 6 and a value of N equals 1, the function call printNth(array, 12, 1); should display: 3 4 7 2 1 4 8 4 9 0 1 6
  2.  If the printNth function is passed an array containing 3 4 7 2 1 4 8 4 9 0 1 6 and a value of N equals 2, the function call printNth(array, 12, 2); should display: 3 7 1 8 9 1
  3.  If the printNth function is passed an array containing 3 4 7 2 1 4 8 4 9 0 1 6 and a value of N equal to 5, the function call printNth(array, 12, 5); should display: 3 4 1
  4. If the value of N passed to printNth function is greater than the number of elements in the array or less than 1, the function should print the words "out of bounds". The function call printNth( array, 12, -1); should display: out of bounds

Append linked lists (Java Version)

Write a method to append the content of a singly-linked list to the end of another singly-linked list. Your method should accept two parameters that are references to the beginning of two independent, non-empty (i.e. each list contains at least one node) lists, firstList and secondList. Your method should locate the end of the first list and append (attach) the second list to the end of the first list. Do not make a copy of the nodes on the second list, simply attach the second list to the end of the first list. Finally your method will return a reference to the first node of the combined list.

The method signature is: public static listNode appendList( listNode firstList, listNode secondList ) ;

Assume listNode is defined as follows:

class listNode

{

    public int dataValue;

    public listNode next;

};

Sample input-output

  1. If the appendList method receives a first list containing nodes with the values: 1 2 3 and a second list containing nodes with the values: 4 5 6, the appendList method should return a pointer a combined list containing (1 2 3 4 5 6).
  2. If the appendList method receives a first list containing (1) and the second list contains (2 3), the appendList method should return a pointer a combined list containing (1 2 3).

Data Structures

Organizing and accessing data are essential for effective programming. Every graduate student in computer science or computer engineering should know how to design and use data structures to create elegant, efficient, and effective code. You should also be able to analyze data structures and algorithms for time and space complexity and how to select, implement, and test the best data structures for complex programming tasks.

  1. Suppose the following values are inserted, in the given order, into an empty AVL tree:  1, 12, 31, 35, 40.  What value is the left child of 35?  (You may answer “NULL” if 35 has no right child.)
  2. Suppose the following words were inserted into a compressed alphabet trie, using the symbol $ to represent the end of a word:  cat, cats, bat, bats, battery.  How many nodes would the resulting tree contain?

  3. How many nodes of this K-D tree are visited (e.g. searched or explored) in performing the range query “find all points within 15 units of (25, 50)”? 

 

 


Take the Next Step

Finding the right college means finding the right fit. See all that the College of Engineering and Computer Science has to offer by visiting campus.