Computer Science Courses
For course schedules, instructors, and locations, useCapstone.
Contents
-
Computer Science Courses
- CSI 101: Introduction to Computers
- CSI 110: Computer Science I (G)
- CSI 111: Computer Science II (G)
- CSI 181: Special Topics: Elementary Robotics (G)
- CSI 182: Special Topics: Game Programming (G)
- CSI 210: Software Engineering (W)
- CSI 220: Data Structures and Algorithms
- CSI 240: Computer Organization
- CSI 305: Database Systems
- CSI 310: Theory of Programming Languages
- CSI 320: Theory of Computation
- CSI 326: Artificial Intelligence
- CSI 340: Compiler Design
- CSI 345: GUI and Web Programming
- CSI 350: Operating Systems
- CSI 355: Data Communications and Networks
- CSI 370: Computer Science Seminar (W)
CSI 101: Introduction to Computers
An introduction to general concepts of computer science and electronic data processing using modern desktop and networked computers. Topics include computer hardware, applications such as spreadsheets, graphics, presentation, and file transfer software, as well as the history of computers. The development of interactive Web pages using HTML and JavaScript is also covered. This course does not satisfy a major or minor requirement.
CSI 110: Computer Science I (G)
The design, construction, and verification of computer programs using an object-oriented programming language. Topics include algorithm development and design techniques, control structures, and data types. Four class hours per week.
Meets general academic requirement G
CSI 111: Computer Science II (G)
A continuation of CSI 110 Computer Science I. Emphasis is placed on programming methodology, fundamental data structures (stacks, queues, linked lists, trees) and their implementation, searching, sorting, pointers, and recursion. Four class hours per week.
Prerequisite: CSI 110 Computer Science I
Meets general academic requirement G
CSI 181: Special Topics: Elementary Robotics (G)
A lab-based introduction to the world of robotics. Mobile robots controlled over wireless communications links are used to investigate basic concepts in both robotics and computing. Students will learn how to control the movement of a robot through its world. This includes sensing surroundings and making decisions on how to modify behaviors to attain prescribed goals. The course is intended for those with no prior experience in computer science, but with a desire to hone problem solving and computing skills with a focus on robotics.
CSI 182: Special Topics: Game Programming (G)
An introductory course on the programming of computer games. Emphasis is given to the creation of arcade style games incorporating animation, user interaction, and sound effects. Students learn to use game development, audio, and image manipulation software in designing and constructing their games. The course is intended for those with no prior experience in computer science, but with a desire to hone problem solving and computing skills with a focus on game programming.
CSI 210: Software Engineering (W)
A project-based study of the theory, practice, processes, and tools used to design, build, and maintain large software systems. Topics include requirements analysis, system architecture, design, testing, maintenance, and project management, as well as professional practice, risks, intellectual property, and social impact of computing.
Prerequisite: CSI 111 Computer Science II
CSI 220: Data Structures and Algorithms
A study of the use and implementation of various structures for storing data. Topics include abstract data types, lists, trees, B-trees, graphs, recursion, and the analysis and measurement of algorithms.
Prerequisite: CSI 111 Computer Science II and MTH 215 Discrete Structures
CSI 240: Computer Organization
An introduction to the architecture and operation of a computer system. Topics include assembly language programming, addressing methods, subroutines, microcode, assemblers and linkers.
Prerequisite: CSI 110 Computer Science I
CSI 305: Database Systems
An introduction to databases with emphasis on the relational model. Topics covered include B+ Trees, relational database design, ER diagrams, relational algebra, structured query language (SQL), embedded queries in procedural languages, and database implementation. Offered in alternate years.
Prerequisite: CSI 220 Data Structures and Algorithms
CSI 310: Theory of Programming Languages
A study of the principles that govern the design and implementation of contemporary programming languages. Topics include lexical properties, compilers, interpreters, data structures, control structures, parameter passage, and run-time environments. Procedural, functional, object oriented, and logic programming languages will be considered. Offered in alternate years.
Prerequisite: CSI 220 Data Structures and Algorithms
CSI 320: Theory of Computation
A study of the basic theoretical principles of Computer Science. Topics include finite automata, pushdown automata, regular expressions, Turing machines, the halting problem, unsolvability, and computational complexity. Offered in alternate years.
Prerequisite: CSI 220 Data Structures and Algorithms
CSI 326: Artificial Intelligence
An introduction to the topics of Artificial Intelligence; intelligent agents, search, logic, planning, learning, natural language processing, vision, robotics. Students will write programs in Lisp and Prolog. Offered in alternate years.
Prerequisite: CSI 220 Data Structures and Algorithms
CSI 340: Compiler Design
An introduction to the principles of compiler design. Topics include LL(k) and LR(k) languages, code generation, optimization, and error recovery. Offered in alternate years.
Prerequisite: CSI 220 Data Structures and Algorithms and CSI 240 Computer Organization
CSI 345: GUI and Web Programming
The tools and techniques used to create computer programs that have graphical user interfaces (GUIs). Emphasis is placed on applications that make use of the World Wide Web. Topics will include XHTML, JavaScript, Java servlets, and CGI programming. Offered in alternate years.
Prerequisite: CSI 220 Data Structures and Algorithms
CSI 350: Operating Systems
An introduction to the management of processes, memory, and I/O devices in a multiprogramming environment. Topics include file systems, resource sharing, scheduling, interrupts, and concurrency. Offered in alternate years.
Prerequisite: CSI 220 Data Structures and Algorithms, CSI 240 Computer Organization, and MTH 121 Calculus I
CSI 355: Data Communications and Networks
The concepts and techniques used to implement communications using computer networks. Topics include: the ISO network model, protocols, direct link networks, packet switching, and the Internet. Offered in alternate years.
Prerequisite: CSI 220 Data Structures and Algorithms, CSI 240 Computer Organization, and MTH 121 Calculus I
CSI 370: Computer Science Seminar (W)
Advanced study of selected topics in computer science. Students will also work in teams on a significant software project.
Prerequisite: CSI 210 Software Engineering, CSI 220 Data Structures and Algorithms, and CSI 240 Computer Organization, or by permission
