COSC - Computer Science


Effective 1 June 2023 through 31 May 2024

Please see the Undergraduate Catalog Archives for PDF versions of past catalogs.

Course Descriptions

Global Citizenship Program
Knowledge Areas
ARTS Arts Appreciation
GLBL Global Understanding
PNW Physical & Natural World
QL Quantitative Literacy
ROC Roots of Cultures
SSHB Social Systems & Human Behavior
Global Citizenship Program
Skill Areas
CRI Critical Thinking
ETH Ethical Reasoning
INTC Intercultural Competence
OCOM Oral Communication
WCOM Written Communication
** Course fulfills two skill areas


COSC 1520 Computer Programming Concepts (3)

This course teaches the basic concepts of computer programming. At the end of this course, students will be able to plan, code and run simple computer programs. This course is intended for non-computer science (COSC) majors.

COSC 1540 Emerging Technologies (3)

This course introduces general concepts and vocabulary of information systems. It also addresses the issues and impact of powerful information tools.

COSC 1550 Computer Programming I (3)

This course introduces students to the C++ language in order to teach programming as a systematic discipline and as a problem-solving tool. Acquaints students with fundamental concepts of computers, information processing, algorithms and programs. Only offered in a 16-week format. May be repeated once for credit.

COSC 1560 Computer Programming II (3)

This course uses the C++ language to introduce students to programming concepts such as abstract data types, use of classes and objects, pointers and advanced file operations. Only offered in a 16-week format. May be repeated once for credit. Prerequisite: COSC 1550 with grade of B- or better.

COSC 1570 Mathematics for Computer Science (3)

This course covers topics including number systems, computer arithmetic, binary, octal, hexadecimal, floating point operations, sets and Boolean algebra.

COSC 1580 Logic for Computer Science (3)

This course covers all fundamental topics in deductive logic and is a thorough introduction to propositional and predicate logic. Cross-listed with MATH 1580 and PHIL 2020.

COSC 1800 Python Programming (3)

This course covers programming and application development using Python. Topics include programming and problem solving using Python. Topics include procedures and functions, iteration, recursion, sequence, dictionaries, arrays and vectors, strings, algorithms, object-oriented programming, GUIs (graphical user interfaces) and other Python programming topics.  

COSC 2010 Computer Topics (3)

This course introduces a variety of computer topics under different subtitles. May be repeated for credit if content differs. Prerequisites: Vary by topic.

COSC 2050 Java Programming (3)

This course covers the principles of programming and core Java features. A step-by-step approach first lays a sound foundation on programming elements, control statements and methods; then introduces object-oriented programming; moves on to graphics programming; and concludes with advanced features that prepare students to develop more comprehensive programs. Prerequisite: COSC 1560.

COSC 2060 Advanced Java (3)

This course expands on the beginning Java course with in-depth discussion of advanced topics, including Java applications and distributed systems. The course introduces students to technologies such as JDBC, servlets, JavaBeans and Java XML. Prerequisite: COSC 2050.

COSC 2070 Introduction to Mobile Technology (3)

This course studies the fundamentals of mobile technology. It focuses on emerging mobile technology, the potential of the mobile application market and the technological and marketing challenges that make mobile applications difficult to commercialize. This course will also discuss the various tools available to build powerful mobile applications.

COSC 2110 Computer Languages (3)

This course investigates different computer languages, offered under different subtitles. May be repeated for credit if content differs.

COSC 2610 Operating Systems (3)

This course is an overview of the concepts and theories of operating systems. Examines the major components found in all operating systems including the memory, process manager and device and file managers. Prerequisites: COSC 1550 and COSC 1570.

COSC 2660 Network Management (3)

This course emphasizes local area networks in the study of their hardware and software components. The configuration, installation, and management of networks and appropriate applied software are studied. Prerequisite: COSC 1550.

COSC 2670 Network Principles (3)

This course is an introduction to computer networks and covers wired, wireless and internet architectures. Students will gain an understanding of network terminology and the various related technologies and protocols. The course provides an analysis of the current and future trends in networking technologies and services and includes an overview of the industry and associated management and strategy issues. Prerequisite: COSC 1550 or permission of the department.

COSC 2710 Social Engineering and Society (3)

This course provides the student with current information defining the many methods of deception hackers use in order to gather information with the intent of executing identity theft, fraud or gaining computer system access; discusses activities toward preventing social engineering threats ranging from elicitation, pretexting, influence and manipulation. The elements of social engineering are presented, discussed and explained by using real-world examples and the science behind them to unravel the mystery in social engineering.

This course also explores technological, social and philosophical issues to include the ramifications of automation, the ethical obligations of computer specialists and the threats to privacy that come with increased computerization. Combining the criminal-centric role of social engineering with the ethical, legal and moral impacts of technology upon individuals results in a course that provides the student a comprehensive overview of the challenges, threats and issues of everyday life in the digital age.

COSC 2810 Systems Analysis and Design (3)

This course covers the basic concepts involved in systems analysis, including effective communication, analysis tools and phases of the systems development life cycle. Prerequisite: COSC 1560 or permission of the department.

COSC 3050 Data Structures I (3)

This course studies the design and implementation of the most common algorithms associated with the basic data types and with some elementary data structures using C++. The relationship of algorithm design to problem solving in general is studied. The course also covers algorithms to improve the robustness and user friendliness of programs. Prerequisites: COSC 1560 with a grade of B- or better, COSC 2610 and COSC 2810*.  
*Students who have completed 60 credit hours may take COSC 2810 concurrently with COSC 3050.

COSC 3100 Data Structures II (3)

This course is a continuation of COSC 3050 Data Structures I. Students will program the data structures and algorithms using C++. Prerequisite: COSC 3050.

COSC 3230 Human-Computer Interaction (3)

Human-computer interaction (HCI) is a field of study that focuses on designing the interactions between humans and computer systems and software. Students in this course will be introduced to user-centered design concepts and how these activities fit into the software development process. Students will also be introduced to usability testing, interactive technologies and human factors and security. Prerequisites: COSC 1560 and COSC 2810.

COSC 3340 Mobile Computing I (3)

This course will study the leading-edge mobile computing technologies for professional software developers. The course will be hands-on and project-based. The central focus of the course is to enable the understanding and critical evaluation of mobile applications. Prerequisites: COSC 1560 and COSC 2070.

COSC 3350 Mobile Computing II (3)

This course will study the leading-edge mobile development technologies for professional software developers. The course will be hands-on and project-based. In addition to mobile development, this course will focus on more advanced mobile computing techniques and mobile application development schemes. The central focus of the course is to further enhance the knowledge and critical evaluation of mobile applications and the mobile development process. Prerequisite: COSC 3340.

COSC 3410 Computer and Information Security (3)

Students in this course will study the techniques for protecting data within a computer and protecting data as it moves through a network. Data and system security and reliability will be considered in a distributed environment. Topics will include encryption, authentication and digital signatures, threats to the computer system, and system reliability.  Additionally, the students will be exposed to information system vulnerabilities, critical infrastructures, the growing threat of social networks, intelligence and counter intelligence, international laws, security policies, privacy and information liability, cyber attacks and threats, risk assessment, cybersecurity data gathering and recovery, and a survey of future cyber technology developments. Prerequisite: COSC 1560 and junior standing.

COSC 3500 IT Project Management (3)

This course provides students a holistic and integrative view of project management. The course covers concepts and skills that are used by IT professionals to propose, plan, secure resources, budget and lead IT project teams to a successful completion of their projects. Prerequisites: COSC 1560 and junior standing.

COSC 3510 Computer Architecture (3)

This course will explore the concept of the modern computer based on layers of virtual machines. While computers may become quite complex, they may be more easily understood as virtual machines that perform a well-defined set of functions. Prerequisites: COSC 1560, COSC 2610 and junior standing.

COSC 3610 Operating Systems Concepts (3)

This course examines the components that make up a modern operating system. The student will have an opportunity to explore some of the strategies used and the performance trade-offs for single user and multi-user operating systems. Topics will include: CPU scheduling, memory management, disk organization, disk access scheduling, input/output management, the user interface and system security. Prerequisites: COSC 1560, COSC 2610 and junior standing.

COSC 3660 Network Concepts (3)

This course explores the basic concepts of computer networks. This course examines and compares network topologies, protocols, and national and international standards. It examines the similarities and differences in local area networks and wide area networks. Prerequisites: COSC 1560 and junior standing.

COSC 3810 Principles of Programming Languages (3)

This course is a study of the design, evaluation, and implementation of programming languages. It focuses on the principles of design and evaluation and their relationship to the syntax, semantics and pragmatics of programming languages. Prerequisites: COSC 1560 and junior standing.

COSC 3900 Practicum (1-12)

(Note: This course is a maximum of 3 credit hours towards a computer science major without an emphasis. This course may not count toward a computer science a minor.) May be repeated for credit up to a maximum of 18 credits. Prerequisite: Permission of the department.

COSC 3910 Project (1-8)

(Note: This course does not count toward a computer science major without an emphasis or toward a minor.) Prerequisites: COSC 1560, junior standing and permission of the department.

COSC 4110 Database Concepts (3)

This course studies database design using the relational model and the Entity-Relationship model. Students will study and use the SQL query language. Database design considerations will include data integrity, relational integrity, redundancy and security. Students will develop a logical design for a database that will be implemented in COSC 4120. Prerequisites: COSC 1560 and junior standing.

COSC 4120 Database Applications (3)

This course is a continuation of COSC 4110. Students develop the logical design from COSC 4110 into a complete computer application with documentation. Focuses on specific applications that are important in a variety of computer information systems. Applications are examined from the perspective of user needs and program design. Students study program design using a database management system. Prerequisite: COSC 4110.

COSC 4250 Object-Oriented Analysis and Design (3)

This course is designed to teach the student the fundamentals of object-oriented software analysis and design. Presents the theoretical aspects of object-oriented software design but focuses on the practical issues surrounding object-oriented software analysis and design and the format of the design process as it exists in an industrial setting. The student gains experience in the design aspect of the systems development life cycle. Prerequisites: COSC 2810 and COSC 3100.

COSC 4260 Object-Oriented Programming (3)

This course is a continuation of COSC 4250 using C++. Prerequisite: COSC 4250.

COSC 4310 Database Programming (3)

This course teaches programming in SQL that enables users to perform various types of data manipulation to satisfy business requirements. Students will also learn how to use procedural SQL to accomplish actions to implement business applications. Prerequisite: CSIS 4300 or COSC 4110.  

COSC 4510 Mobile Development I (3)

This course aims to provide a greater depth of knowledge in mobile device computing. Topics include available tools, mobile development paradigms, device limitations, mobile app feasibility and economics, and future trends. Prerequisite: COSC 3350.

COSC 4520 Mobile Development II (3)

This course studies mobile development from three perspectives: mobile technology, application development, and user interaction. The course first overviews various mobile applications, technologies and wireless communication. Next, students will learn about common paradigms in mobile development, such as computing in an environment with limited resources. Lastly, the course will study some current research in mobile development. Prerequisite: COSC 4510.

COSC 4810 Information Systems I (3)

This course uses systems analysis and design techniques to teach students to look at the software and hardware requirements needed to create an information system. Prerequisites: COSC 1560, COSC 2810 and junior standing.

COSC 4820 Information Systems II (3)

This course is a continuation of Information Systems I, with an emphasis on solving an organization's information system problems. This course provides the opportunity to apply the theory in a substantial project. Prerequisite: COSC 4810.

COSC 4910 Senior Overview (3)

Prerequisites: COSC 1560, senior standing and permission of the department.

COSC 4920 Senior Thesis (4)

This course allows students to pursue significant independent research in computer science. Students apply integrative and analytical skills to provide a final report. They develop the topic, design the study, and integrate the theories, tools, and concepts that they have learned during the program to analyze a computer science program in a coherent, systematic, and scientific fashion. The thesis prepares students for further master-level studies. Prerequisites: Senior standing and approval of the department.