Apply

Computer Science Course Catalog

Click on the links below to read the description, course number, prerequisites and course credits for each course in the Computer Science program.

This course covers the basics of computer programming and provides a foundation for further learning in this area. It is suited for students who are absolute beginners and as such no previous computer programming knowledge is required to finish this course. The course uses the Python programming language which is very simple and straightforward. Although this course is for beginners, the course will cover abstract concepts which can be applied to almost any programming language, and students are encouraged to pay attention to these, since the way of thinking like a programmer is the most valuable lesson they will learn.
Course Number: CS 1101
Prerequisites: None
Credits: 3

This introductory course teaches the fundamental concepts of programming languages by use of the popular Java language. The topics cover fundamental principles of programming, including data types, program control and decisions, loops, string manipulations, procedures, arrays, software testing, and debugging. If you do not have a background in Computer Science, CS 1101: Programming Fundamentals is highly recommended.
Course Number: CS 1102
Prerequisites: None
Credits: 3

This course builds on the Introduction to Programming 1 course and teaches a more highly developed Java programming language with features beyond the basic concepts covered in the first programming course, preparing students for professional software development builds on this work in several directions. A large part of the course will be devoted to more advanced building blocks such as recursion, linked data structures, and Java’s Collection Framework. In addition to this, you will learn more about designing and coding complex, robust, and efficient programs. And you will be introduced to a professional programming tool: the Eclipse Integrated Development Environment.
Course Number: CS 1103
Prerequisites: CS 1102
Credits: 3

This course is an introduction to computer systems. In this course we will begin by exploring the internal design and functionality of the most basic computer components. From there, we will use an online hardware simulator to actually “build” a computer and develop an assembler from the ground using concepts we will learn in the class. In the process, we will cover the ideas and techniques used in the design of modern computer hardware and discuss major trade-offs involved in system design as well as future trends in computer architecture and how those trends might affect tomorrow’s computers.
Course Number: CS 1104
Prerequisites: CS 1103
Credits: 3

This course introduces the fundamental concepts necessary for designing, using and implementing database systems. We stress the fundamentals of database modeling and design, relational theory, and the Structured Query Language.
Course Number: CS 2203
Prerequisites: CS 1102
Credits: 3

This course will introduce the basic concepts of communication networks, including the OSI model and different types of communication protocols, including the Internet Protocol (TCP/IP protocol). The course will also cover the key concepts and structures of the Internet. Throughout the course, we will mainly be focusing on the two most prevalent reference models of network definition, OSI and TCP/IP.
Course Number: CS 2204
Prerequisites: CS 1104
Credits: 3

This course covers topics such as real numbers, differentiation, continuous functions, integration, limits, analytic geometry and trigonometry.
Course Number: MATH 1211
Prerequisites: MATH 1201
Credits: 3

This course introduces students to fundamental concepts and issues surrounding software development for programs that operate on the web and the internet such as static and dynamic content, dynamically served content, web development processes, and security.
Course Number: CS 2205 (CS1205)
Prerequisites: CS 1103
Credits: 3

This course provides an applied introduction to commercial operating systems. It is intended for intermediate students who have basic programming skills. Key concepts of computer systems and operating systems are introduced, as well as the communications and linkages associated with computer systems. Operating systems that are introduced include Microsoft Windows and UNIX/Linux.
Course Number: CS 2301
Prerequisites: CS 1103
Credits: 3

This course focuses on the engineering process requirements, including identification of stakeholders, requirements elicitation techniques such as interviews and prototyping, analysis fundamentals, requirements specification, and validation. Course topics will include the use of models (State-oriented, Function-oriented, and Object-oriented), documentation for Software Requirements (Informal, semi-formal, and formal representations), structural, informational, and behavioral requirements; non-functional requirements, and the use of requirements repositories to manage and track requirements through the life cycle.
Course Number: CS 2401
Prerequisites: CS 1103
Credits: 3

This course focuses on the organization of programming languages, emphasizing language design concepts and semantics. This course will explore the study of language features and major programming paradigms, with a special emphasis on functional programming.
Course Number: CS 4402
Prerequisites: CS 1103
Credits: 3

This course introduces the fundamental concepts of data structures and the algorithms that proceed from them. Although this course has a greater focus on theory than application the assignments, examples, and cases introduced throughout the course help to bring the gap between theoretical concepts and real world problem solving. We will be using a software tool that will enhance our understanding of the operation and function of the data structures and algorithms explored throughout the course by visually animating examples of data structures and algorithms so that we can understand their operation. Key topics within this course will include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, tress, and graphs), and the basics of algorithmic analysis.
Course Number: CS 3303
Prerequisites: CS 1103
Credits: 3

This course is primarily intended for students majoring in Computer Science. The emphasis will be on the development of technical discrete mathematics skills, rather than rigorous proof. Topics will include number systems, sets, logic, induction, elementary counting techniques, relations, functions, matrices, and Boolean algebra.
Course Number: MATH 1302
Prerequisites: None
Credits: 3

This course builds on knowledge of elementary algorithm analysis gained in Data Structures to further analyze the efficiency of algorithms for sorting, searching, and selection. The course will also introduce algorithm design techniques.
Course Number: CS 3304
Prerequisites: CS 3303
Credits: 3

This course builds on the concepts and issues discussed in Web Programming 1 surrounding software development for programs that operate on the web and the Internet. Existing and emerging web development topics to be covered include web applications, web services, enterprise web development, markup languages, and server-side programming.
Course Number: CS 3305
Prerequisites: CS 2205
Credits: 3

This course addresses more advanced topics in software engineering. Topics include the study of project planning, techniques for data-oriented design, object-oriented design, testing and quality assurance, and computer-aided software engineering.
Course Number: CS 4403
Prerequisites: CS 2401
Credits: 3

This course will cover server database management, configuration and administration, security mechanisms, backup and recovery, transact SQL Programming, and an introduction to database web-application development.
Course Number: CS 3306
Prerequisites: CS 2203
Credits: 3

This course builds on principles learned in Operating Systems 1 to approach complex computer operating system topics such as networks, parallel computing, remote procedure call, concurrency, transactions, shared memory, message passing, scale, naming, and security.
Course Number: CS 3307
Prerequisites: CS 2301
Credits: 3

This course covers the storage and retrieval of unstructured digital information. Topics include automatic index construction, retrieval models, textual representations, efficiency issues, search engines, text classification, and multilingual retrieval.
Course Number: CS 3308
Prerequisites: CS 3303
Credits: 3

This course explores the basic components and design principles of advanced broadband networks (wireline and wireless) and how they enable essential services such as mobility, and secure data storage, processing and transmission. This course will also introduce the student to emerging issues facing organizations considering implementing cloud computing services and mobility to enabling worker productivity. Students will also be exposed to the basic pillars of network security (IA) and protecting individual privacy.
Course Number: CS 4404
Prerequisites: CS 2204
Credits: 3

The course explores concepts and issues surrounding information system applications to real-time operating systems and wireless networking systems.
Course Number: CS 4405
Prerequisites: CS 3305
Credits: 3

This course explores graphics applications and systems. Topics to be covered include the basic structure of interactive systems, implementation of packages, distributed architectures for graphics, and the representation of surfaces.
Course Number: CS 4406
Prerequisites: CS 3304
Credits: 3

This course presents an introduction to current concepts in machine learning, knowledge discovery, and data mining. Approaches to the analysis of learning algorithm performance will also be discussed and applied.
Course Number: CS 4407
Prerequisites: CS 3304
Credits: 3

This course will cover current concepts and techniques in artificial intelligence, including “reasoning”, problem solving, and search optimization.
Course Number: CS 4408
Prerequisites: CS 4407
Credits: 3

SEE WHAT UOPEOPLE CAN DO FOR YOU!