Academic Catalog

Computer Science (CS)

CS 1400    Programming Fundamentals  
Typically Offered: Fall, Spring  
Credits: 3  
Lecture hours: 3  
This course introduces the discipline of computing and emphasizes problem-solving and programming. Considerable time is devoted to learning how to solve problems using a current programming language. Basic principles of program design and implementation are introduced.
Prerequisites: MATH 1010 or MATH 1030 (may be taken concurrently) or MATH 1040 (may be taken concurrently) or MATH 1050 (may be taken concurrently) or MATH 1060 (may be taken concurrently) or MATH 1080 (may be taken concurrently) or MATH 1100 (may be taken concurrently) or MATH 1210 (may be taken concurrently) or MATH 2040 (may be taken concurrently) or ACT Math Score with a score of 21 or ALEKS PPL Math Placement with a score of 30  
Corequisites: CS 1405  
CS 1405    Programming Fundamentals Lab  
Typically Offered: Fall, Spring  
Credits: 1  
Lab hours: 2  
This laboratory provides the hands-on experience necessary to begin to develop correct programming practices. It introduces the student to an integrated development environment. It provides the opportunity to apply software fundamentals in an appropriate programming language.
Prerequisites: MATH 1010 or MATH 1050 (may be taken concurrently) or MATH 1052 (may be taken concurrently) or MATH 1030 (may be taken concurrently) or MATH 1040 (may be taken concurrently) or MATH 1060 (may be taken concurrently) or MATH 1080 (may be taken concurrently) or MATH 1100 (may be taken concurrently) or MATH 1210 (may be taken concurrently) or MATH 2040 (may be taken concurrently) or ACT Math Score with a score of 21 or ALEKS PPL Math Placement with a score of 30  
Corequisites: CS 1400  
CS 1410    Object-Oriented Programming  
Typically Offered: Fall, Spring  
Credits: 3  
Lecture hours: 3  
This course continues the development of the discipline of computing. It introduces the concepts of object-oriented programming. Basic data structures, recursion, and fundamental computing algorithms are introduced.
Prerequisites: (CS 1400 or ENGR 1400) and (MATH 1050 (may be taken concurrently) or MATH 1060 (may be taken concurrently) or MATH 1080 (may be taken concurrently) or MATH 1210 (may be taken concurrently) or MATH 1220 (may be taken concurrently))  
Corequisites: CS 1415  
CS 1415    Object-Oriented Program Lab  
Typically Offered: Fall, Spring  
Credits: 1  
Lab hours: 2  
This laboratory provides continued experience to develop in depth correct programming practices. It provides the opportunity to apply object-oriented programming concepts and data structures.
Prerequisites: CS 1405 or ENGR 1405  
Corequisites: CS 1410  
CS 1420    Fundamental and Object-oriented Programming  
Typically Offered: Fall, Spring  
Credits: 4  
Lecture hours: 4  
This course considers the discipline of computing through object-oriented programming. It emphasizes problem-solving and programming. Basic principles of program design and implementation, basic data structures, recursion, and fundamental computing algorithms are introduced. It covers in a single semester the material of both CS 1400 and CS 1410 and is designed for students with prior programming experience.
Prerequisites: MATH 1050 (may be taken concurrently) or MATH 1100 (may be taken concurrently) or MATH 1210 (may be taken concurrently) or MATH 2040 (may be taken concurrently) or MATH 1060 (may be taken concurrently) or MATH 1080 (may be taken concurrently)  
Corequisites: CS 1425  
CS 1425    Fundamental and Object-oriented Programming Lab  
Typically Offered: Fall, Spring  
Credits: 1  
Lab hours: 2  
This laboratory provides the hands-on experience necessary to develop correct programming practices. It introduces the student to an integrated development environment and source code version control. It provides the opportunity to apply software fundamentals and object-oriented programming concepts and data structures in an appropriate programming language.
Corequisites: CS 1420  
CS 1430    User Experience Design  
Typically Offered: Fall, Spring  
Credits: 1  
Lecture hours: 1  
This course explores the requirements, analysis, design and evaluation of the User Interface in the context of the Software Engineering process. Usability is one of the key factors determining whether a software project succeeds or fails. Specific methods and design problems will be illustrated with real-world examples in information technology, the internet, communications, etc.
CS 1520    Introduction to Databases  
Credits: 3  
Lecture hours: 3  
This course is designed for those with interests in business and technology and will teach the application of database skills in business contexts. Students will learn the basics of the SQL language and how to put data into and out of a database. (Students with database, Excel or Access experience, may take this course at the same time as BUS 2010, otherwise it might be best to take BUS 2010 first.)
CS 1810    Introduction to Web Development  
Typically Offered: Fall, Spring  
Credits: 3  
Lecture hours: 3  
This course covers the concepts and practice necessary for creating internet content. The course provides a technical overview of the Internet environment and the structure of the world wide web. The technical segment will focus on the design and implementation of an effective web site at the introductory level.
Prerequisites: CS 1410 (may be taken concurrently) or CS 1420 (may be taken concurrently)  
CS 2420    Data Structures and Algorithms  
Typically Offered: Fall  
Credits: 3  
Lecture hours: 3  
This course covers data structures and algorithms in some depth. Topics include data structures, recursion, problem solving strategies, and complexity analysis. Sorting and searching algorithms are covered in detail.
Prerequisites: CS 1410 or ENGR 1410 or CS 1420  
CS 2450    Intro to Software Engineering  
Typically Offered: Fall, Spring  
Credits: 3  
Lecture hours: 3  
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. This course teaches: how to specify and manage requirements through the use of user stories and use cases; the development of software iteratively and incrementally; unit testing of software; project planning; documentation of work products using Unified Modeling Language (UML) to construct class or sequence diagrams; risk management through the development of a risk list and mitigation strategies; and how to work as a member of a software development team. Students will complete a team-based project that provides the opportunity to practice engineering knowledge, skills, and practices.
Prerequisites: CS 2420 (may be taken concurrently)  
CS 2700    Digital Circuits  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
This course is an introduction to digital systems, logic gates, combinational logic circuits, and sequential logic circuits. It includes minimization techniques and implementation with encoders, decoders, multiplexers, and programmable logic devices. It considers Mealy and Moore models of state machines, state minimization, and state assignment. It also introduces a hardware description language. This course is cross listed as ENGR 2700.
Prerequisites: MATH 1050 (may be taken concurrently) or MATH 1080 (may be taken concurrently) or MATH 1210 (may be taken concurrently) or MATH 1052 (may be taken concurrently) or MATH 1060 (may be taken concurrently)  
CS 2810    Computer Organization and Architecture  
Typically Offered: Fall, Spring  
Credits: 3  
Lecture hours: 3  
This course examines the organization and architecture of computer systems. Topics include an instruction set architecture, assembly language programming, basics of logic design, pipelining, and memory hierarchy.
Prerequisites: CS 2420 (may be taken concurrently)  
CS 2860    Operating Systems  
Typically Offered: Spring  
Credits: 3  
Lecture hours: 3  
This course will introduce students to the various components that comprise a modern operating system. Topics include OS virtualization of memory, virtualization of processes, concurrency inside processes and data persistence. Case studies include Linux and Windows.
Prerequisites: CS 2810