Department of Computer Science
The Department of Computer Science at Fort Hays State University offers an online and on-campus Bachelor of Science degree and an online Master of Science degree in Computer Science. Work with our experienced faculty to acquire the programming knowledge and credentials to become an innovator and collaborator for your future employer.
Computer Science is an area of study that involves programming, human-computer interaction, and information security. Graduates from Fort Hays State University are prepared to enter the workforce as capable programmers and problem solvers, and they possess the knowledge and skills necessary to advance steadily in their careers. Earning a degree in computer science will place you in high demand at a variety of federal agencies and private software and technology companies.
Survey of selected topics in Computer Science such as the history of computing, number systems, data representation, combinatorial circuits, computer architecture and organization, algorithms, programming paradigms and languages, artificial intelligence, computer graphics, the roles of operating systems and networks, social, legal, and ethical issues in computing.
An introduction to computer programming in a high-level programming language. Topics include data types, sequential and indexed collections, the design, definition, and application of functions, conditional expressions, iteration and recursion.
Assembly language programming and processor architecture. Includes low-level programming techniques, memory and registers, the run-time stack.
Raster graphics algorithms, transformations, orthographic and perspective projection, hidden surface elimination, surface shading, the graphics pipeline, color models. Application development utilizing a graphics API.
Software engineering concepts, terminology, and the disciplined development of software systems, including topics such as requirements analysis, design methodologies, testing strategies, management, and quality assurance. In a semesterlong project, students develop, test and document a software system.
This course will take a deep dive into several advanced concepts of programming and explore larger-scale application development using the language. Students will learn system programming, classes and objects, Persistence and Databases, Advanced Data Handling, GUI programming, and covering some of the fundamental topics in more detail and adding new ones. At the end of this course, students will have the necessary tools to start digging into other areas of specialization. The student is expected to have a sound background in programming.
This course will take a deep dive into several advanced concepts of programming and explore larger-scale application development using the language. Students will learn system programming, classes and objects, Persistence and Databases, Advanced Data Handling, GUI programming, and covering some of the fundamental topics in more detail and adding new ones. At the end of this course, students will have the necessary tools to start digging into other areas of specialization. The student is expected to have a sound background in programming.
This course presents the fundamentals of scientific research in the area of Computer Science. It covers a collection of basic concepts and terminologies in research methods with a goal of producing well-written manuscripts for publication in peer-reviewed journals. Special emphasis is placed on problems typically encountered by young researchers as well as possible solutions to those problems.
This course presents the fundamentals of scientific research in the area of Computer Science. It covers a collection of basic concepts and terminologies in research methods with a goal of producing well-written manuscripts for publication in peer-reviewed journals. Special emphasis is placed on problems typically encountered by young researchers as well as possible solutions to those problems.
Principles of modern operating systems, including embedded operating system, virtual machine, cloud and IoT operating systems, networking protocols and distributed operating systems.
This course covers advanced topics in data structures for working with structured data. The students will develop, implement, and analyze various data structure algorithms to solve real world problems. The course covers the following topics: disjoint sets, self-balanced trees, segment trees, heaps, hash tables, and tries.
This course covers advanced aspects of database management including normalization, query optimization, distributed databases, data warehousing, and big data. Students learn how to use object-oriented technologies to design relational databases and how to design relational databases to support object-oriented applications. There is extensive coverage and hands on work with SQL, and database instance tuning. The additional topics covered in this course will help you become more proficient in writing queries and will expand your knowledge base so that you have a better understanding of the field. The goal is to provide students with an advanced understanding of database design, implementation, and management concepts and techniques. Students complete a term project exploring an advanced database technology of their choice.
This course considers the basic knowledge of cryptography, both traditional and modern. This knowledge is the basis for future studies on network security.
This course gives a comprehensive overview of data mining fundamental concepts, algorithms, and its applications. It covers important sections on classification, association analysis, and cluster analysis. Students will learn analyzing of variant data sets that integrates results from disciplines such as statistics, predictive models, data bases, pattern recognition, and text mining. A major productive analytics project on a real data set is required.
Miscellaneous problems from or an investigation of some phase of undergraduate computer science possibly not treated in a regular course.
Capstone course that may include 1) attendance at 30 seminars, a software project, a paper describing the project, and an oral presentation of the paper; OR 2) a coding exam, and a comprehensive exit exam on computer science fundamentals.
The student will perform meaningful professional work.
The student will perform meaningful professional work.
Theory, design, protocols, security, and algorithms of computer networking.
Design and programming with different programming languages in networking application layer.
Design and programming with different programming languages in networking application layer.
Design and programming with different programming languages in networking application layer.
This course covers advanced aspects of database management including normalization, query optimization, distributed databases, data warehousing, and big data. Students learn how to use object-oriented technologies to design relational databases and how to design relational databases to support object-oriented applications. There is extensive coverage and hands on work with SQL, and database instance tuning. The additional topics covered in this course will help you become more proficient in writing queries and will expand your knowledge base so that you have a better understanding of the field. The goal is to provide students with an advanced understanding of database design, implementation, and management concepts and techniques. Students complete a term project exploring an advanced database technology of their choice.
This is a graduate course that discusses advanced topics in distributed operating systems. The covered topics are Synchronization, Consistency and Replication, Distributed Shared Memory, Fault Tolerance and Security, and Distributed File Systems.
This course builds upon the topics covered in a typical undergraduate operating systems course, such as Process Synchronization, Interprocess Communication, and File System Organization. After a brief review, these topics are studied in the context of distributed operating systems.
Prerequisites: CSCI 331 or equivalent.
Advanced topics on software engineering. Emphasis on software reuse, various software design patterns, software configuration, models and processes, software engineering management, and testing.
This is an elective course in the Computer Science program. It covers advanced topics in data structures such as disjoint sets, self-balanced trees, segment trees, heaps, hash tables, and tries. The students will develop, implement, and analyze the selected data structures and algorithms to solve real-world problems. In addition to reading the assigned materials, students will have to do homework, projects implemented in c-programming language, quizzes, and exams.
This course gives a comprehensive overview of data mining fundamental concepts, algorithms, and its applications. It covers important sections on classification, association analysis, and cluster analysis. Students will learn analyzing of variant data sets that integrates results from disciplines such as statistics, predictive models, data bases, pattern recognition, and text mining. A major productive analytics project on a real data set is required.
A required course for Project Option of Computer Science Master Program. Student writes, demonstrates, and defends a software project that solves real world problem.
This course presents the principles and tools used to process and analyze images, and how to apply them to solve practical problems. It will cover the fundamentals of image processing, and will provide a mathematical framework to describe and analyze images. It focuses on spatial transformation, linear and nonlinear filtering, image enhancement, histogram equalization, image restoration and reconstruction, image compression, feature extraction, image pattern classification. In all cases, example images pertaining to specific application domains will be utilized.
A required course for Project Option of Computer Science Master Program. Student writes, demonstrates, and defends a software project that solves real world problems.
A required course for Thesis Option of Computer Science Master Program. Write and defend a research thesis on modern computer science or an interdisciplinary field related to computer science.