Computer Science Courses

CS 100 Computer Concepts and Applications (4)
Topics include basic concepts of computer hardware and software; the development of the computer, networks, and the Internet; programming logic; Web page development with HTML/CSS; application software such as word processing, spreadsheet, database, and presentation software; and social concerns associated with the widespread use of computers. Prerequisite: placement level H, A, B, or C. Students with credit for CS 112 or higher by consent only. Offered every spring..

CS 110 Introduction to Programming with Visual BASIC (4)
An introductory programming course that uses Visual BASIC programming language. Topics include the program development process, structured programming, data types, assignment, selection, looping, subroutines, one-dimensional arrays, files, and random numbers. Prerequisite: placement level H, A, or B, or MATH 104 with a grade of C- or higher, or consent. Students with credit for CS 112 or higher by consent only. Offered every spring.

CS 112 Computer Programming I (4)
Java and C++ languages are introduced. Topics include the program development process, structured programming, data types, variables and expressions, input/output, assignment, selection, looping, functions, and arrays. Prerequisite: placement level H, A, or B, or MATH 104 with a grade of B or higher, or consent. CS 110 or a high school programming class is strongly recommended. Offered every fall.

CS 201 Intro to 3D Modeling/Printing (2)
Introduction to 3D modeling and printing. Several software packages are used to create and manipulate 3D models. Topics also include a survey of current applications of 3D printing, the mechanics of basic 3D printing technology, and factors involved in achieving a successful 3D print. Prerequisite: sophomore status or higher, and placement level B or higher or MATH 104 with a grade of C or higher. Offered on demand.

CS 205 Foundations of Logic and Proof (4)
Introduction to abstract mathematical thinking and logical reasoning skills needed in upper-level Math/CS courses. Topics include logic, argument, proofs, induction, sets, and abstract functions and relations. Emphasizes mathematical writing. Identical to MATH 205. to abstract mathematical thinking and logical reasoning skills needed in upper-level Math/CS courses. Topics include logic, argument, proofs, induction, sets, and abstract functions and relations. Emphasizes mathematical writing. Identical to MATH 205. Prerequisite: MATH 217 with a grade of C- or higher, or CS 212 with a grade of C or higher, or consent. Recommended spring of sophomore year. Offered every spring.

CS 212 Computer Programming II (4)
A continuation of CS 112. Topics include advanced programming design in user-defined data types, arrays, structures, pointers, array-based lists, binary searching, recursion, and introduction to object-oriented programming techniques. Prerequisite: CS 112 with a grade of C or higher or consent. Offered every spring.

CS 310 Introduction to Computer Systems (4)
Introduces the basic concepts of computer organization and assembly language. Specific topics include CPU and memory organization, machine language, addressing techniques, macros, program segmentation and linkage, and assembler construction. Satisfies the oral competency requirement for computer science majors. Prerequisite: CS 212 with a grade of C or higher or consent. Offered fall of odd-numbered years.

CS 311 Data Structures (4)
An introduction to commonly used computer data structuring techniques. Topics include abstract data types, classes, queues, stacks, linked lists, algorithm analysis, sorting, searching, trees, and graphs. Prerequisite: CS 212 with a grade of C or higher or consent. Offered fall of even-numbered years.

CS 331 Systems Analysis and Design (4)
Introduces the concepts, principles, and stages of computer-based information systems analysis and design. Topics include the system development environment, project management, system requirements definition, interface and structure design, and system implementation and administration. Prerequisite: CS 212 with a grade of C or higher or consent. Offered on demand.

CS 350 Numerical Methods (4)
Examines efficient methods used in solving numerical problems with the aid of a computer. Topics include floating point arithmetic, interpolation and approximation, integration, roots of non-linear equations, ordinary differential equations, and systems of linear equations. Identical to MATH 350. Prerequisite: MATH 172 (grade of C- or higher) and CS 112 (grade of C or higher), or consent. Offered spring of even-numbered years.

CS 380 Programming Languages (4)
Introduces students to the historical development of programming languages and to the decisions involved in the design and implementation of such programming language features as elementary, structured, and user-defined data types, subprograms, sequence control, data control, and storage management. Selected features of several existing languages are examined in the context of these issues. Prerequisite: CS 212 with a grade of C or higher or consent. Offered on demand.

CS 389 Advanced Topics in Computer Science (4)
Explores an area of computer science which is not otherwise included in the curriculum. Students may repeat the course for credit as the topic varies. Prerequisite: CS 212 with a grade of C or higher and consent. Offered spring of even-numbered years.

CS 430 Database Management Systems Design (4)
Emphasizes the concepts and structures necessary to design and implement database systems using a relational database management system. Various database management system architectures illustrating hierarchical, network, and relational models are discussed. Physical data storage techniques, file security, data integrity, and data normalization are also explored. Prerequisite: CS 212 with a grade of C or higher or consent. Offered on demand.

CS 440 Operating Systems (4)
Introduces the principles of operating systems emphasizing intrasystem communication. Examines concepts and techniques necessary for understanding and designing these systems. Topics include I/O and interrupt structure, concurrent processes, process scheduling, and memory management and protection. Prerequisite: CS 212 with a grade of C or higher or consent. CS 310 is recommended. Offered on demand.

CS 470 Internship in Computer Science (2 or 4)
An intensive computer science project conducted in a professional setting. Pass/Fail grading. Prerequisite: junior/senior status, cumulative GPA of at least 2.5, and consent. Offered on demand.

CS 489 Research in Computer Science (2-4)
Offers students the opportunity to conduct original scientific research in an area of interest. Students work closely with one or more members of the natural science faculty to develop and conduct a research project, then present their findings orally during the semester’s undergraduate research symposium and as a formal research paper. Students are encouraged to present their findings at a conference. Prerequisites: junior/senior status and a major in Computer Science, prior approval by the project advisor, and consent of the instructor. Students may enroll for 2 or 4 hours in a given semester. May be repeated for a maximum total of 8 semester hours. Identical to BIO 489, CHEM 489, EES 489, and MATH 489. Offered every semester and most January Terms (2 semester hours only).