Computer skills course which assumes no prior experience with computers. Introduces computer concepts and word processing, spreadsheets and database software; examines societal issues. Graduation credit may be earned for CS 108 or CMIS 108; but not for both. Prerequisite: Two years of college preparatory mathematics in high school.
Broad view of computer science: hardware, operating systems, software design and development, algorithms, networks and applications.
Programming course that assumes basic computer literacy. Introduces C++ a high-level programming language and basic problem solving. Three lecture hours and two laboratory hours per week. Prerequisite: three years of college preparatory mathematics in high school.
Introduces C++ programming and basic problem solving. Focuses on computer applications in engineering, science and numeric methods. Prerequisite: Basic computer literacy.
Algorithmic problem solving with a modern programming language. Language syntax; basic design methods; algorithms; abstraction.
Supervised work experience with agency employing computer scientists or information specialists. For students with part time cooperative jobs. Limited to students enrolled in more than 6 hours.
Supervised work experience with agency employing computer scientists or information specialists. First work period of 5-year academic/work experience program.
Basic software engineering concepts, elementary data structures and algorithms, fundamentals of object-oriented programming.
Techniques and principles of graphical user interface development. Event-driven programming; principles of good screen design; graphical user interface development environment.
Processor, memory, I/O structure of computer systems; data representations; instruction set of architecture of typical processor as hardware/software interface; processor implementation, performance.
Processes, threads, synchronization; I/O and memory management at the hardware and OS levels; file systems, implementation of basic OS abstractions, concurrent programming.
Design of interactions between people and computers. Interface design, conceptual models, design methods, software evaluation and ethical concerns. Software design project.
Introduction to the concepts and techniques required to develop complex software systems and manage software projects. Emphasis on object-oriented methodologies and modeling via UML.
Design, appropriateness and linguistics issues associated with different programming languages and programming paradigms. Covers syntax and semantics of languages, including BNF Notation.
Considers appropriate choice of data structures, comparisons of algorithms, recursive algorithms, complexity, introduction to parallel algorithms.
Selected topics in computer science. May be repeated to a maximum of 6 hours for different topics.
Supervised work experience with agency employing computer scientists or information specialists. For students with part-time cooperative jobs. Limited to students enrolled in more tha 6 credit hours.
Supervised work experience with agency employing computer scientists or information specialists. Third work period of 5-year academic/work experience program.
Translation of programming languages. Emphasis on techniques used in construction of compilers, including lexical analysis, syntactical analysis, type checking, code generation.
First part of a two-semester sequence in which teams complete the design and planning stages of a software development project. Selected topics in software development, group dynamics, and project management. Not for Graduate credit.
Database management system concepts, models, languages. Entity/relationship, relational and object-oriented data models; relational database design and implementation including SQL; object databases.
Principles and programming techniques of artificial intelligence. Intelligent agents, heuristic programming, knowledge representation, expert systems, machine learning.
Concepts of networks and data communications. Networking protocols and architecture; data encoding and transmission; network management; and distributed applications.
Theoretical foundations of computer science, including a theory of automata: pushdown automata, turing machines; formal languages.
Advanced algorithms and data structures; basic complexity theory and approximation algorithms for NP-hard problems.
Study of 2D and 3D graphics, graphics hardware, scan conversion, antialiasing, hidden components, transformations, projections, ray tracing, curve and surfact modeling, animation.
Selected topics in computer science. May be repeated to a maximum of 6 hours for different topics. Prerequisite: consent of instructor.
Reading and Research in specific areas of computer science. May be repeated for a maximum of 6 hours. Prerequisite: consent of department chair or program director.
Second part of a two-semester sequence in which teams implement, test, and deploy software development project that was planned and designed in CS 425. Includes a formal presentation to the computer science faculty.
Research topics of faculty; exploration of research facilities and resources; examination of plagiarism and academic integrity. Prerequisite: Graduate standing.
Concurrent programming; support for distributed systems including transaction processing systems; support for high-volume, high-availability applications; scalable programming; trends.
Instruction sets, instruction-level parallelism, memory systems, storage systems, I/O, multiprocessors and multicomputers, trends.
Survey of systems modeling and simulation techniques; data generation and testing, construction of simulation models, petri nets and applications, model experimentation and optimization.
Management principles for software engineering and for project and systems development. Includes management of resources and understanding the needs of customers and management.
Study of advanced database management system topics such as programmatic SQL, database administration issues, object databases, distributive databases, semi-structured data and XML, and data warehousing.
Principles for software development: object-oriented methodologies; advanced topics such as formal methods; component-based, client-server, and computer-aided software engineering; web engineering.
Design and implementation of expert systems: architecture, knowledge representation, inference methods, uncertainty handling, knowledge acquisition. Introduction to logic programming and Prolog.
Design and implementation of application software for computer networks; includes case studies of existing network applications; emphasis on TCP/IP.
Fundamentals in network security to develop skills for preventing security hazards with focus on practical aspects in network security as well as concepts and theories.
Advanced rendering techniques, global illumination and radiosity, volume rendering, shadows, reflection detection, fractals and particle systems.
Topics including functional programming, semantic theory of programming language, formal language theory and functional language ML. May be repeated to 6 hours if topics differ.
Selected topics in AI, such as machine learning, model-based reasoning, and intelligent agents. May be repeated up to 6 hours provided no topic is repeated. Prerequisite: consent of instructor.
Selected topics in computer networking, such as high performance and optical computer networks. May be repeated to a maximum of 6 hours provided no topic is repeated.
Topics dealing with computer science concepts that are not emphasized in current courses. May be repeated to a maximum of 6 hours if topics differ. Prerequisite: consent of instructor.
Students organize a program of study and obtain approval for supervision of the study from a member of the computer science faculty. May be taken for a maximum of 3 hours. Prerequisite: consent of instructor.
Paper and presentation on approved topic. For thesis option, satisfies requirement for proposal. For non-thesis option, satisfies requirement for topic paper in students concentration area. Prerequisite: consent of advisor.