A A Email Print Share

Course Descriptions

View flowchart for recommended course sequences.

Computer Science Courses

100 - Elements of Computer Science 2 cr.
A survey of topics necessary for modern-day professional computer literacy.  Includes laboratory exercises. Credit not given to computer science majors or minors.
101 - Basic Programming 3 cr.
Computer programming in Visual Basic. Algorithm development and data representation, decisions/conditions, looping, procedures and functions, arrays, searching, sorting, object oriented programming.  Interface design and writing Windows applications using forms, controls, and events.
130 - Fundamentals of the Internet 3 cr.
Technical concepts of the Internet and advanced Internet/Web services, plus HTML and web page design.  Also includes future trends, ethics, and security issues.  Pre-requisite: UCOR 030 or equivalent.
135 - Introduction to Computer Science 3 cr.
An introduction to fundamental computer science concepts for non-computer science majors. Provides high-level coverage of topics that may include Operating Systems (such as Windows), Programming Languages,Software Engineering, Computer Graphics, Artificial Intelligence, the Internet and World Wide Web, Computer Architecture (such as those from Intel), Algorithms and Problem Solving, Data Storage, Computer Security, and Social and Ethical Aspects of Computing.
145 - Algorithmic Thinking 3 cr.
Computers have made possible new ways of thinking about how to solve problems. This course introduces a style of thinking to students from any discipline by applying tools and techniques designed for beginners engaging problems. Topics include basics of algorithm design and development, abstraction, modularization, information organization, and object-oriented concepts.
150 - Computer Programming: C++ 3 cr.
Object oriented programming, objects and classes, data abstraction, functions, looping, selections, control structures, arrays, searching, and sorting. Credit is not allowed for both COSC 150 and COSC 160.
160 - Scientific Programming: Java 3 cr.
Object oriented programming, objects and classes, data abstraction, functions, looping, selections, control structures, arrays, searching, and sorting in an environment with scientific and mathematical applications. Credit is not allowed for both COSC 150 and COSC 160.
200 - Computer Science Tools 3 cr.

Computer science is, even at the undergraduate level, a very tool and technique intensive discipline. This course focuses on several commonly-used tools that are not necessarily part of the standard course sequence but that may be useful in other classes across the discipline or in other departments. Topics presented include

* Command-line interfaces and the Unix/Linux operating system

* Scripting languages and Python

* Pointer-based languages and C++

Pre-requisite: COSC 160

215 - Java with Data Structures 3 cr.
Data abstraction, queues, linked lists, recursion, stacks, trees, string processing, searching and sorting, and hashing. Java API support for data structures. Pre-requisites: COSC 160 and MATH 135 (may be taken concurrently with MATH 135).
220 - Computer Organization and Assembly Language 3 cr.
Basic structure of computer hardware and software, data representation, addresses and instructions, control structures, device drivers, files, and macros. Pre-requisite: COSC 215 (may be taken concurrently with COSC 215).
300 - Advanced Data Structures 3 cr.
Data organization, connections between the design of algorithms and the efficient implementation and manipulation of data structures. Abstract data types, tries, B-trees, and graphs. Pre-requisite:COSC 215.
305 - Digital Logic 3 cr.

Boolean algebra and logic gates, combinational logic, decoders, encoders, multiplexers, registers, counters, memory units, flip-flops, algorithmic state machines, and digital integrated circuits. Pre-requisite: COSC 220.

308 - Numerical Analysis 3 cr.
Linear systems, interpolation, functional approximation, numeric differentiation and integration, and solutions to non-linear equations.  May be counted as either mathematics or computer science, but not both.  Pre-requisites: COSC 150/16 and MATH 116.
311 - System Programming and Design 3 cr.
Interaction between software and hardware components in an integrated system, program translation issues, assemblers, linkers, loaders, and compilers. Pre-requisite: COSC 220.
325W - Operating Systems and Computer Architecture 3 cr.
Organization of operating systems and basic computer architecture. Implementing multiprogramming, memory management, communicating with input/output devices, concurrency, synchronization, file systems and scheduling the processor. Pre-requisite: COSC 220.
340 - Problem Solving Seminar 1 cr.
Solution and discussion of problems from the ACM International Collegiate Programming Contest and other sources. Permission of instructor required. Pre-requisite: COSC 300..
350W - Computers and Humanity 3 cr.
An exploration of the impact of computers on present and future society including sociological and philosophical issues in computer science. Pre-requisite: One course in computer science on the COSC 200 level.
401 - Data Base Management Systems 3 cr.
The use, design, and implementation of data base management systems. Topics include data models, current DBMS implementations, and data description, manipulation, and query languages. Pre-requisite: COSC 300.
410 - Artificial Intelligence 3 cr.

Knowledge representation and natural language processing, search strategies, design and applications of heuristics, expert systems, and applications. Pre-requisite: COSC 300.

418 - Formal Languages and Automata 3 cr.
Formal languages and their relation to automata. Regular expressions and languages, context free languages, recognition of languages by automata, Turing machines, decidability, and computability. Pre-requisite: COSC 220.
425 - Computer Graphics 3 cr.
Geometric generation of two- and three-dimensional graphics. Scan conversion, geometric transformation, clipping, interaction, curves and surfaces, and animation. Pre-requisite: COSC 300.
430 - Web-Based Systems 3 cr.
Technologies underlying the Web, TCP/IP, HTTP, HTML, CSS, JavaScript, the DOM, XML, server-side development, client-server communication, and web services.  Pre-requisite: COSC 300.
435 - Theory of Programming Languages 3 cr.
Syntactic and semantic issues in program language definition and implementation. Static vs. dynamic properties, parameter passing, recursion, and language comparisons. Pre-requisite: COSC 300.
445W - Systems Analysis and Software Design 3 cr.
Methods and tools for the structuring and modular design of large systems, organization and techniques of team programming, design evaluation and validation. Pre-requisite: COSC 300.
450 - Computer Networks 3 cr.
Network technologies, protocols, and management. Programming networked applications. The effects of the Internet and World Wide Web on computing and society. Pre-requisite: COSC 300 and COSC 325W.
460 - Computer Security 3 cr.
Network, database, and Web security, threat models, elementary and advanced cryptology, protocol analysis, covert channels, access control and trust issues, legal and ethical issues in security. Pre-requisite: COSC 325W.
480W - Senior Project 1 - 3 cr.
An individual or group project involving a significant programming component, documentation, and written report on a topic of current interest in computer science. Pre-requisites: Senior Status and COSC 300.
491 - Selected Topics in Computer Science I 1 cr.
Topics selected in consultation with the advisor. Pre-requisite: Consent of the department chairperson.
492 - Selected Topics in Computer Science II 2 cr.
Topics selected in consultation with the advisor. Pre-requisite: Consent of the department chairperson.
493 - Selected Topics in Computer Science III 3 cr.
Topics selected in consultation with the advisor. Pre-requisite: Consent of the department chairperson.