Computer Science

COSC A208 Information Systems Theory & Practice
3.00 crs.

This course provides an understanding of information systems and outlines the concepts of how IS can provide for competitive advantage. Different systems are presented. Design and implementation are discussed. Effect on business and society is studied.

COSC A211 Introduction to Programming I
3.00 crs.

This course is an introduction to concepts and terminology in computer programming. Topics include interface builders and problem solving techniques in various programming environments. Emphasis is placed on the basics of software design and on elementary applications to Mathematics and other disciplines.

A higher level math course is accepted
COSC A211 Introduction to Programming I
3.00 crs.

This course is an introduction to concepts and terminology in computer programming. Topics include interface builders and problem solving techniques in various programming environments. Emphasis is placed on the basics of software design and on elementary applications to Mathematics and other disciplines.

A higher level math course is accepted
COSC A212 Introduction to Programming II
3.00 crs.

This course is a continuation of COSC A211. Topics include object-oriented programming, software development, and data structures such as stacks, queues, trees, lists and the further exploration of the applications of programming to Mathematics and other disciplines.

COSC A217 Object-Oriented Programming
3.00 crs.

This course offers an introduction to object-oriented software design techniques and to problem-solving methods. Particular focus is on the object-oriented paradigm. Procedural abstractions, data abstraction, and complex data structures are covered within the OO paradigm. Students also examine the major phases of software development and design.

COSC A241 Computing Ethics
3.00 crs.

This course mixes ethical theory with case study analysis to introduce students to ethics questions and theories that can help them to make ethically sound decisions in their professional, personal, and social experiences with computing. Starting with a few motivating current events, the course covers major ethical perspectives, and then introduces key ethical issues related to networked communications, intellectual property, information privacy, computer and network security, computer and software reliability, professional ethics, and workplace fairness, health, and the impacts of job automation.

COSC A242 Introduction to Cybersecurity
3.00 crs.

A broad survey course intended for undergraduate students in any major: Students are provided with a road map for approaching this field from multiple standpoints—computer science, business administration, criminal justice, or other disciplines. Students learn the mechanisms needed to ensure the fundamentals of information security. The course will present security for personal systems, enterprise systems, and internet use. Students learn to delineate the many different types of threats and vulnerabilities, and to characterize noteworthy recent failures in information security.

COSC A243 Corporate Cybersecurity Strategy
3.00 crs.

Cybersecurity is as much a set of human practices as technical ones. Responsible handling of information assets—let alone ethical handling—demands a consistent approach whether an organization is a transnational corporation or a sole proprietorship. This course teaches students to implement security policies to support organizational goals. We discuss methodologies for identifying, quantifying, mitigating, and controlling security risks, as well as disaster recovery. Student also learn about laws, regulations, and standards relating to information security and privacy, and how they affect IT organizations.

 

COSC A270 Introduction to Relational Databases
3.00 crs.

This course introduces the concepts and terminology of databases. The concepts discussed during the lectures are illustrated by a number of hands-on exercises based on the Microsoft Access database software.

COSC A280 Introduction to Computer Graphics
3.00 crs.

This course familiarizes students with basic aspects of computer graphics: Topics include Java 2D fundamentals, geometry, painting, stroking, interactivity, color theory, animation, and affine transforms.

Sophomore
COSC A315 Computer Organization
3.00 crs.

This course introduces the topics of digital logic, digital systems, machine level representation of data, assembly level machine organization, memory system organization, I/O, and communication.

Sophomore
COSC A317 Data Structures
3.00 crs.

This course covers the basics of data structures, such as abstract data types, linked lists, stacks, queues, trees, and graphs. Applications to a number of problems, both practical and theoretical, are studied,  including sorting, searching, and changing from recursion to iteration.

Sophomore
COSC A319 Internet Technologies
3.00 crs.

This course explores the concepts and technologies that are used in modern Internet systems, and provides the necessary skills and knowledge of software technologies needed for creating Internet/Web services. It is designed to expose students to web content presentation and generation technologies, programming, and building multi-tiered client/server web applications.

Sophomore
COSC A341 Ethical Hacking - Penetration Testing
3.00 crs.

This course is a hands-on lab in “ethical hacking” and other forms of penetration testing for the purpose of finding and resolving vulnerabilities in computer systems and networks.  The course is founded on absorbing the Mitre ATT&CK framework as a means of understanding adversarial behavior.  Students perform penetration tests on specially configured target systems, which may include externally-managed cyber-ranges. Students also participate in bug bounties, and learn how to articulate and practice responsible disclosure of cybersecurity vulnerabilities.  Upon completion, students will be prepared for the Certified Ethical Hacker qualification test.

COSC A342 Digital Forensics
3.00 crs.

The increasing dependence in everyday life on computer information systems has led to a corresponding increase in criminal activity through and against such systems. In addition, benign use of information systems has grown to the extent that such systems are now routinely part of discovery in civil and criminal legal proceedings. In this course, students will learn the techniques of digital forensics that are used to investigate cybersecurity incidents, legal disputes, and crimes. We will develop approaches that can be used on desktop personal computers and servers. The course will also emphasize the importance of controls and verification of digital evidence and the critical necessity of preserving and documenting a chain of custody for that evidence.

COSC A361 Languages and Paradigms
3.00 crs.

This course is a survey of languages and paradigms. Topics include parameters, data types, abstract data types, storage issues, static/dynamic attributes, and software abstractions. Emphasis is on the procedural paradigm with introduction and comparison to the object-oriented paradigm, the logic paradigm, and other paradigms.

Sophomore
COSC A365 Operating Systems
3.00 crs.

Topics include an introduction to operating systems; process, memory, and storage management; protection and security; distributed systems; and case studies.

Prerequisite
Sophomore
COSC A405 Artificial Intelligence
3.00 crs.

This course teaches the fundamentals of artificial intelligence, including problem solving techniques, search, heuristic methods, and knowledge representation. Topics include ALL programming, expert systems, and an introduction to natural language processing.

Sophomore
Corequisites:
COSC A406 Machine Learning
3.00 crs.

Machine learning is the science of getting computers to act without being explicitly programmed. Topics include effective machine learning techniques, implementation, and the theoretical underpinnings of learning and AI.

Sophomore
COSC A425 Computer Graphics
3.00 crs.

Topics include review of vector analysis and matrices; 3D wireframe pipeline framework; window to viewport transform; clipping algorithms; matrix description of 2D and 3D transforms; projections and perspective transforms; view transform; and some concepts in computational geometry.

COSC A426 Game Programming
3.00 crs.

This course is for individuals interested in becoming a game programmer, game designer, or game artist. Students learn how to make video games using the industry tools and practices of game development. The course takes students from intermediate programmers to designers of stunning 3D games. By the end of the course, students will have completed multiple hands-on projects and will be able to leverage an array of game development techniques to design and create their own video games.

COSC A430 Database Management Systems
3.00 crs.

This course is concerned with the internals and externals of database management systems, as well as data modeling techniques. Topics include features of database management systems (DBMS) and database users; data modeling; relational data models and languages; constraints and triggers; system aspects; object-oriented databases; logical query languages; data storage; query processing and optimization; transaction processing and concurrency control; and information integration.

Sophomore
COSC A441 Cryptography and Its Applications
3.00 crs.

Cryptography is a science of unpredictability and unintelligibility—hiding information in ways an adversary can neither anticipate nor discover. In this course, we will cover the various forms of cryptography: Symmetric, asymmetric, and one-way cryptography and review algorithms of each form. The course will address the use of cryptography in information security, not only for confidentiality, but also for data integrity. We will explore the mathematical principles behind deriving cryptographic algorithms and those behind validating them, including secure random-number generation. The course will present the applications of cryptography from the block ciphers of antiquity through the incipient field of quantum cryptography. The course will also focus on public-key infrastructure and blockchain/distributed ledger as important implementations of cryptography.

COSC A441 Cryptography and Its Applications
3.00 crs.

Cryptography is a science of unpredictability and unintelligibility—hiding information in ways an adversary can neither anticipate nor discover. In this course, we will cover the various forms of cryptography: Symmetric, asymmetric, and one-way cryptography and review algorithms of each form. The course will address the use of cryptography in information security, not only for confidentiality, but also for data integrity. We will explore the mathematical principles behind deriving cryptographic algorithms and those behind validating them, including secure random-number generation. The course will present the applications of cryptography from the block ciphers of antiquity through the incipient field of quantum cryptography. The course will also focus on public-key infrastructure and blockchain/distributed ledger as important implementations of cryptography.

COSC A441 Cryptography and Its Applications
3.00 crs.

Cryptography is a science of unpredictability and unintelligibility—hiding information in ways an adversary can neither anticipate nor discover. In this course, we will cover the various forms of cryptography: Symmetric, asymmetric, and one-way cryptography and review algorithms of each form. The course will address the use of cryptography in information security, not only for confidentiality, but also for data integrity. We will explore the mathematical principles behind deriving cryptographic algorithms and those behind validating them, including secure random-number generation. The course will present the applications of cryptography from the block ciphers of antiquity through the incipient field of quantum cryptography. The course will also focus on public-key infrastructure and blockchain/distributed ledger as important implementations of cryptography.

COSC A451 Software Engineering
3.00 crs.

This course describes engineering processes and their application to the development of software.

Prerequisite
Sophomore
COSC A471 Communication and Network Systems
3.00 crs.

This course explores the fundamental issues in computer networking. The course is intended to provide students with knowledge and understanding of basic concepts in networks and protocols. Frequently used protocols are used to illustrate the concepts and to provide insight into practical networks.

Sophomore
COSC A493 Special Topics in Computer Science
3.00 crs.

Students demonstrate the ability to apply mathematical foundations, algorithmic principles, and computer sciences theory in the modeling and design of computer-based programming. Emphasis is on one or more of the theoretical aspects of computer science.

COSC A495 Special Project in Computer Science
3.00 crs.

This course focuses on the creative or productive efforts of one or more students. Students demonstrate the ability to use current skills and tools necessary for the application of computing practice.

COSC A496 Seminar/Workshop
1.00 crs., 3.00 crs.

A seminar is a supervised group of students sharing the results of their research on a common topic. A workshop is a supervised group of students participating in a common effort. Credits vary.

COSC A497 Practicum/Internship II
3.00 crs.

This experience is planned and arranged in conjunction with the student's major advisor. Students gain practical computing experience on projects outside a regular classroom setting. 

COSC A498 Research Project
1.00 crs., 3.00 crs.

Research projects focus on empirical or historical investigation, culminating in a written report. Credits vary.

COSC A499 Independent Study
1.00 crs., 3.00 crs.

Students work with a faculty member on a topic of their choosing. Credits vary.

COSC Y200 The World Wide Web and Scripts
3.00 crs.

Knowledge-Values Courses: Natural Science in Context

This course introduces students to the World Wide Web from the point of view of a user who surfs the Web, as well as from the point of view of an author who develops websites on the Internet. It describes web standards, networking protocols, and the latest development in various markup languages, such as HTML and XHTML. Students learn to create their own static web pages in part one, using features available from the markup languages. In part two, students use the knowledge learned in part one to incorporate dynamic content into their web pages, and learn to turn their information-only web pages into an interactive, goal-oriented website.