Required Courses

Divider Graphic

CSIS—110. Introduction to Computer Science

3 credits

An introduction to Computer Science with an emphasis on problem solving, algorithm development, and design and testing of solutions using a programming language. In particular, the course will emphasize techniques for modular design and testing of programs, including techniques for reducing a large problem to smaller one. Other topics include general computer organization, information representation, efficiency of solutions, and a brief introduction to declarative programming techniques. No prerequisites. Lab fee. (ATTR: ARTS, CAQ)

CSIS—120. Introduction to Programming

3 credits

An introduction to the procedural design paradigm with an emphasis on problem solving, algorithm development, and implementation of algorithms in computer programs in a procedural language, such as C or C++. Other topics will include hardware organization, data representation, system software, programming style, program testing and analysis of algorithms. Prerequisite: CSIS—110. Lab fee. (ATTR:ARTS, CAQ)

CSIS—210. Data Structures

3 credits

This course continues the study of algorithm design and implementation with an emphasis on the use and implementation of data structures such as records, stacks, queues, linked lists, trees and graphs. Students will continue development of programming skills using modular and structured programming techniques in a programming language. Prerequisite: CSIS—120. Lab fee. (ATTR:ARTS)

CSIS—220. Assembly Language and Computer Architecture

4 credits

An introduction to assembly language programming using a specific assembly language (for example,VAX, Intel, or MIPS assembly language). Addressing techniques, internal computer components, machine language, subroutines, and parameter passing will be discussed.The course also covers topics in computer architecture including memory systems organization, interfacing and communication, functional organization, and multiprocessing architectures. Prerequisite: CSIS—120. Lab fee. (ATTR:ARTS, ISCE)

CSIS—225. Object-Oriented Design and Programming

3 credits

This course continues previous work in using an object-oriented language in problem solving, and will consist of two parallel strands: the development of students’ expertise in advanced features of the language, and the introduction of object-oriented design methodologies.The two strands will be developed in the context of a large-scale semester project implemented by teams of from three to six students. Prerequisite: CSIS—210. Lab fee. (ATTR: ARTS, ISCE)

CSIS—385. Analysis of Algorithms

3 credits

This course continues previous work in the design and analysis of algorithms. Data structures considered may include, for example, binary trees, AVL trees, B-trees, hash tables, and multi-dimensional trees. Algorithms for searching, inserting into, and deleting from these structures will be discussed. A variety of sorting algorithms (possibly including radix sort, heapsort, mergesort and quicksort) will be studied. Algorithms for other problems such as k-selection, minimum cost spanning trees, connectivity, and shortest paths will be analyzed. NP-complete problems will be introduced. Prerequisites: CSIS—210, MATH—250. (ATTR:ARTS)