Undergraduate Computer Science
2019 Fall Term
- This course listing is informational and does not guarantee availability for registration.
- Please click through to view the class schedule to see sections offered for your selected term.
- Sections may be full or not open for registration. Please use WINS if you wish to register for a course.
Computer Science 162
A thorough introduction to commonly used computer applications, covering word processing, spreadsheets, data storage and retrieval, and presentation software. Students will learn the vocabulary of computing, the concepts of computing and problem solving, and how computer applications can be applied to a wide range of problems.
INTRODUCTION TO PYTHON PROGRAMMING
Computer Science 170
An introduction to computational thinking and computer programming using the Python language, with applications in science, business, education, and other areas. Students will develop structured programs based on simple algorithms that involve input, output, mathematical operations, decisions, and loops. No previous programming experience is needed.
INTRODUCTION TO JAVA (GM)
Computer Science 172
This course teaches the essentials of object-oriented programming in Java. Students will learn to formulate algorithms, solve problems, and implement those solutions with a Java program that employs objects and classes. Students will be introduced to object-oriented design, class construction, methods and message passing, arrays, string processing, and file processing.
INTRODUCTION TO C++ (GM)
Computer Science 174
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 using value and reference parameters, arrays, classes, and objects. Students will write moderately complex applications using C++.
DATA SCIENCE FOR EVERYONE
Computer Science 180
An introduction to data science and its implementation using the R language, with applications in natural and social science, public health and welfare, and other areas. Students will explore methods of data analysis and visualization and cultivate marketable data-literacy skills. No prior knowledge of statistics or programming is needed.
INTRODUCTION TO DATABASE AND THE WEB
Computer Science 181
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 215
The course offers a formal approach to the mathematics of Computer Science, including set theory, methods of proof, propositional logic, discrete probability, sequences, recurrence relations, introduction to graphs, and algorithmic analysis.
Computer Science 220
This course teaches more advanced topics in object-oriented program design and the Java programming language. Coverage includes multi-dimensional arrays, methods, error handling, strings, regular expressions, encapsulation, inheritance, polymorphism, generic types, program debugging and testing, database and file processing, event-handling, and graphical user interfaces.
Computer Science 222
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++.
Computer Science 223
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 structures and object-oriented design techniques, including inheritance and polymorphism, are applied to develop larger projects.
Computer Science 271
This course covers the use of an assembly language based on the RISC processor architecture including writing, linking, and executing a program. Also covered are number systems, instructions for arithmetic and logical operations, memory access, loops, declaring variables, interrupts, machine language, segments, stacks, procedure writing, and file handling.
INTERMEDIATE DATA SCIENCE
Computer Science 310
This course introduces intermediate data science and its implementation using R and Python, with applications in natural and social science, public health and welfare, and other areas. Students will explore methods of data analysis, cleaning, simulation and visualization and machine learning. Prior knowledge of programming and statistical analysis is assumed.
CONCEPTS OF PROGRAMMING LANGUAGES
Computer Science 320
An exploration of the core concepts upon which all programming languages are built. Students will apply these concepts to write programs in several specialized programming languages, including functional and logic programming languages. Emphasis is placed upon evaluating the strengths and weaknesses of particular languages for various tasks.
INTRODUCTION TO ARTIFICIAL INTELLIGENCE
Computer Science 332
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.
CYBERSECURITY LAW AND POLICY
Computer Science 353
This course will provide students exposure to the key legal and policy issues related to cybersecurity. It includes such topics as data security laws and enforcement actions, cybersecurity litigation, anti-hacking laws, cybersecurity and corporate governance, privacy law, the Fourth Amendment, surveillance, and international cybersecurity law.
DATABASE MANAGEMENT SYSTEMS
Computer Science 366
This course offers an introduction to the design and programming of databases and the implementation of database management systems from a computer science perspective. Contents include the relational model; SQL; database application development; and concepts and algorithms for building database management systems.
Computer Science 381
Computer Science 382
Server-side scripting is key to processing web forms, as well as for automating a wide range of server tasks. This course will provide a thorough introduction to the Server-side scripting languages. Students will learn to create a data-driven web application that uses Structured Query Language (SQL) to access and update the information in a database.
COMPUTER ORGANIZATION AND SYSTEM PROGRAMMING
Computer Science 412
Introduction to organization of modern digital computers - understanding the various components of a computer and their interrelationships. Study of systems programming in C/Linux.
THEORY OF ALGORITHMS
Computer Science 433
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.
CRYPTOGRAPHY AND NETWORK SECURITY
Computer Science 455
This course covers the fundamental cryptographic algorithms and security protocols for computer networks. Topics include security attacks and security services, classical ciphers, modern block and stream ciphers, public key cryptography, digital signatures, key management and distribution, authentication, and security network protocols. The class involves a significant amount of programming projects and assignments about cipher algorithms and security protocols.
Computer Science 476
This capstone course introduces concepts and techniques relevant to the production of large software systems. Topics include: modularity; specification; data abstraction; object modeling; design patterns; and testing. Students work in groups to complete a significant software development project using concepts taught in this course and in prior Computer Science courses.
WEB SERVER AND UNIX ADMINISTRATION
Computer Science 481
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.
INTERNSHIP IN COMPUTER SCIENCE
Computer Science 493
S/NC grade basis only.
INDEPENDENT STUDY IN COMPUTER SCIENCE
Computer Science 498
Study of a selected topic or topics under the direction of a faculty member. Repeatable. Department Consent required.