- CSCI 115 - Introduction to Computers and Computing (4)
An introduction to problem solving with computers. Tools for problem solving include the Alice 3D Authoring System, Adobe Flash and ActionScript, and a graphical application building environment, such as Visual Basic for Applications.
- CSCI 151 - Object Oriented Programming (4) (Same as: MAT+868.)
Designing, writing, and testing structured computer programs. Decomposing problems; writing function definitions; conditional and iterative control constructs; using class libraries. Problem-solving through programming with classes and vectors; algorithm correctness; recursion. Java will be the language of instruction. Meets: three times weekly for 65 minutes plus once a week for a 75 minute laboratory.
Offered: every semester.
Prerequisite: C- or better in CSCI 115 or CSCI 117.
- CSCI 210 - Human Interaction with Technology and Information (4)
A study of how people perceive technology and the ways in which they consume and create information. An introduction to the practice of designing technology with careful consideration for its users. No programming experience is required prior to taking this course. Meets: weekly for at least 150 minutes.
Offered: fall and spring semesters.
- CSCI 220 - Discrete Mathematics for Computer Science (4)
Mathematics central to the study of computer science. Topics include: set theory, logic, induction, combinatorics, number theory, graph theory, sequences and series, matrices, and recurrence relations.
Offered: fall semester.
Prerequisite: C- or better in CSCI 115.
- CSCI 230 - Data Structures (4)
Introduction to the study of abstract data types and the analysis of algorithms. Students will write Java applications using data structures such as linked lists, stacks, queues, multidimensional arrays, trees, sets, maps, and heaps.
Offered: spring semester.
Prerequisite: C- or better in CSCI 151.
- CSCI 320 - Systems Programming and Tools (4)
Development of software in the C programming language. User-functionality of the UNIX operating system. Architecture of the UNIX operating system from a programmer's perspective. Machine-level representation of data; assembly-level machine organization. Tools for large-scale software engineering including integrated development environments and code versioning systems.
Prerequisite: C- or better in CSCI 151.
- CSCI 325 - Operating Systems (4)
The fundamentals of operating systems design and implementation. Basic structure; synchronization and communication mechanisms; implementation of processes, process management, scheduling, and protection; memory organization and management; file systems; machine-level representation of data; assembly-level machine organization; functional organization of computers.
Offered: fall semester in even-numbered years.
Prerequisite: C- or better in CSCI 320.
- CSCI 330 - Information Management (4)
Theory and practice of information storage, management and retrieval, emphasizing relational database management systems. Case studies of small-scale (personal computing) and large-scale (corporate records on distributed systems) applications. Data modeling, database design and management, query processing, data integrity, and security. Legal and social contexts of data management; the responsibility of professionals to understand requirements, risks, and liabilities.
Prerequisite: C- or better in CSCI 151 and CSCI 210.
- CSCI 340 - Software Engineering (4)
Software design; using APIs; software tools and environments; software processes; software requirements and specifications; software validation; software evolution; software project management; methods and tools of working in teams; social context of computing; professional and ethical responsibilities; risks and liabilities of computer-based systems.
Prerequisite: C- or better in MATH 117, CSCI 210, and CSCI 320.
- CSCI 350 - Net-centric Computing (4)
Communication and networking; the social context of computing; intellectual property; network security; the web as an example of client-server computing; building web applications; network management; compression and decompression; wireless and mobile computing; virtual machines; knowledge representation and reasoning. Meets: weekly for at least 150 minutes.
Prerequisite: CSCI 220 and C- or better in MATH 117, CSCI 210, and CSCI 320.
- CSCI 370 - Algorithm Analysis and Computability (4)
Methods for the analysis of time and space efficiency, comparison of brute-force algorithms with divide-and-conquer algorithms, tree algorithms, graph algorithms, string algorithms, dynamic programming, and greedy methods. An introduction to NP-completeness and intractability. Turing machines, Church's thesis, determinism and non-determinism, unsolvability and reducibility. Search and constraint satisfaction.
Offered: spring semester.
Prerequisite: C- or better in CSCI 230 and C- or better in CSCI 220.
- CSCI 400 - Applications of Computing to Other Disciplines (4)
Much of computer science is practiced through application of computing to other disciplines. In this capstone course, the instructor and students will develop a software solution to a problem arising in another field. Application areas include, but are not limited to finance, economics, biology, and law. We will explore strategies for learning in and contributing to inter-disciplinary teams, customer-client communication; software design, requirements, specification, and project management. Meets weekly for at least 150 minutes.
Prerequisite: CSCI 220, CSCI 230, and C- or better in MATH 117, CSCI 210, and CSCI 320.
- MATH 117 - Introductory Statistics (4) (Same as: MAT+861.)
This course is designed to enable you to use statistics for data analysis and to understand the use of statistics in the media. The course makes use of SPSS, a widely-used statistics package for the computer. Course topics include graphical and tabular presentation of data, measures of central tendency, dispersion, and shape, linear transformations of data, correlation, regression, basic probability and the normal probability model, sampling, t-tests, and one-way analysis of variance.
Offered: every semester.