|Code||Course Title / Description|
|COMS101||Computer Applications 1 credit|
Applications course focused on basic computer science concepts in a layered manner. Layers include information, hardware, programming, operating systems, applications, and communications.
|COMS103||Intro to Programming I 3 credits|
An introductory course for computer science majors and minors with coding exercises using a high-level programming language. Programming topics include input/output, loops, decision structures, arrays, lists, and functions; concepts of data abstraction including primitive data types, strings, arrays, dictionaries and files. Emphasis is given to good programming style and problem-solving techniques for program design and structure, coding, documentation, debugging and testing.
|COMS104||Intro to Programming II 3 credits|
A continuation of COMS103 - Intro to Programming I utilizing an object-oriented programming language. This course builds on previous programming skills while introducing object-oriented analysis and design concepts such as encapsulation, inheritance, polymorphism, and operator overloading. The fundamental structure of objects and classes are explored and applied to advanced topics that include searching, sorting, and simple data structures. Prerequisite: COMS103 - Intro to Programming I.
|COMS201||Object Oriented Programming 3 credits|
A continuation of the object-oriented programming (OOP) concepts introduced in COMS104 - Intro to Programming II. Topics covered include a history of the OOP paradigm, how OOP differs from procedural programming, objects and classes, inheritance, encapsulation, composition, polymorphism, cohesion and coupling, and an introduction to UML modeling. Design patterns and elements of the Agile programming paradigm are introduced. Prerequisite: COMS104 - Intro to Programming II.
|COMS210||Internet Programming 3 credits|
Internet programming includes web server configuration and file security as well as client-side web browsers, HTML, CSS, and scripting. Additional topics covered include internet protocols such as TCP/IP, UDP, and HTTP, and standards such as REST and JSON. Prerequisite/Corequisite: COMS201 - Object Oriented Programming.
|COMS304||Computer Organization 3 credits|
Introduction to the relationship between computer software and hardware. Topics include the hierarchical organization of data storage such as disk drives and memory, CPUs, system input and output, and an evaluation of how hardware components affect system performance. Prerequisite: COMS104 - Intro to Programming II.
|COMS320||Data Communication 3 credits|
Introduction to data communications and networking using the TCP/IP layered protocols approach. Topics include fundamentals of data transmission, LANS, WANS, packet routing and the underlying protocols. A brief look at network management and security round out this course. Prerequisite: COMS103 - Intro to Programming I.
|COMS322||Database Systems 3 credits|
Introduction to relational database management systems (RDBMS) using Microsoft SQL Server. Topics covered include database design, data types, indexes and keys, database normalization, and structured query language (SQL). A basic introduction to big data and multi-model data is also included. Prerequisite: COMS201 - Object Oriented Programming.
|COMS324||Data Modeling 3 credits|
Covers conceptual modeling of cardinal relationships between real-world data objects. The focus is on mapping data relationships using the entity relationship diagram (ERD) as well as an introduction to the application of relational algebra to data objects. Prerequisite: COMS104 - Intro to Programming II.
|COMS326||Data Structures 3 credits|
A continuation and expansion of the data structures introduced in COMS104 - Intro to Programming II and used in modern programming languages. Topics covered include arrays, vectors, stacks, queues, lists, dictionaries, and iterators as well as sorting and comparison of data stored in these structures. Prerequisite: COMS201 - Object Oriented Programming.
|COMS340||Programming Languages 3 credits|
Covers the history and basic principles of programming languages and their various structures including object-oriented, procedural, functional, and scripting languages. Prerequisite/Corequisite: COMS304 - Computer Organization.
|COMS442||Software Architecture 3 credits|
An introduction to the architecture of software systems including architectural types, such as pipe-and-filter, layered, event driven, blackboard, etc., as well as stakeholders involved in software projects, their viewpoints as they relate to a project, and the functional and quality attributes of software systems. Prerequisites: COMS201 - Object Oriented Programming and COMS322 - Database Systems.
|COMS480||Topics in Computer Science 3 credits|
Discussion of selected topics in computer science. Course is offered on a rotational basis and may be repeated for credit with different topics.
|COMS495||Computer Science Capstone 3 credits|
The senior capstone project is intended to allow the student to investigate a computer science area of their choice. The instructor will work with the student in an advisory capacity while the student completes a non-trivial research, hardware design, or programming project related to current trends in computer science. Prerequisites: COMS304 - Computer Organization, COMS320 - Data Communication, and consent of instructor.
|COMS499||Internship in Computer Science 3 credits|
Computer Science-related field experience with an approved agency fulfilling an individual learning contract negotiated between student, faculty advisor, and worksite. Computer Science majors only, by permission.