The computer science major requires 45 credits, which must include the following five courses:
111 Principles of Computer Science I
112 Principles of Computer Science II
251 Computer Organization
256 Data Structures
275 Algorithms
Students also must take five computer science courses numbered above 300. In addition, Finite Mathematics (MATH 107) OR Discrete Structures (MATH 121), and Senior Seminar (CSCI 400 for 1 credit) are required.
A minor consists of Computer Science 111, 112, three additional Computer Science courses numbered above 200, and either MATH 107 OR MATH 121.
A student majoring in Computer Science and planning to attend graduate school should take additional mathematics courses such as Calculus I, Calculus II, and Linear Algebra, and consider minoring in Mathematics. A student majoring in Computer Science and considering an industrial career is strongly advised to consider minoring in the Entrepreneurial Studies in the Natural Sciences Program (ESNS).
Computer Science Courses
110 Computer Programming 4 credits
An introduction to the art and science of computer programming for the student without previous programming experience. Topics covered include the historical development of computing, the basic operating principles of computers, and an introduction to problem-solving using one or more high level computing languages, such as Javascript. HTML and Web programming also are introduced.
Prerequisite:
111 Principles of Computer Science I 4 credits
A study of the fundamentals of writing computer programs and problem solving, using structured and object-oriented techniques.
Prerequisite:
112 Principles of Computer Science II 4 credits
The emphasis of this course is on problem-solving. Students will mature as problem solvers as they are presented with increasingly challenging problems to program. In addition, topics will be covered in more depth in later courses.
Prerequisite:
CSCI 111.
251 Computer Organization 4 credits
A study of the logical organization of computers, including combinatorial and sequential digital logic, computer arithmetic, and circuits. Machine and assembly languages, memory, addressing techniques, interrupts, and input-output processing also are studied.
Prerequisite:
CSCI 112.
256 Data Structures and Algorithms 4 credits
An examination of advanced programming techniques for problem-solving and manipulating data using primarily object-oriented approaches.
Prerequisite:
CSCI 112.
271 Topics in Computer Science 1-4 credits
A course of variable content on topics not covered in other courses offered by the department. Possible topics may include artificial intelligence, computer graphics, functional programming, human-computer interaction, object-oriented programming, and other advanced topics in computer science.
Prerequisite:
275 Algorithm Analysis 4 credits
This course studies various problem-solving strategies and examines the classification,design,complexity, and efficiency of algorithms.
Prerequisite:
CSCI 256 & (MATH 107 OR MATH 121).
305 Object-Oriented Programming 4 credits
An introduction to object-oriented design techniques including encapsulation, inheritance, and polymorphism. Other features of modern object-oriented programming languages are covered as well, including exception handling, garbage collection, event handling, and threads. A modern object-oriented language such as Java will be used.
Prerequisite:
CSCI 112.
321 Computing Paradigms 4 credits
A survey of language-design issues and run-time behavior of several programming languages suitable for different problem-solving paradigms (structured, functional, object oriented).
Prerequisite:
CSCI 256.
341 Database Design and Management 4 credits
An introduction to database methods including data models (relational, object oriented, network, and hierarchical); database design and modeling; implementation and accessing methods; and SQL. Students will design and implement a database using a database management system.
Prerequisite:
CSCI 112.
345 Computer System Administration 4 credits
The examination of the administration of Windows NT and Linux (a version of Unix) Operating systems. Topics covered include installation, mail services, administering users, disk space, peripherals, backups, maintenance, security, and intercomputer communications. Special schedule.
Prerequisite:
CSCI 111.
360 Networking and Telecommunications 4 credits
An examination of data communications and communications networks including signal
encoding, multiplexing, circuit and packet-switched networks, TCP/IP, WANs, LANs,
and intranets.
Prerequisite:
CSCI 112.
373 Operating Systems 4 credits
A study of the basic components and concepts of a multitasking operating system including processes; scheduling; resource management; I/O and file systems; virtual memory; security; and semaphores.
Prerequisite:
CSCI 251.
400 Senior Seminar 1 credits
Students review and discuss current issues and trends in Computer Science.
Prerequisite:
Senior standing.
435 Software Design and Development 4 credits
An examination of the software development process from analysis through maintenance using both structured and object oriented methods. Students conduct a team project.
Prerequisite:
CSCI 256.
450 Independent Study 2-4 credits
Independent study in a topic of interest in computer science that does not duplicate any other course in the regular course offerings.
Prerequisite:
CSCI 256.
465 Computer Architecture 4 credits
Students examine various computer architectures including the von Neuman mode, RISC/CISC, and parallel architectures.
Prerequisite:
CSCI 251.
471 Topics in Computer Science 1-4 credits
A course of variable content on topics not covered in other courses offered by the department. Possible topics may include artificial intelligence, computer graphics, functional programming, human-computer interaction, object oriented programming, and other advanced topics in computer science.
481 Foundations of Computer Science 4 credits
This course examines various models of computation, including finite and pushdown automata and recursive functions. Language grammars, parsing, and complexity classes also are studied. Special schedule.
Prerequisite:
CSCI 275.