Computer Science Course Description
Courses offered on a Pass/No Credit Only or Grade Only basis are so designated. All courses in the major, minor, options, concentrations and licensures must be taken on a Grade Only basis except Internships and Practicums. The P/NC option is available to non-majors unless otherwise noted.
110 - Computers in a Global Society - 3 S.H. To help understand the societal implications of computer technology, this course exposes students to some of the basic scientific foundations of computer technology. This includes addressing such questions as: What happens when you hit a "submit" button on a Web form? What is going on when you "download" a file? How does a Web-search happen? Based on this technical perspective, the course looks at the role technology plays in the United States, as well as its effect on nations and cultures all over the world. The impact and significance of the information age is explored in several different contexts including economic, political, cultural, legal, environmental, historical, ergonomic, and psychological.
115 - Computer Systems and Internet Technology - 3 S.H. This course provides students with a broad overview of the principles of, and effective strategies for, navigating computer systems, servers and the Internet. Topics include file maintenance; operating systems; general applications (word processors, spread sheets, electronic presentations, databases); web-based applications; security; and multimedia. Emphasis will be placed on navigating systems in safe and effective ways as well as maintaining personal systems (desktops or laptops). Course does not count for major elective credit.
116 - Web Technology - 3 S.H. An introductory, hands-on course on internet web site development. The emphasis is for students to develop competence using web authoring tools and tools for incorporating multimedia into a web page in order to build a complex web site focused on some area of academic interest. Students will learn how to plan and publish web sites and develop electronic portfolios that are exciting, efficient, accessible, and well-designed. Students will gain insight into the technology behind the World Wide Web by working with the HTML web markup language and the Javascript web programming language. No prior programming experience is necessary for this course.
130 - Introduction to BASIC Programming - 3 S.H. An introductory course in computer programming utilizing the VISUAL BASIC language. Intended for students in the life and social sciences, business, psychology and other disciplines. Covers file processing and other related tools.
150 - An Overview of Computer Science - 3 S.H. Course is designed for CS majors and non-majors who desire a survey of the field of computer science. After a brief history of the development of computers, students are introduced to such fundamental issues as problem-solving, algorithm design, representation and analysis, hardware design, computer organization, machine and assembly language, system software, software design and analysis, language models, and models of computation. Prerequisite: qualifying score on the mathematics placement exam or MATH 050.
234 - Algorithms and Problem Solving I - 4 S.H. An introduction to the major concepts of algorithm design and problem solving. Emphasis is on algorithm development, analysis and refinement. Programming strategies and elements of programming also are covered. Various practical applications of problem-solving are demonstrated. Includes formal labs. Prerequisite: qualifying score on the math placement test or MATH 120 or MATH 150.
235 - Algorithms I Companion - 1 S.H. Course reinforces students' algorithm design and programming skills in the context of CS 234, Algorithms and Problem Solving I. Intended to be taken concurrently with CS 234, students' work on problems directly related to topics introduced in that course. Prerequisite: concurrent enrollment in CS 234 or instructor's permission. Pass/No Credit only.
250 - Algorithms and Problem Solving II - 4 S.H. A continuation of the problem solving and programming concepts introduced in CS 234. Applies the basic principles of software engineering to more complex problems. Topics include recursive problem solving, searching, sorting, and dynamic structures. Includes formal labs. Prerequisites: CS 234.
251 - Algorithms II Companion - 1 S.H. Course reinforces students' algorithms design and programming skills in the context of CS 250, Algorithms and Problem Solving II. Intended to be taken concurrently with CS 250 students' work on problems directly related to topics introduced in that course. Prerequisite: concurrent enrollment in CS 250 or instructor's permission. Pass/No Credit only.
275 - Mathematical Foundations of Algorithms - 4 S.H. CS/MATH 275. The formal study of the mathematical foundations of algorithms. This course provides students with an algorithm-based introduction to discrete mathematical structures and their application to computer science. Topics include symbolic logic, set theory, functions, relations, counting methods, proof techniques, induction, recursive definitions, recurrence relations, and elementary graph theory. Applications include formal specifications, correctness proofs, and algorithm complexity. Prerequisites: CS 234 and either MATH 140 or MATH 160.
295 - Computer Technology Project - 3 S.H. This course gives students an opportunity to apply their computer technology knowledge to a project directly related to their major. Students will design and implement their own projects; however, the projects must be relevant to specific course content in the student’s major. Students will learn how to develop functional requirements, solution designs, implementation time-lines, and maintenance plans for their project. Projects must be pre-approved by both the course instructor and a faculty member in the student’s major department. Final presentations of all projects will be part of the course. Prerequisites: CS 110, CS 115, CS 116, and either CS 130 or 150, and approved 300- or 400-level course in student’s major.
299 - Special Topics - 1-3 S.H. This course is intended to treat "special" topics at the sophomore level. This course will be offered in response to requests from local groups or industry. This course may not be used to meet major or minor requirements. (May be repeated for credit.) Prerequisite: instructor's permission.
310 - Social Implications of Computing - 3 S.H. Course provides an overview of the societal and ethical issues surrounding computer technology and involves students in discussions about the social implications of this technology. Primary topics include professional ethics, privacy, intellectual property, computer and network security, computer reliability, work and wealth, and the societal impacts of computing, networking, and information storage and retrieval. Although the course is not a programming course, topics will be covered at a level that requires understanding of computer programming. The course will involve extensive reading, writing, and discussion. Prerequisite: CS 250 and ENGL 111.
313 - Networking and Telecommunications - 3 S.H. This course studies telecommunications and computer networks. It begins by discussing data communications, computer interfaces, transmission media and error detection and correction. Wide area, metropolitan and local area networks are studied in the context of the International Standards Organization/OSI Model. Emphasis is placed on the physical, data link, network, transport and session layers. Prerequisites: CS 250 and one 300-level CS course.
341 - Data Structures - 3 S.H. A detailed study of more advanced data structures and algorithms, including concepts and techniques of design efficiency and complexity of algorithms and their lower bounds. Topics include search trees, hash functions, string searching, disjoint sets, internal and external sorting, graphs and graph algorithms, and different algorithm design technique. (Math-Logic Critical Analysis Flag) Prerequisite: CS 250 and CS 275.
344 - Introduction to Web Programming - 3 S.H. Focus of course is on the fundamentals of the Web as a computer system, and the components used in developing client-side Web-based applications. Topics include markup languages (HTML and its variants), scripting languages (e.g., JavaScript, Perl, PHP), applets including security and digital signatures, multimedia content, animation, and usability issues. In addition, the course will provide an overview of web history, web architecture, search engines, and web security. Students will develop a number of Web pages and programs throughout the course and work with a team to develop an integrated, interactive web site. Prerequisite: CS 250 or permission of instructor.
368 - Introduction to Bioinformatics - 3 S.H. This course introduces students to the fundamental concepts of bioinformatics. Topics include introduction to DNA machinery and informatics, pairwise sequence alignments, bioinformatics programming, bioinformatics tools and database searches, genomics and proteomics, and introduction to DNA microarray analysis. Prerequisite: CS 250 and BIOL 241.
369 - Spatial Information Processing - 3 S.H. An introductory course on spatial data processing. The emphasis is for students to understand the major phases of the spatial information processing cycle, including selecting an appropriate algorithm, collecting and analyzing data, and presenting the results. Applications of information technology in the fields of geographic information processing and/or bioengineering will be examined. Prerequisite: CS 250 and MATH 160 or permission of instructor.
375 - Computer Systems - 4 S.H. This course is an overview of the hardware and software of computer systems. Topics include computer organization and computer architecture, data representation, assembly language, memory systems, operating systems, networking and security, run-time environments, and advanced topics such as RISC vs. CISC, non von Neumann architectures, and Java virtual machine. Prerequisite: CS 250.
385 - Applied Database Management Systems - 3 S.H. A study of basic Database Management Systems (DBMS) concepts. Topics include DBMS Models -- Relational and object-oriented; study of query languages; study of exiting DBMS; and data integrity, recovery, and concurrency control. (Writing Flag) Prerequisite: CS 250 and ENG 111.
395 - Community-Based Computer Technology Project - 3 S.H. In addition to the requirements of CS 295, this course requires a community-based focus to the project. Students will choose a community organization (with assistance of the course instructor as needed) and complete a computer technology project developed in cooperation with their site supervisor and the course instructor. It is expected that students will spend time volunteering at their site during the semester. Prerequisites: CS 110, CS 115, CS 116, and either CS 130 or 150, and approved 300- or 400-level course in student’s major.
399 - Special Topics - 1-3 S.H. This course is intended to treat "special" topics at the junior level. It is anticipated that this course will be offered in response to requests from local groups or industry. This course may not be used to meet major or minor requirements. (May be repeated for credit.) Prerequisite: instructor's permission.
405 - Operating Systems - 3 S.H. Study of the principles and design techniques of operating systems. Topics include concurrent processes, scheduling, deadlocks, memory management, file and directory organizations and protection/security. Prerequisite: CS 341 and CS 375.
410 - Software Engineering - 3 S.H. The course deals with the current trends of software engineering principles and techniques for methodical construction of large, complex software-intensive systems. It follows the software life cycle from the requirement, specification, design, and testing phases. Topics include software process, project management, quality assurance, configuration management, formal specification techniques, design methodologies, testing and validation techniques, and object-oriented methodologies. Students are involved in a team project utilizing software engineering principles. (Writing Flag) Prerequisites: CS 341 and ENG 111.
411 - Software Testing - 3 S.H. An introduction to various software testing techniques and analysis which has a sound theoretical basis. Class discussion will include software testing fundamentals and techniques for software test case design. Software testing methods such as functional testing, structural testing, mutation testing, and integration and system testing, including object-oriented software testing will be presented. (Oral Flag) Prerequisite: CS 410 and CMST 191.
413 - Advanced Networking and Telecommunications - 3 S.H. Advanced topics in computer networking and telecommunications are studied. Emphasis is on the Transport and Application levels of the OSI Model. Course emphasizes a networking lab. Students gain experience with a protocol stack such as TCP/IP or OSI. Prerequisite: CS 313 and CS 375.
415 - Principles of Programming Languages - 3 S.H. A study of the principles of design and implementation of higher-level programming languages. Topics include syntax, semantics, implementation issues, and specific features and strengths of languages. Alternative paradigms for describing computation also are covered. Students are introduced to the theoretical foundations of these paradigms and also are given an opportunity to write programs in each of the paradigms. Prerequisite: CS 341.
420 - Computer Architecture - 3 S.H. Models of computing systems are studied. These include the Von Neumann Model, multiprocessors, vector processors and others. Additionally, the components of these models are examined. Topics include the memory hierarchy, input/output systems and pipelining. Prerequisite: CS 375.
425 - Numerical Analysis - 4 S.H. Numerical solution of equations, numerical interpolation, differentiation and integration, numerical linear algebra, and numerical solution of differential equations with analysis and use of algorithms and related software. Prerequisite: CS 234 and MATH 260.
430 - Computer Graphics - 3 S.H. A study of computer graphics theories, algorithms, and techniques. Topics include display techniques, primitives and attributes, interactive graphics, transformations, 3-D modeling and viewing, graphics package design, picture structure, lighting and shading, and color theory. Prerequisite: CS 341.
433 - Digital Image Processing - 3 S.H. A study of digital images and their properties, and algorithms and techniques for digital image processing. Topics include image acquisition, enhancement in both spatial and frequency domains, segmentation and compression. Offers an introduction to object recognition approaches. Prerequisite: CS 341 and MATH 165.
435 - Theory of Computation - 3 S.H. This course explores the theoretical foundations of computer science. Topics include finite state automata and regular languages, context-free grammars, pushdown automata and context-free languages. Turing machines and recursively enumerable sets, computability and the halting problems, Chomsky hierarchy and undecidable problems. Prerequisite: CS 275 and CS 341.
440 - Theory of Algorithms - 3 S.H. Concepts and techniques of design efficiency and complexity of algorithms. Topics include principles of algorithm design (divide and conquer, backtracking, dynamic programming, greedy and local search); graph, numerical, pattern matching, and parallel algorithms; P, NP, and NP-complete problems. Credit will only be given for one of CS 440, CS 468, and CS 469. Prerequisite: CS 341.
444 - Human Comuter Interaction - 3 S.H. Course examines fundamental principles of human factors issues related to the development of software and the design of interactive systems. Topics include user-centered design, usability tests, tradeoffs between interaction devices, alternative input-output methods, the design of interfaces for special audiences, and construction of appropriate error messages. Projects will involve implementation and evaluation of graphical user interfaces (GUIs) and Web pages. Prerequisite: CS 341, CS 344, and Psy 210.
445 - Artificial Intelligence - 3 S.H. A survey of the tools and theoretical constructs of artificial intelligence as implemented on computers. Emphasis is on the importance of good representations to model various kinds of intelligence. Topics include resolution theorem proving, heuristic and algorithmic search, game playing, natural language processing and expert systems, and neural networks. Prerequisite: CS 341.
450 - Compilers - 3 S.H. The course studies the principles, techniques and tools for compiler design and construction. Topics include lexical analysis, syntax analysis, parsing techniques, error recovery, semantic analysis, intermediate language, code generation, and optimization techniques. Students design and implement the phases of a compiler. Prerequisite: CS 415 or CS 435.
465 - Topics: Computing Theory - 1-3 S.H. Topics are selected from automata theory, the Turing Machine, combinatorics, etc. An in-depth view of a specific concept of computing is covered. Prerequisite: Junior or senior standing and instructor's permission. May be repeated for credit. Offered according to demand.
466 - Topics: General Computing Applications - 1-3 S.H. Topics are selected from general computing application areas. An in-depth view of a specific problem or technique is given. Topics may include statistical problems, the Simplex model. O/1 knapsack, Divide and Conquer, etc. Prerequisite: Junior or Senior standing and instructor's permission. May be repeated for credit. Offered according to demand.
467 - Topics: Information System Applications - 1-3 S.H. Topics are selected from specific information systems or management information systems or management information systems applications and are oriented toward the user. Topics include linear programming, statistical packages, inventory systems, decision support, the transportation problem, project scheduling, queuing models, forecasting, and discrete simulation. Prerequisite: Junior or Senior standing and instructor's permission. May be repeated for credit. Offered according to demand.
468 - Algorithms in Bioinformatics - 3 S.H. Theory-oriented approach to the design and analysis of contemporary algorithms, and their applications to bioinformatics. This course offers an exposition of the algorithmic principles driving advances in the field of bioinformatics. Data modeling, algorithm design techniques such as dynamic programming and divide-and-conquer, and machine learning algorithms are discussed in the contexts of genomics and proteomics. Credit will only be given for one of CS 440, CS 468, and CS 469. Prerequisite: CS 341, CS 368, and BIOL 310.
469 - Algorithms in Geographic Information Technology - 3 S.H. The design and analysis of contemporary algorithms, and their applications to geographic information technology. This course offers an exposition of the algorithmic principles driving advances in this application field. Data modeling, algorithm design techniques such as backtracking and divide-and-conquer, and machine learning algorithms are discussed in the context of the application field. Credit will only be given for one of CS 440, CS 468, and CS 469. Prerequisite: CS 341, CS 369, and GEOS 280.
471 - Object Oriented Design and Development - 3 S.H. This course will cover fundamental topics in object oriented analysis, design, and development. An object oriented design methodology and tool will be introduced and used. The course will use an object oriented development environment/language. Advanced features of object oriented languages will be covered. Students will be required to investigate issues in object oriented systems and their implementation. (Oral Flag) Prerequisite: CS 341 and CMST 191.
472 - Reusable Software Architectures - 3 S.H. This course investigates the software concepts that promote reuse of software architectures. In particular, the influence of object technology on software design and reuse is studied. Domain Modeling methods, which model the application domain as a software product family from which target systems can be configured, are investigated. The course also covers reusable software patterns including architecture patterns and design patterns, software components, and object-oriented frameworks. State-of-the-art component technologies will be used to experiment with the concepts of this course. Prerequisite: CS 471 or consent of Instructor.
476 - Distributed Systems: Concepts and Design - 3 S.H. Introduction to the theory and design principles used in the construction of distributed computer systems. Study of architectural foundations of networked systems, file servers and transportation handling, and security issues. Case studies of specific distributed systems. Prerequisite: CS 405.
481 - Computer Applications - 1-3 S.H. This is intended to be an off-campus course. The computer applications to be covered are determined by the requesting group or school district with the computer science faculty. (Not open to computer science majors/minors.) May be repeated for credit. Offered according to demand.
482 - Internet/ Web Architecture and Development - 3 S.H. This course will emphasize the distributed software architecture for Web-based software and Web services design and development. J2EE architecture will be used to provide a basis for developing software that will run on the client-side, the server-side, in a distributed system, or in a stand alone environment. Topics include server components, servlets, java server pages, javabeans, session control and security, EJBs, transaction processing, database connections and connection pools. A major application development environment will be used to design, develop, test, and deploy applications. The student will develop a distributed Web application. Prerequisite: CS 471 and either CS 344 or CS 472, or consent of instructor.
485 - Database Systems Design - 3 S.H. The design and development of database management systems. Topics include relational object oriented database operations and implementation, query language development, normalization, database file management, deadlock handling, security and integrity problems, and distributed DBMS. Prerequisite: CS 341 and CS 385.
490 - Independent Problems in Computer Science - 1-3 S.H. An opportunity to continue the study of selected topics. Prerequisite: instructor's permission. Offered according to demand.
491 - Practicum in Computer Science - 6 S.H. Provides the student with practical experience and training. Students work a minimum of 200 hours on the job in a computer installation under the supervision of a computer science professional. Students planning to take this course must apply to the practicum coordinator at least one semester before they intend to enroll. This course is open only to junior or senior declared CS or CIS majors who have completed the core and option requirements for their major. Permission of coordinator is required. Contact the Computer Science Practicum Coordinator for more information on this course requirements. Pass/No Credit only. Only 3 S.H. apply to CS majors.
495 - Computer Science Research Seminar - 3 S.H. This course is an undergraduate research seminar designed for upper-level computer science students. Students choose, with the help of faculty, an undergraduate research thesis topic. Computer science research methods are introduced and the various forms of technical writing common to computer science are studied. Students conduct their research, write a technical paper as a result, and present their findings during the year-end senior technical conference. Students also read and critically review several computer science conference and journal articles. Offered Spring Semester. Grade only. (Writing Flag) Prerequisites: CS 341, ENG 111, and at least two 400 level CS courses.
Computer Science Education Course Descriptions
321 - Computers in the Mathematics Curriculum - 3 S.H. This course is designed to provide future mathematics teachers with a broad overview of the uses of computers in the mathematics curriculum. the major emphasis is on selecting and evaluating courseware; using teacher utilities; role of programming and computer literacy in the mathematics curriculum. Prerequisite: MATH 165 and Junior or Senior standing. (A computer programming course is advised). Offered according to demand.
452 - Computer Applications in Elementary Education - 3 S.H. This course is specifically designed for pre-service and in-service elementary classroom teachers for the purpose of exploring selected areas of microcomputer applications in elementary education. The major goal of the course for each student is the acquisition of a positive attitude in the use of the microcomputer as a tool. To accomplish this goal, the student has direct experiences with computer assisted instruction (CAI), computer managed instruction (CMI), information retrieval, programming languages, software evaluations and elementary computer literacy curriculums. Prerequisite: EDUC 300, EDUC 301, and EDUC 302. Offered according to demand.
480 - Computer Workshop - 3 S.H. Emphasis is on using microcomputers in education. Topics are selected from multimedia, authoring languages, LOGO (including turtle graphics), computer-assisted instruction (CAI), computer-managed (CMI), information retrieval, text editing, educational software/courseware packages, software evaluation, computer curriculums, classroom organization and computer literacy. Prerequisite: instructor's permission. Can be repeated for credit. Offered according to demand.
481 - Computer Applications - 3 S.H. This is inteded to be an off-campus course. The computer applications to be covered are determined by the requesting group or school district with the computer science faculty. (Not open to computer science majors/minors.) May be repeated for credit. Offered according to demand.
489 - Special Topics - 3 S.H. Experiences in computer science and computer science education for teachers of grades K-12. Prerequisite: instructor's permission. Offered according to demand.



