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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.