Below is the text from the 2007-2009 course catalog for Computer Science and Computer Information Systems. Also available is a graphic of course prerequisites.
Class Descriptions
Computer Science Courses (CmSc)
110. Understanding Computers and Their Uses.
This course is designed for students with little or no knowledge of computing concepts, terminology, or programming languages. Topics include computer hardware, computer software, and system and application software. Significant "hands-on" experience is provided through laboratory experiences with microcomputer software for word processing, spreadsheet analysis, database processing, electronic mail, and WWW page construction. Three hours.
125. Preview of Computer Science.
This course is a "bird's eye" view of the academic discipline of Computer Science. It is designed to introduce students to the field at the conceptual level without extensive mathematical background or other prerequisites. Breadth-first introductory units of instruction cover such areas as data representation and organization, hardware, software, languages, and the limits of computation. Prerequisite: One of the following: Math 105/105T, Math ACT of 22 or higher, or Math SAT of 530 or higher. Cornerstone 2B. Three hours.
150. Fundamentals of Computing I.
This course introduces students to the fundamental aspects of the computing discipline, focusing on problem-solving and software design concepts and their realization as computer programs. Basic principles of object-oriented program design and implementation are introduced. Topics include the nature and primary features of hardware and software, control structures, structured data types, string processing, and elementary data structures. Programs are implemented using a current object-oriented programming language, which is discussed and demonstrated in lecture and put into practice during lab sessions. Prerequisite: One of the following: Math 105/105T, Math ACT of 22 or higher, or Math SAT of 530 or higher. Cornerstone 2B. Four hours.
155. Fundamentals of Computing II.
This course is a continuation of CmSc 150, and introduces basic data structures (lists, stacks, queues, and trees) and recursive techniques. These structures, along with basic transformations such as search and sorting are introduced as fundamental tools used in the software design process. Additional topics related to the software life cycle are covered. Laboratory exercises are used to guide students through application of the various data structures and transformations to appropriate problems. Prerequisite: Computer Science 150, Fundamentals of Computing I. Four hours.
180. Discrete Mathematics.
This course covers selected topics in discrete mathematics that are essential to the study of computer science. Topics include logic and proofs, sets, relations and functions, algorithms and counting of operations, recursion and recurrence relations, graphs and trees. The course has a programming component to illustrate the discussed topics. Same as Math 180. Three hours. Prerequisite: One of the following: Math 105/105T, Math ACT of 22 or higher, or Math SAT of 530 or higher. Co-requisite: Computer Science 150 Fundamentals of Computing I or permission of instructor.
220. The Social Context of Computing.
This course examines the role of computers and computing professionals in contemporary society. Topics include the history and development of computing, legal issues associated with computing (including the right to privacy, intellectual property rights, and liability), and social/moral issues associated with computing. This course is offered in alternating May Terms. Prerequisite: sophomore standing. Three hours.
250. Introduction to Algorithms and Algorithm Analysis.
This course is an introduction to the fundamental ideas used in algorithm analysis and design, illustrated through a variety of algorithms of practical utility. Topics include efficient searching and sorting algorithms for advanced data structures (hash tables, priority queues, and various tree structures), introduction to graph representation and graph algorithms, and the fundamentals of algorithm analysis and computational complexity. Laboratory exercises are used to demonstrate, compare and contrast the advantages and disadvantages of the examined algorithms. Prerequisites: Computer Science 155: Fundamentals of Computing II, Computer Science 180 Discrete Mathematics, Math 140 Elements of Calculus or Math 151 Calculus I.
255. Introduction to Database Systems.
The focus of this course is database system design and implementation. Current database design techniques are covered including data modeling and normalization. Implementation issues with respect to the relational model are addressed. Coverage of SQL is included as well as the design and implementation of a practical application using a relational database management system. Prerequisite: Computer Science 150, Fundamentals of Computing I or equivalent background. Three hours.
265. Computer Organization.
This course concentrates on the relationship between computing hardware and the execution of software at the machine language level. In addition to the hardware details of input-output, communications and storage devices, the operation of central processing units at the register level is studied in detail. Real world processors and their instruction sets are studied and compared as examples. Students program and employ emulated machine language instruction sets to study machine language and the translation of assembly language into machine language. Prerequisite: Computer Science 150 Fundamentals of Computing I. Three hours.
310. Artificial Intelligence.
This course presents basic topics related to intelligent agents with emphasis on knowledge representation, inference mechanisms and search strategies. Applications in expert systems, natural language understanding, and machine learning will be discussed. Students will be exposed to an AI programming language (Prolog or Lisp). Prerequisite: Computer Science 250 Introduction to Algorithms and Algorithm Analysis. Three hours.
315. Programming Languages.
This course examines the organization of programming languages, and basic issues related to their design and implementation. Topics include language structures and abstraction mechanisms, language translation, major language paradigms -- procedural, functional, object-oriented and logic programming, and techniques which support parallel and distributed computing. The major features of several programming languages will also be discussed. Prerequisites: Computer Science 250 Introduction to Algorithms and Algorithm Analysis. Computer Science 265 Computer Organization recommended. Three hours.
330. Digital Systems.
Students in Digital Systems study introductory solid state electronics, gate circuits, combinational and sequential logic design, and microprocessors. The course includes logic gate families, application of small and medium scale integrated circuits, and microprocessor interfacing. Circuitry is implemented with lab activities and/or computer-based simulations. Prerequisite: Computer Science 265 Computer Organization or permission of instructor. Same as Physics 330 and Engineering 330. Three hours.
335. Operating Systems.
This course covers the basic concepts, structure, and mechanisms of computer operating systems. The course begins with a review of computer hardware concepts, emphasizing topics related to operating system functionality, such as interrupts and memory organization. Hardware concepts for operating system functions, evolution of operating systems, control of processes, principles and problems of concurrency, memory management techniques, scheduling algorithms, input/output and disk scheduling, file management, and security are studied in detail. Several real-world operating systems are used as examples throughout the course. Prerequisite: Computer Science 150 Fundamentals of Computing I and Computer Science 265 Computer Organization. Three hours.
340. Introduction to Networks.
This course of study in computer networks concentrates on typical hardware interfaces, programming methods, and communications protocols. Topics considered in detail include electrical interfaces, data transmission, protocol stacks, data link protocols, local area networks, bridged networks, wide area networks, internetworking, transport protocols, and application support. Prerequisite: Computer Science 155 Fundamentals of Computing II and CmSc 265 Computer Organization. Three hours.
355. Advanced Database Systems.
This course concentrates on advanced database topics. Topics will be selected from data and database administration, transaction management and concurrency control, client/server systems and distributed databases, data warehousing and mining, object-relational databases and web technologies. Prerequisite: Computer Information Systems 255 Introduction to Database Systems. Three hours.
360. Algorithms.
This course presents design techniques for developing efficient algorithms. Students explore several classes of algorithms with respect to the underlying data structures, the design method, and application orientation. Topics to be selected from: dynamic programming, greedy algorithms, advanced data structures that support operations on dynamic sets, advanced graph algorithms, sorting networks, matrix operations, linear programming, string matching, computational geometry, and approximation algorithms for NP-hard problems. Prerequisite: Computer Science 250, Introduction to Algorithms and Algorithm Analysis. Three hours.
365. Theory of Computation.
This course serves as an introduction to the basic theory of Computer Science and formal methods of computation. Topics include automata theory, formal languages and grammars, Turing machines, computability and computational complexity. Prerequisite: Computer Science 250 Introduction to Algorithms and Algorithm Analysis. Three hours. Same as Math 365.
375. Software Engineering.
This course examines the formal process of software development. Topics include the software life cycle, project planning, requirements gathering and analysis, specifications, design paradigms, implementation, various testing strategies, CASE tools, and other current topics. Prerequisites: Computer Science 155 Fundamentals of Computing II and Computer Science/Computer Information Systems 255 Introduction to Database Systems. Three hours.
377. Capstone Research Project.
The research project is one of three capstone experience options for CmSc majors. This option requires that the student work on a significant research project in an area related to one of the department's 300-level offerings (CmSc/CIS 310, 315, 330, 335, 340, 355, 360, 375). This may be a component of an active research project being undertaken by a faculty member in the department, or may be an independent project. Prerequisite: Completion of at least one 300-level CmSc or CIS course, submission of a project proposal, and senior standing. Three hours.
378. Capstone Development Project.
The development project is one of three capstone experience options for CmSc majors. This option requires that the student work on developing a significant piece of software in conjunction with some on-going departmental project or for non-commercial use by a campus entity or other non-profit entity. It is possible for a team of students to work on such a project, upon approval by the sponsoring instructor. Prerequisite: Completion of at least one 300-level CmSc or CIS course (CmSc 375 is highly recommended), submission of a project proposal, and senior standing. Three hours.
379. Capstone Sponsored Practicum.
The sponsored practicum is one of three capstone experience options for CmSc majors. This option requires that the student work on a significant development project as part of an internship. The proposal for this project must include a statement from the internship supervisor regarding the role of the student in the project. Prerequisite: Completion of at least one 300-level CmSc or CIS course (CmSc 375 is highly recommended), submission of a project proposal, and senior standing. Three hours.
Computer Information Systems Courses (CIS)
135. Management Information Systems.
This course examines how information technology and information systems are used to increase productivity and quality. Topics include an introduction to computer hardware and data communication technology, productivity and data management software, and business applications of the technology. Laboratories emphasize spreadsheet and database management software as tools for business decision-making. Cornerstone 2B. Three hours
145 XX. Programming Language: An Introduction.
This course provides an introduction to the fundamentals of vocabulary, syntax, style, and capabilities of a specific language such as C++, Java, Visual Basic, or C#. Course offerings will be determined by need and interest of students. No prerequisites. Three hours.
205. Decision Support Systems for Management.
Computer-based systems for management decision making are studied. Students learn how to enhance decision making using spreadsheet and database management software. Laboratory experiences provide hands-on introductions to advanced spreadsheet techniques and tools and data retrieval methods used in decision support systems. Prerequisite: CIS 135, Management Information Systems or permission of instructor. Three hours.
255. Introduction to Database Systems.
The focus of this course is database system design and implementation. Current database design techniques are covered including data modeling and normalization. Implementation issues with respect to the relational model are addressed as well. Coverage of SQL is included as well as the design and implementation of a practical application using a relational database management system. Prerequisite: Computer Science 150, Fundamentals of Computing I or equivalent background. Three hours.
260 XX. Programming Language.
This course is intended for students or professionals who already have experience with at least one high-level object-oriented programming language at the level of CmSc 150. It provides students with the knowledge and skills one needs to develop applications in a specific programming language such as Visual Basic, C#, Java, C++, Cobol, or SQL. The course focuses on the key aspects of the specific language including methods and classes, selection and repetition, arrays and collections, file management techniques, inheritance, debugging and exception handling. Other topics, depending upon the language, may include windows forms, database access, event-driven programming, Java applets, SQL query development and triggers. Prerequisite: Computer Science 150 Fundamentals of Computing I or equivalent experience. Three hours.
270. Web Development.
This course provides students with the knowledge and skills necessary to develop Web applications by using Web development tools and technologies such as ASP.NET, JavaServer Pages, Java Servlets, JavasScript, and Perl. Various aspects of web applications and services will be covered. Practical development issues such as debugging, deployment, security, scalability, performance and availability will also be discussed. Prerequisite: Computer Science 150 Fundamentals of Computing I and Computer Information Systems 255 Introduction to Database Systems or equivalent experience. Three hours.
300. Project Management.
This course covers concepts and issues important in effectively managing projects. Topics include starting up a project, managing the scope, time lines, cost, quality, people, communications, risk, and procurement. The project management methods taught are suitable for a wide variety of project types such as software development or business projects. Project management software will be used to provide students with hands-on experience in a business environment. Prerequisite: Computer Science 150 Fundamentals of Computing I or Management 131 Management Concepts. Three hours. Same as Management 300.
355. Advanced Database Systems.
This course concentrates on advanced database topics. Topics will be selected from data and database administration, transaction management and concurrency control, client/server systems and distributed databases, data warehousing and mining, object-relational databases and web technologies. Prerequisite: Computer Information Systems 255 Introduction to Database Systems. Three hours.
377. Capstone Research Project.
The research project is one of three capstone experience options for CIS majors. This option requires that the student work on a significant research project in an area related to one of the department's 300-level offerings (CIS/CmSc 310, 315, 330, 335, 340, 355, 360, 375). This may be a component of an active research project being undertaken by a faculty member in the department, or may be an independent project. Prerequisite: Completion of at least one 300-level CmSc or CIS course, submission of a project proposal, and senior standing. Three hours.
378. Capstone Development Project.
The development project is one of three capstone experience options for CIS majors. This option requires that the student work on developing a significant piece of software in conjunction with some on-going departmental project or for non-commercial use by a campus entity or other non-profit entity. It is possible for a team of students to work on such a project, pending approval by the sponsoring instructor. Prerequisite: Completion of at least one 300-level CmSc or CIS course (CmSc 375 and CIS 355 are highly recommended), submission of a project proposal, and senior standing. Three hours.
379. Capstone Sponsored Practicum.
The sponsored practicum is one of three capstone experience options for CIS majors. This option requires that the student work on a significant development project as part of an internship. The proposal for this project must include a statement from the internship supervisor regarding the role of the student in the project. Prerequisite: Completion of at least one 300-level CmSc or CIS course (CmSc 375 is highly recommended), submission of a project proposal, and senior standing. Three hours.