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 C, B, A, or H, CS 112 or higher by consent only. Offered each 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 a grade of C-or higher in MATH 104, or consent. Students with credit for CS 112 or higher by consent only. Offered on demand.

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 agrade of B or higher in MATH 104, or consent. CS 110 or a high school programming class is strongly recommended. Offered each 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. Prerequisites: Sophomore status or higher. Placement level B or higher, or Math 104 (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. Prerequisite: MATH 172 or CS 212 with a grade of C or higher or consent. Recommended spring of sophomore year. Offered each 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 (grade of C or higher) or consent. Offered each 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 (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, tree, and graph. Prerequisites: CS 212 (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 (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. Prerequisites: MATH 172 (grade of C-or higher) and CS 112 (grade of C or higher), or consent. Identical to MATH 350. 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: junior/senior status and CS 212 (grade of C or higher), or consent. Offered on demand.

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 (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 (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 only. Prerequisites: junior/senior status, cumulative GPA of at least 2.5 and consent. Offered on demand.

CS 480 Advanced Topics in Computer Science (4)
An in-depth study of an area of advanced computer science. Specific content varies according to the interests of students and the instructor. May be repeated for credit as the topic varies. Prerequisites: CS 212 (grade of C or higher) and consent. Offered spring of even-numbered years.

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 each semester and most January Terms (2 semester hours only).