School of Engineering

Computer Science Course Descriptions



CS 459 Embedded Computer Systems  Software design issues and methodologies for realtime, embedded computer systems development. Reliability and fault-tolerance, scheduling, synchronization, concurrency, and data communications in real-time embedded systems. Real-time operating systems, embedded systems and distributed computing. Programming in a high-level, real-time language.

CS 500 Fundamentals of Computer Science Focuses on the advanced programming concepts, common data structures, and basic models that students of Computer Science and Information Systems need to know. Elements of discrete mathematics are integrated through lectures and programming projects.

CS 621 Object-Oriented Programming  An introduction to object-oriented programming. Constructs and programming techniques that are essential for performing successful object-oriented design and implementation are covered.

CS 622 Software Design Methodologies  Focuses on concepts, notations, and guiding principles for object-oriented design. Other design methods (such as structured design and data-oriented design) are discussed and compared to object-oriented design.

CS 623 Graphical User Interface Design  Topics include basic concepts, models, and methods in graphical user interface (GUI) design, as well as underlying software architectures. In addition, students will gain practical experience with a typical GUI building tool.

CS 635 Knowledge Discovery and Data Mining  A survey of computational methods for knowledge discovery in bioinformatics and medicine. Topics covered are Dynamic Programming (sequence alignment, BLAST search engine), Hidden Markov Models (phylogenetic trees, structure prediction), clustering and discriminations models for microarray analysis (Gene Expression Data), selected data mining software, and working with biological databases.

CS 642 Software Project Management  Planning, organizing, staffing, controlling, and directing software projects. Major emphasis on project planning, techniques for monitoring and controlling projects, quantitative methods and tools, and leadership issues in project management. A term project that involves the development of a project plan for a non-trivial software project will be required.

CS 654 Computer Networking  Fundamental data communications and computer networking concepts; communications model, signals, digital transmission systems, packet switching, multiplexing, data link protocols, Internet-working. Projects build around TCP/IP protocol suite and Internet application protocols. Introduction to client/server programming and sockets APL.

CS 656 Operating Systems  Fundamental operating system concepts: process, thread, synchronization, scheduling, memory management. Advanced topics in distributed systems, such as DCE, distributed file systems, naming, and administration. Continuation of client / server programming, including RPC and distributed object-oriented programming.

CS 658 Distributed Computing  A project in distributed computing which builds upon the concepts and technology covered in CS 654 and 656. Students will specify, analyze, design, and implement a complete system. Lectures on advanced and current topics in distributed computing.

CS 671 Information Visualization  Concepts of information visualization, principles in vision and perception, algorithms for building information spaces, and principles of user interface design. Case studies demonstrate information visualization used to solve specific retrieval and decision problems for biological data. Evolution of visual user interfaces and visualization tools, visual information retrieval and knowledge representation.

CS 673 Principles of Database Design  Techniques and tools used in the design of applications that utilize database management systems. Detailed treatment of conceptual. modeling, logical and physical design, and query languages. Services provided by database management systems to the level of detail needed by application designers. Introduces students to the scope of the database field.

CS 676 Database Management Systems  This course provides an in-depth study of the concepts and techniques used in implementing typical relational database engines. It also covers how the concepts are extended to address the challenges posed by post-relational, distributed, and parallel databases.

CS 677 High-Performance Computing  Introduction to parallel and high-performance computing. Coverage includes modern scalable parallel and distributed architectures, design and analysis of algorithms, communication and synchronization issues, software development environments, and performance evaluation. Case studies include applications in bioinformatics, evolutionary computing, data mining of biological and clinical databases, and knowledge-based systems.

CS 678 Machine Learning  Broad introduction to machine learningcomputer programs that improve their performance with experience. Topics include decision trees, neural networks, statistical methods, genetic algorithms, Bayesian learning methods, explanation-based goal regression, reinforcement learning, and learning frameworks. Includes an applied machine learning component that provides exposure to established algorithms and machine learning programs.

CS 679 Advances in Database Management Systems  This course exposes students to the latest trends in database management systems. Specific contents and level of emphasis of each topic will be determined by trends in the field and by the interests and expertise of faculty and students.


Page last modified March 14, 2014