300

CS 301 Object-oriented Design

Continue to build a computer science foundation. Study of intermediate programming language constructs: event handling, graphical user interfaces, threads, and networking. Introduction to the software engineering process and programming-in-the-large.

3

Prerequisites

CS 203

Corequisites

CS 371

CS 303 Data Structures I

Continues the study of computer science and software engineering methodologies. Analysis of common data structures, time and space efficiency, stacks, queues, linked lists, basic trees, recursion, searching, and sorting algorithms. Study of program language features required to support dynamic memory arrays.

3

Prerequisites

CS 203

CS 304 Data Structures II

Advanced data structures, including advanced trees, graphs, hash tables, heaps. Study of the program language features required to support templates, inheritance, and exception handling.

3

Prerequisites

CS 303

CS 352 Programming Languages

Comparative analysis of several modern high level languages in terms of data types and control structures, with emphasis on run-time behavior of programs.

3

Prerequisites

CS 304

CS 371 Object-oriented Design Laboratory

Weekly three-hour laboratory to support CS 301.

1

Corequisites

CS 301

CS 373 Data Structures Laboratory

Weekly 3-hour laboratory to support CS 303. Use of software tools and data structures to support software development (UNIX operating system).

1

Prerequisites

CS 303 or corequisite.

Corequisites

CS 303 or prerequisite.

CS 374 Computing Systems Laboratory

Weekly 3-hour laboratory. Assembly language and systems programming.

1

Prerequisites

CS 303

CS 382 Advanced Programming Techniques

The course focuses on developing and practicing techniques for rapid programming in a small team environment: approaches to problem assessment, selection of data structures and algorithms, implementation, and testing. Students will hone their skills by working in small teams to produce correct solutions to a wide variety of computing problems under time constraints.

1

Prerequisites

CS 303 or corequisite.

Corequisites

CS 303 or prerequisite.