

Students studying computer science at Carthage take courses in discrete structures, calculus, programming, database design and management, software design and development, data structures and algorithms, and computer organization.
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.
A study of the fundamentals of writing computer programs and problem-solving, using structured and object-oriented techniques.
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.
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.
An examination of advanced programming techniques for problem-solving and manipulating data using primarily object-oriented approaches.
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.
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.
A survey of language-design issues and run-time behavior of several programming languages suitable for different problem-solving paradigms (structured, functional, object oriented).
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.
A practical development of principles and technologies for the administration of computer networks. Topics covered include installation, mail services, administering users, disk space, peripherals, backups, maintenance, security, and intercomputer communications. Special schedule.
This course explores the primary approaches for developing computer programs that display characteristics that we would think of as being intelligent. Students will analyze how intelligent systems are developed and implemented with a focus on exploring how human behavior on cognitive tasks can be used to inform the development of these artificial systems, as well as how the performance and behavior of these artificial systems can inform our understanding of human cognition.
An examination of data communications and communications networks including signal encoding, multiplexing, circuit and packet-switched networks, TCP/IP, WANs, LANs, and intranets.
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.
This course studies various problem-solving strategies and examines the classification, design, complexity, and efficiency of algorithms.
Students review and discuss current issues and trends in Computer Science.
An examination of the software development process from analysis through maintenance using both structured and object oriented methods. Students conduct a team project.
Independent study in a topic of interest in computer science that does not duplicate any other course in the regular course offerings.
Students examine various computer architectures including the von Neuman mode, RISC/CISC, and parallel architectures.
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.
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.
An opportunity to conduct research in computer science, culminating in a research paper.

Art Meets Biology. Students photograph biodiversity in Tucson, Ariz.

A special month-long period of study in January to experiment, create and dream. Read more ...