Undergraduate Computer Science Courses
Computer Science 162, Credits: 3
A thorough introduction to using computers covering word processing, spreadsheets, data storage and retrieval, computer graphics and applications, uses of computers, e-mail and the Internet, hardware, history, and problems arising from the use of computers.
Computer Science 171, Credits: 3
An introduction to computer programming and its applications to science, business and education. Opportunity for extensive experience in designing and writing structured programs in the Visual Basic language.
Computer Science 172, Credits: 3
This course will give students the essentials of object-oriented programming in Java. Students will learn to formulate algorithms, to solve problems and to implement those solutions with a Java program that employs objects and classes. The student will be introduced to object-oriented design, applications and applets, class construction, methods and message passing arrays, string processing, file processing, and some event-handling and Graphical Use Interface programming. This course is designed for students with some prior programming experience.
Computer Science 174, Credits: 3
This course teaches basic programming skills using the structured high-level language C++. Topics include basic input and output, declaration and use of variables, use of control statements, implementation of functions usig value and reference parameters, arrays, and structures. Students will write moderately complex applications using C++.
Computer Science 181, Credits: 3
This course provides the student with a comprehensive working knowledge of a modern database package including the creation of a database, construction of a wide range of queries, use of forms, and report writing features. The course also gives an introduction to the creation of World Wide Web pages using the Extended Hypertext Markup Language (XHTML).
Computer Science 220, Credits: 3
This course teaches students professional software development using object-oriented program design and the Java programming language. Coverage includes correct business programming style and documentation, program debugging and testing, database and file processing, event-handling, and graphical user interfaces. Unreq: MCS 220 and COMPSCI 222
Computer Science 222, Credits: 3
This course will cover more advanced issues of C++, including memory management, pointers and user-defined data types. Topics will include reading and writing files, dynamic arrays, implementation of the principles of object oriented design including encapsulation, and inheritance, planning and testing. Students will write complex applications using C++. Unreq: MCS 220 and COMPSCI 220
Computer Science 223, Credits: 3
This course covers issues of data structures, professional software development methodologies including software patterns and advanced object oriented techniques. Topics include lists, queues, stacks and trees. Complex data structure and object-oriented design technique, including inheritance and polymorphism, are applied to develop and large projects. Unreq: MCS 231 and COMPSCI 231
Computer Science 231, Credits: 3
This course is an introduction to data structures, using the Java programming language. It covers static and dynamic implementations of data structures including lists, stacks, queues and trees. It emphasizes object-oriented design and programming methodology, including inheritance and polymorphism, and applies these in the development of large programming projects. Unreq: MCS 231 and COMPSCI 223
Computer Science 271, Credits: 3
A study of assembly language basic instructions, number systems, information move, integer arithmetic, subroutine linkage, memory allocation, bit manipulation, floating point arithmetic, macro definition and conditional assembly, the program status word, interrupt and I/O structure.
Computer Science 302, Credits: 3
Structure of microprocessors and microprocessor systems, programming in machine language, computer logic and logic circuits, interfacing.
Computer Science 322, Credits: 3
This course is an introduction to the theory of computer languages and the construction of assemblers and compilers. Students will write a small assembler and a small compiler and will compare features of many computer languages.
Computer Science 332, Credits: 3
This course introduces basic artificial intelligence principles including simple representation schemes, problem solving paradigms, constraint propagation, search strategies and learning approaches. Knowledge representation, natural language processing, gaming, machine learning and user modeling will be explored. Students should have written moderately complex computer programs in a high level language.
Computer Science 347, Credits: 3
This course provides basic tools for numerical computation within a scientific context. It focuses on the development and implementation of numerical algorithms and visualization of complex data sets. Numerical methods include roots of nonlinear equations, linear systems, eigenvalue problems, numerical integration, initial value problems, and data fitting. MATLAB is used.
Computer Science 381, Credits: 3
JavaScript is a computer language for adding flexibility and functionality to web pages. A powerful language in its own right, it also has the capability to interact with HTML forms, browsers, Java applets, and other objects found on a web page. Students in this course will gain a thorough understanding of JavaScript, and learn to harness it abilitities to manage windows, forms, events, cookies, etc.
Computer Science 382, Credits: 3
Perl and CGI scripting are key to processing web forms, as well as for automating a wide range of server tasks. Perl is optimized for scanning text files, extracting information and generating reports/web pages based on the results. This course will provide a thorough introduction to the Perl language, with an emphasis on its use in processing web forms. Students will learn to manipulate data, generate dynamic web pages, control email and much more.
Computer Science 412, Credits: 3
A study of general computer system organization and architecture. Comparison of CPU and memory structure, instruction formats, addressing, flow of control and operating systems on different types of computer. Assembly language is used extensively to write system programs.
Computer Science 433, Credits: 3
This course is a survey of algorithms needed for searching, sorting, pattern matching, analyzing graphs, and a variety of other problems of discrete mathematics. Analysis of algorithm efficiency and space/time tradeoffs are discussed.
Computer Science 434, Credits: 3
This course is an introduction to the theory of computation. It discusses finite automata and Turing machines as models of computation. It includes discussions of regular sets, recursive and partially recursive functions, context free grammars, the halting problem, undecidable problems, complexity, and Np-completeness.
Computer Science 451, Credits: 3
This course covers Modern Applied computing which includes programming on new platforms such as mobile devices, network security, wireless networks, data mining and recommender systems, user modeling, human computer interactions. Students will discuss papers or books related to the chosen topic, design and/or develop an application related to the topic.
Computer Science 476, Credits: 3
This course introduces concepts and techniques relevant to the production of large software systems. Students are taught a programming method based on the recognition and description of useful abstractions. Topics include: modularity; specification; data abstraction; object modeling; design patterns; and testing.
Computer Science 481, Credits: 3
This course is intended to introduce students to Web Server software and UNIX and UNIX-like operating systems from the perspective of the System Administratior. Linux, the fastest growing operating system, will be studied in detail, together with the Apache web server. Web server configuration will be studied, including optimization, security issues and vertual server administration. Additional topics will include shell programming, system monitoring, file systems and the X Windows GUI. This course will focus on common system administration duties on the Linux platform. Students will acquire competency in using shell programming skills to automate the maintenance of server activity. Emphasis will be placed on using Linux as an Internet server.
Computer Science 482, Credits: 3
This course will introduce students to MySQL databases and PHP3 scripting on a UNIX platform. Students will create and interact with databases via the web. Topics will include SQL; creating, accessing and updating server-side databases; a variety of database-to-web interface tools; and the PHP embedded scripting language. Transactions with other database products via PHP will also be considered.
Computer Science 490, Credits: 1-3
Variable topics. Group activity oriented presentations emphasizing "hands on" and participatory instructional techniques. Repeatable. Instructor Consent required.
Computer Science 493, Credits: 1-12
S/NC grade basis only.
Computer Science 494, Credits: 2
Variable topics. Group activity. An advanced course of study in a defined subject matter area emphasizing a small group in intense study with a faculty member.
Computer Science 496, Credits: 1-3
Variable topics. Group activity. Not offered regularly in the curriculum but offered on topics selected on the basis of timeliness, need, and interest, and generally in the format of regularly scheduled Catalog offerings. Repeatable. Instructor Consent required.
Computer Science 497, Credits: 1-12
Variable topics.
Computer Science 498, Credits: 1-3
Study of a selected topic or topics under the direction of a faculty member. Repeatable. Department Consent required.
Computer Science 498R, Credits: 1-3
Study of a selected topic or topics under the direction of a faculty member. Repeatable. Department Consent required.