COSC - Computer Science


Effective 1 June 2020 through 31 May 2021

Please see the Temporary Adjustments to Policy on Grading for Undergraduate Courses for Spring 2020

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)

Students will learn 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)

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)

Topics covered include number systems, computer arithmetic, binary, octal, hexadecimal, floating point operations, sets, and Boolean algebra.

COSC 1580 Logic for Computer Science (3)

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 2010 Computer Topics (3)

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

COSC 2030 Visual BASIC (3)

Provides an introduction to communicating with computer users through the use of a GUI-graphical user interface. The concept of object-oriented programming, event-driven programming, and designing effective GUIs will be covered. Prerequisite: COSC 1560 or two courses in any programming language.

COSC 2040 Advanced Visual BASIC (3)

This course continues program development in the Visual BASIC programming language with emphasis on communication with other Windows applications. Included are topics in data access and file handling, as well as the use of object linking and embedding (OLE) and dynamic data exchange (DDE). Prerequisite: COSC 2030.

COSC 2050 Java Programming (3)

This is a first course in Java programming, covering 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)

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

COSC 2610 Operating Systems (3)

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)

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)

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)

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.

COSC 3100 Data Structures II (3)

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

COSC 3200 Advanced Programming Techniques (3)

Study of advanced programming techniques in C++ beyond those covered in COSC 3100 Data Structures II. Prerequisites: COSC 3100 and permission of the department.

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 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. Prerequisites: 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)

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 3750 Decision Support Systems Concepts (3)

This course covers the basic concepts in Decision Support Systems. The course introduces data warehousing and data mining and explains their role in the decision making process. 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 a maximum of 3 credit hours toward 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)

Students in this course will study 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, COSC 2810 and junior standing.

COSC 4120 Database Applications (3)

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. This course carries an additional fee of $27. Prerequisite: COSC 4110.

COSC 4250 Object-Oriented Analysis and Design (3)

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)

Continuation of COSC 4250 using C++. Prerequisite: COSC 4250.

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)

Using systems analysis and design techniques, students 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)

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.