A A Email Print Share

Course Descriptions

View flowchart for recommended course sequences.

100 - Elements of Computer Science

2 cr.
A survey of topics necessary for basic computer literacy. Includes laboratory exercises. Credit not given to computer science majors or minors. Example syllabus.
101 - Basic Programming 3 cr.
Computer programming in Visual Basic. Algorithm development and data representation. Credit not given to computer science majors or minors.
130 - Fundamentals of the Internet 3 cr.
Technical concepts of electronic mail, web browsing concepts and advanced features, HTML and web page design, technical concepts of the Internet, advanced Internet services, concepts and issues in electronic publishing, ethics and security issues. Prerequisite: COSC 030 or equivalent. Example syllabus.
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,Soft 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 this style of thinking to students from any discipline by applying tools and techniques designed for beginners to 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 150 and 160.
160 - Scientific Programming: C++ 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 150 and 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. Prerequisites: 160 and MATH 135 (may be taken concurrently). Example syllabus.
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. Prerequisite: 215.
260 - Concepts of Information Assurance 3 cr.
This course builds a basic cross-disciplinary understanding of how computers and networks work, of the role of information assurance, of the key principles of confidentiality, integrity, and access, and of major technologies for securing these principles such as security models, cryptography, authentication issues, access control, intrusion detection, auditing, and damage control. Students will learn about the societal/organizational risks associated with a lack of information assurance, including case studies and/or examples of security breaches and their consequences. Credit is not allowed for both 260 and 460. Prerequisite: 160.
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. Prerequisite: 215. Example syllabus.
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. Prerequisite: 220.
308 - Numerical Analysis 3 cr.
Identical to MATH 308. Credit only given for one of COSC 308 or MATH 308. Prerequisite: 150/160 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. Prerequisite: 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. Prerequisite: 220.
341 - Working Group in Computational Mathematics 3 cr.
Seminar style course serving as a forum in which students and faculty discuss research topics of current interest. Each working group will consist of a combination of faculty lectures, student presentations, open discussions, and group projects. Student participants will be expected to lead at least one class discussion. The content of the course will vary from term to term. Prerequisite: MATH 215, 310, COSC 215.
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. Prerequisite: One course in computer science on the 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. Prerequisite: 300.
410 - Artificial Intelligence 3 cr.
Knowledge representation and natural language processing, search strategies, design and applications of heuristics, expert systems, and applications. Prerequisite: 300. Example syllabus.
418 - Formal Languages and Automata 3 cr.
Formal languages and their relation to automata. The Chomsky language hierarchy, recognition of languages by automata, Turing machines, decidability, and computability. Prerequisite: 220. Example syllabus.
425 - Computer Graphics 3 cr.
Geometric generation of two- and three-dimensional graphics. Scan conversion, geometric transformation, clipping, interaction, curves and surfaces, and animation. Prerequisite: 300.
430 - Web-Based Systems 3 cr.
HTTP/HTML, client server scripting, active server/CGI technology, data store access/modification, cascading style sheets, and accessing the browser document object model. Prerequisite: 300. Example syllabus.
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. Prerequisite: 300. Example syllabus.
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. Prerequisite: 300. Example syllabus.
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. Prerequisite: 300 and 325W. Example syllabus.
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. Prerequisite: 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. Prerequisites: Senior status and 300.
491-499 - Selected Topics in Computer Science 1-3 cr.
Topics selected in consultation with the advisor. Prerequisite: Consent of the department chairperson