CSCI-A 121 Cyberspace Influences on Privacy, Security and Society (3 cr.)
Examines the impacts of computerization in the United States. From family life, private organizations, and public organizations to government at all levels, computerization is affecting and creating the complex interdependencies between technology and social groups. We will survey recent changes to many topics, including intellectual property rights, e-government, online security, online privacy, digital currency, online gambling, universal access, online education, medical devices, and media convergence.

CSCI-A 201 Introduction to Programming (3 cr.)
P: MATH-M 117 Fundamental programming constructs, including loops, arrays, classes, and files. General problem-solving techniques. Emphasis on modular programming, user-interface design, and developing good programming style. Not intended for computer science majors or minors.

CSCI-A 211 Word Processing Applications (3 cr.)
P: CSCI-C 106 or EDUC-W 200. This course introduces the student to word processing techniques used in creating letters, forms, and reports. The student will use styles, outlines, tables, and field codes in documents and templates. Advanced topics include merging documents, customizing the Word environment, and integrating the features of Word with other software applications.

CSCI-A 212 Spreadsheet Applications (3 cr.)
P: CSCI-C 106 or EDUC-W 200. This course introduces the student to spreadsheet techniques used in creating professional-looking worksheets. Students will use formulas, functions, charts, graphs, and logical functions. Advanced topics include advanced filtering, importing data, creating pivot tables, database functions, and integrating Excel with other software applications.

CSCI-A 213 Database Applications (3 cr.)
P: CSCI-C 106 or EDUC-W 200. This course introduces the student to database techniques. The student will develop tables, custom forms, reports, and queries. Advanced topics include developing ASP pages for the World Wide Web, developing and understanding relationship database design, macros, managing, securing a database, and integrating Access with the Web and other programs.

CSCI-A 221 Multimedia Programming (1.5 cr.)
P: CSCI-C 106 or EDUC-W 200. This course introduces the student to creating dynamic Web pages. Emphasis is placed on problem-solving techniques using a Web-based programming language. Lecture and laboratory.

CSCI-A 247 Network Technologies and Administration (3 cr.)
P: CSCI-C 106 or EDUC-W 200. Introduction to network principles and current network technology, both hardware and software. Network administration tools and techniques. Laboratory provides practical experience.

CSCI-A 346 User-Interface Programming (3 cr.)
P: CSCI-C 202 or equivalent experience. Learn to prototype and build graphical user interfaces for computer applications. Contemporary software design methodology. Students design and implement prototype interfaces to applications provided by the instructor. Extensive use is made of both commercial and experimental software tools.

CSCI-A 348 Mastering the World Wide Web (3 cr.)
P: Two semesters of programming experience, or equivalent, and some knowledge of operating systems. Project-oriented course leading to ability to maintain a fully functional Web site. Topics include Internet network protocols and Web programming, server administration, protocols, site design, and searching and indexing technologies.

CSCI-B 438 Fundamentals of Computer Networks (3 cr.)
P: CSCI-C237. Theory and practice of data communications between computing devices. Topics include network architecture and topology, wide-area networks, local-area networks, and ISO network layers.

CSCI-B 461 Database Concepts (4 cr.)
P: CSCI-C 251, CSCI-C 335 and CSCI-C 343. Introduction to database concepts and systems. Topics include database models and systems: hierarchical, network, relational, and object-oriented; database design principles; structures for efficient data access; query languages and processing; database applications development; views; security; concurrency; recovery. Students participate in a project to design, implement, and a query a database, using a standard database system.

CSCI-B 481 Interactive Graphics (3 cr.)
P: CSCI-C 343, MATH-M 303. Computer graphics techniques. Introduction to graphics hardware and software. Two-dimensional graphics methods, transformations, and interactive methods. Three-dimensional graphics, transformations, viewing geometry, object modeling, and interactive manipulation methods. Basic lighting and shading. Video and animation methods. Credit given for only one of CSCI-B 481 and CSCI-B 581.

CSCI-B 490 Seminar in Computer Science (4 cr.)
Special topics in computer science. May be repeated for up to 6 credit hours.

CSCI-C 100 Computing Tools (1 cr.)
An introduction to computing applications useful in college and career work. Topics include microcomputer operating systems; word processing; spreadsheet, database, and communications software; and other software applications.

CSCI-C 105 Introduction to C Programming (3 cr.)
This course is an introduction to computer programming using C++. The emphasis is on structured programming principles, and understanding the basic concepts that apply to scientific and engineering problems. Among topics covered in this course are: problem solving using top down design, using flowcharts to explain the program logic, selection structure, repetition structure, bitwise operations, arrays, pointers, strings, passing arguments, and sequential files.

CSCI-C 106 Introduction to Computers and Their Use (3 cr.)
An introduction to computers and their use in information systems: use of standard application programs; foundations of information systems design and development; survey of programming languages. Satisfies the basic computer literacy requirement.

CSCI-C 201 Computer Programming II (4 cr.)
P: Two years of high school mathematics or MATH-M 014. Computer programming and algorithms. Basic programming and program structure. Computer solutions of problems. A computer language will be taught. Lecture and discussion. Business majors cannot receive credit for CSCI-C 201 and CSCI-C 101 or CSCI-C 106.

CSCI-C 202 Computer Programming (4 cr.)
P: CSCI-C 201. Computer programming, algorithms, program structure, arrays, stacks, queues, binary trees; procedures, functions, parameter-passing mechanisms, recursion vs. iteration, and issues of programming style. Computer solutions of problems such as data analysis, sorting, searching, and string and text manipulation.

CSCI-C 203 COBOL and File Processing (3 cr.)
P: CSCI-C 201. Computer programming and algorithms. Applications to large file processing functions of an organization.

CSCI-C 237 Operating Systems Concepts (4 cr.)
P: CSCI-C 202, CSCI-C 335. An investigation of the problems involved in the implementation of an operating system and some of the solutions. Topics such as multiprocessing, paging, interlocks, time-sharing, and scheduling. A specific operating system will be examined.

CSCI-C 251 Foundations of Digital Computing (4 cr.)
P: CSCI-C 201. R: MATH-M 119 or MATH-M 125. Boolean algebra and propositional logic. Set algebra, including mappings and relations. Elements of graph theory and statistical analysis. Application of all topics to computer programming.

CSCI-C 311 Programming Languages (4 cr.)
P: CSCI-C 202, CSCI-C 335. Systematic approach to programming languages. Relationships among languages, properties and features of languages, and the computer environment necessary to use languages. Lecture and laboratory.

CSCI-C 320 Advanced COBOL (3 cr.)
P: CSCI-C 203. A continuation and extension of COBOL as taught in CSCI-C 203. Extensive use will be made of structured COBOL in the development of large programs requiring access to various file structures. Includes interactive menu and screen-driven programming.

CSCI-C 335 Computer Structures (4 cr.)
P: CSCI-C 201. R: CSCI-C 202. Structure and internal operation of computers, stressing the architecture and assembly language programming of a specific computer. Additional topics include digital hardware and microprogramming. Lecture and laboratory.

CSCI-C 343 Data Structures (4 cr.)
P: CSCI-C 202, CSCI-C 251. Systematic study of data structures encountered in computing problems, structure and use of storage media, methods of representing structure data, techniques for operation on data structures. Lecture and laboratory.

CSCI-C 390 Individual Programming Laboratory (1-3 cr.)
P: CSCI-C 201. Before enrolling, a student must arrange for an instructor to supervise the activity. Student will design, program, verify, and document a special project assignment selected in consultation with the instructor. May be repeated up to a maximum of 6 credits.

CSCI-C 405 A Survey of Computer Science (3 cr.)
P: CSCI-C 343. A survey of senior-level topics in programming languages and operating systems for students pursuing a minor in computer science.

CSCI-C 421 Computer Organization (4 cr.)
P: CSCI-C 251, CSCI-C 335. Organization, circuits, and logic design of digital computing systems. Course deals with the internal structure of computers. Some simple computers are designed. Experiments in basic computer circuitry are performed in the laboratory. A knowledge of electronics, while useful, is not a requirement. Lecture and laboratory.

CSCI-C 422 Advanced Computer Organization (3 cr.)
P: CSCI-C 421 or equivalent. Basic computer hardware design problems. Alternative solutions illustrated by different computers.

CSCI-C 431 Assemblers and Compilers I (3 cr.)
P: CSCI-C 311, CSCI-C 335, and CSCI-C 343. Design and construction of assemblers, macroprocessors, linkers, loaders, and interpreters. Compiler design and construction, including lexical analysis, parsing, code generation, and optimization.

CSCI-C 432 Assemblers and Compilers II (3 cr.)
P: CSCI-C 311, CSCI-C 335, CSCI-C 343. Design and construction of assemblers, macroprocessors, linkers, loaders, and interpreters. Compiler design and construction, including lexical analysis, parsing, code generation, and optimization.

CSCI-C 435 Operating Systems I (3 cr.)
P: CSCI-C 311, CSCI-C 335, and CSCI-C 343. Organization and construction of computer systems that manage computational resources. Topics include specification and implementation of concurrency; process scheduling; storage management; device handlers; mechanisms for event coordination such as interruption, exclusion, and synchronization. Extensive laboratory exercises.

CSCI-C 436 Operating Systems II (3 cr.)
P: CSCI-C 311, CSCI-C 335, and CSCI-C 343. Organization and construction of computer systems that manage computational resources. Topics include specification and implementation of concurrency; process scheduling; storage management; device handlers; mechanisms for event coordination such as interruption, exclusion, and synchronization. Extensive laboratory exercises.

CSCI-C 445 Information Systems I (4 cr.)
P: CSCI-C 343. Analysis, design, and implementation of information systems from user needs to a running system. Hardware organization and its impact on storage structures. Structures and techniques for accessing and updating information: primary and secondary indices, sequential and multilinked files. Modeling of information using hierarchical, network, and relational techniques and operations with these models. Current database systems and query languages.

CSCI-C 446 Information Systems II (4 cr.)
P: CSCI-C 343. Analysis, design, and implementation of information systems from user needs to a running system. Hardware organization and its impact on storage structures. Structures and techniques for accessing and updating information: primary and secondary indices, sequential and multilinked files. Modeling of information using hierarchical, network, and relational techniques and operations with these models. Current database systems and query languages.

CSCI-C 451 Automata and Formal Grammars (3 cr.)
P: CSCI-C 251 or MATH-M 403. Finite automata and regular grammars; context-free grammars and nondeterministic pushdown automata; deterministic pushdown automata; unsolvable problems and algorithms for solvable problems related to these classes of machines and grammars.

CSCI-C 455 Analysis of Algorithms (4 cr.)
P: MATH-M 216 or MATH-M 120 and CSCI-C 343. Models, algorithms, recurrences, summations, growth rates. Probabilistic tools, upper and lower bounds; worst-case and average case analysis, amortized analysis, dynamization. Comparison-based algorithms: search, selection, sorting, hashing. Information extraction algorithms (graphs, databases). Graph algorithms: spanning trees, shortest paths, connectivity, depth-first search, breadth-first search.

CSCI-C 458 Intelligent Robots (4.0 cr.)
P: CSCI-C 343 and Consent of Instructor. This course presents a broad overview of robotics in practice and research with topics including: robot control, perception, localization, planning, mapping, navigation, learning, and swarm approaches. The course focuses on a hands-on approach to introducing the concepts in robotics, using autonomous mobile robots.

CSCI-C 463 Artificial Intelligence I (4 cr.)
P: CSCI-C 311 and CSCI-C 343. Historical roots, philosophical thesis, and goals of artificial intelligence research. Basic problem-solving methods. Heuristics and heuristic search. Game-playing programs. Reasoning and knowledge representation. Predicate calculus, semantic networks, frames, and other representation systems. Introduction to production systems. Goal-directed systems.

CSCI-C 464 Artificial Intelligence II (3 cr.)
P: CSCI-C 463. Advanced problem-solving techniques. Production systems continued. Programming languages for artificial intelligence systems. Natural-language understanding programs. Recognition and categorization. Artificial vision systems. Applications of artificial intelligence. Robotics.

CSCI-C 490 Seminar in Computer Science (1-3 cr.)
Special topics in computer science. May be repeated for a maximum of 6 credit hours.

CSCI-N 207 Data Analysis and Decision Making Using Spreadsheets (3 cr.)
P: MATH-M 107. Summary of basic computing topics. An introduction to data analysis using spreadsheets. Emphasis on the application of computational problem-solving techniques. Lecture and laboratory.

CSCI-N 211 Introduction to Databases (3 cr.)
Summary of basic computing topics. Introduction to database design concepts, creation of user forms, development of databases, querying techniques, and building reports. Focus on relational database systems from development and administration point of view. Lecture and laboratory.

CSCI-N 341 Introduction to Client-side Web Programming (3 cr.)
P: CSCI-C 201 or equivalent. Introduction to programming focusing on the client sided programming environment. Essential algorithm design, client-side programming using languages commonly embedded in Web browsers. Lecture and laboratory.

CSCI-N 342 Server-side Programming for the Web (3 cr.)
P: CSCI-C 201 or equivalent. Designing and building applications on a Web server. Focuses on issues of programming applied to Web servers. Emphasis on relational databases concepts, data design, languages used on the server, transaction handling, and integration of data into Web applications.

CSCI-P 423 Compilers (4 cr.)
P: CSCI-C 311. Compiler design and construction, including lexical analysis, parsing, code generation, and optimization. Extensive laboratory exercises.

CSCI-P 436 Introduction to Operating Systems (4 cr.)
P: CSCI-C 311, CSCI-C 335, CSCI-C 343, or honors equivalents. Organization and construction of computer systems that manage computational resources. Topics include specification and implementation of concurrency, process scheduling, storage management, device handlers, mechanisms for event coordination. Lecture and laboratory.

CSCI-P 465 Software Engineering for Information Systems I (3 cr.)
P: CSCI-C 335 or CSCI-C 343, or honors versions. P or C: CSCI-B 461. Analysis, design, and implementation of information systems. Project specification. Data modeling. Software design methodologies. Software quality assurance. Supervised team development of a real system for a real client. Credit given for only one of CSCI-P 465/466 or CSCI-C 445/446.

CSCI-P 466 Software Engineering for Information Systems II (3 cr.)
P: CSCI-C 334 or CSCI-C 343, or honors versions. P or C: CSCI-B 461. Analysis, design, and implementation of information systems. Project specification. Data modeling. Software design methodologies. Software quality assurance. Supervised team development of a real system for a real client. Credit given for only one of CSCI-P 465/466 or CSCI-C 445/446.

VISITING SCIENTISTS

NATURAL SCIENCES CONTACT INFORMATION