An introduction to computers as a tool in problem-solving, using BASIC as a language. Includes simple programming of problems in algebra or statistics. Draws models from the social and physical sciences. Does not require previous computer experience.
An introduction to advanced software engineering concepts using C++ and structured programming. Rudiments of the language and program optimization are stressed.
An introduction to the theory and practice of object oriented programming. Topics include objects, classes, inheritance, simple data structures, and basic concepts of software development. Prerequisite: CS 142
Basic principles of machine language programming. Computer organization and representation of numbers, strings, arrays, list structures, all at the machine level. Includes Assembler language. Prerequisite: CS 142.
This course introduces students to the fundamentals of computer architecture. Topics include transistors, logic gates, basic processor components, memory, input/output devices, and low-level machine instructions. Prerequisite: CS 142
A study of the use of a high-level language to implement complex data structures. These include lists, trees, graphs, networks, storage allocations, file structure, and information storage and retrieval. Prerequisite: CS 142.
This course introduces students to the theory and practice of relational databases. Topics include data modeling and database design, the relational algebra and relational calculus, data definition and manipulation languages using SQL, query processing and optimization, transaction management, security, privacy, integrity management. Prerequisite: CS 142
Mathematical models with an emphasis on constrained optimization problems. Topics include linear programming, network and integer models, and multi-objective optimization. Prerequisites: CS 142, MATH 202.
This course is an introduction to the software development process and design. Topics covered include concepts and techniques for designing, developing, and modifying large software systems; design patterns and modeling languages; specification and documentation; version control; testing and debugging; project team organization and management. Prerequisite: CS 150
This course is an introduction to the theory and practice of computer networks, the software protocols that allow them to operate, and the applications that make use of them. Topics covered include direct-link networks, packet switching, internetworking, end-to-end protocols, network applications, and network security. Prerequisite: CS 242
Theoretical analysis of various algorithms. Topics to include sorting, searching, selection, matrix multiplication and multiplication of real numbers. Prerequisite: CS 245.
This course introduces students to the essential elements of building a compiler: scanning, parsing, semantic analysis, and code-generation etc. Familiarity with how modern programming languages behave is assumed. Prerequisites: CS 150 and CS 242
Analysis of the computer operating systems including Batch, Timesharing, and Realtime systems. Topics to include sequential and concurrent processes, processor and storage management, resource protection, processor multiplexing, and handling of interrupts from peripheral devices. Prerequisite: CS 245.
This course studies the principles of computer graphics. Topics include geometric modeling, 3D viewing and projection, lighting and shading, color, and the use of one or more technologies and packages such as OpenGL. Prerequisite: CS 150, MATH 204
This course covers fundamentals of web applications and development, including common web protocols and standards. Topics include HTML, CSS, and development using JSP. Prerequisite: CS 150
This course introduces students to the key features of programming languages. Topics include structuring data, computation, and whole programs, data types, type checking, exception handling, concurrent processes, synchronization, modularity, encapsulation, interfaces, separate compilation, inheritance, polymorphism, dynamic binding, subtyping, overloading etc. Prerequisite: CS 342 and CS 344.
Deals with solutions to equations, matrix methods, linear systems of equations, matrix inversion, eigenvalue problems, numerical differentiation. Prerequisites: CS 142, MATH 204, 322.
This course is an introduction to the main theory and concepts in computation. The main topics include Turing machines, the Church-Turing thesis; decidability; halting problem; reducibility; undecidable problems; time classes; P, NP, NP-complete; space classes; hierarchy theorems; probabilistic algorithms. Prerequisite: CS 341, CS 342
This course is designed to be the culminating experience for Computer Science and Information Security majors. Students are expected to complete a significant project under the supervision of a faculty member. Knowledge and skills learned in the curriculum are to be applied, documented and demonstrated in the capstone project.
This course will cover special topics not available in the current CS curriculum when significant interest among students and faculty arises.
For more information, contact Dr. Chaogui Zhang at email@example.com or (570) 961-4598.