Cs 5744 software design and quality




















Consistency, stability, convergence, dispersion, and dissipation. Methods for linear and nonlinear elliptic and parabolic equations, first- and second-order hyperbolic equations, and nonlinear conservation laws.

Finite element spaces. Approximation theory for finite element spaces. Error estimates. Effects of numerical integration and curved boundaries. Nonconforming methods. Concrete examples of the application of the finite element method. Efficient implementation strategies. Time dependent problems.

Methods of solving large sparse linear systems of equations, algebraic eigenvalue problems, and linear least squares problems. Numerical algorithms for solving constrained and unconstrained optimization problems. Numerical solutions of nonlinear algebraic systems.

Convergence, error analysis. Hardware and software influences. Efficiency, accuracy, and reliability of software. Robust computer codes. CS ECE - Computer Architecture Advanced computer architectures, focusing on multiprocessor systems and the principles of their design. Parallel computer models, programming and interconnection network properties, principles of scaleable designs. Illustration of multiprocessor programming principles through the classical mutual exclusion problem, correctness properties of concurrency e.

Illustration of multiprocessor programming practice through programming patterns such as spin locks, monitor locks, the work-stealing paradigm and barriers. Discussion of concurrent data structures e. CS STAT - Data Analytics Basic techniques in data analytics including the preparation and manipulation of data for analysis and the creation of data files from multiple and dissimilar sources.

The data mining and knowledge discovery process. Overview of data mining algorithms in classification, clustering, association analysis, probabilistic modeling, and matrix decompositions. Detailed study of classification methods including tree-based methods, Bayesian methods, logistic regression, ensemble, bagging and boosting methods, neural network methods, use of support vectors and Bayesian networks.

Detailed study of clustering methods including k-means, hierarchical and self-organizing map methods. Theoretical, probabilistic, and applied aspects of data analytics. Methods include generalized linear models in high dimensional spaces, regularization, lasso and related methods, principal component regression pca , tree methods, and random forests.

Clustering methods including k-means, hierarchical clustering, biclustering, and model-based clustering will be thoroughly examined.

Supervised learning will consist of discriminant analyses, supervised pca, support vector machines, and kernel methods. Design and internal organization of the Low-Level Virtual Machine compiler infrastructure. Static Single Assignment. Data-flow analysis and techniques for reaching definitions, live variable analysis, and available expressions. Lattice theory and iterative algorithms for general frameworks.

Loop-invariant code motion and lazy code motion. Static Single Assignment construction and optimizations. Register allocation and coalescing. Classical ciphers, relevant abstract algebra and number theory, symmetric-key ciphers, cipher modes of operation, and asymmetric-key ciphers. Cryptographic hash functions and message authentication codes. Elliptic curve cryptography and cryptosystems. Applications and standards relevant to network and computer security.

Contemporary and emerging networks and protocols to illustrate concepts and to provide insight into practical networks including the Internet. Quantitative and qualitative comparisons of network architectures and protocols. Use of queuing and other analytical methods, simulation, and experimental methods to evaluate and design networks and protocols. Network management architectures and protocols. CS ECE - Cryptographic Engineering Implementation of cryptographic operations and protocols in contemporary computing platforms.

Mapping of cryptographic operations, evaluation and optimization of performance and implementation cost, analysis of security against brute- force cryptanalysis and implementation-level attacks.

Design of countermeasures against implementation-level attacks, security-testing procedures, and architectures to support a trusted computing base. Network security architecture, user and attacker perspective. Practical applications and security standards. Protocol design principles and their impact on computer and network security. Authentication systems. Email security. Firewalls and intrusion detection. Security for wireless systems. CS ECE - System and Software Security Secure software design, memory and file system security, operating system security for various platforms.

Program classification, anomaly detection, malware detection and analysis. Technical challenges and problems in securing operating systems and software. Classic and modern algorithms, models, principles, and tools for system and application software security.

Actual security examples. CS - Blockchain Technologies Principles of an open, distributed ledger. Underlying data structures and algorithms such as crytographic hashing and Merkle trees, consensus algorithms, and Byzantine agreement. Bitcoin as an exemplar. Proof of work and proof of stake.

Applications including cryptocurrencies, financial ledgers, and smart contracts. Pre: Graduate standing in computer science. CS - Information Storage and Retrieval Analyzing, indexing, representing, storing, searching, retrieving, processing and presenting information and documents using fully automatic systems.

The information may be in the form of text, hypertext, multimedia, or hypermedia. The systems are based on various models, e. Evaluation of the systems' efficiency and effectiveness. CS - Database Management Systems Emphasizes concepts, data models, mechanisms, and language aspects concerned with the definition, organization, and manipulation of data at a logical level. Concentrates on relational model, along with introduction to design of relational systems using Entity-relationship modeling.

Functional dependencies and normalization of relations. Query languages, relational algebra, Datalog, and SQL. Query processing, logic and databases, physical database tuning. Concurrency control, OLTP, active and rule-based elements. CS - Machine Learning with Big Data Basic principles and techniques for big data analytics, including methods for storing, searching, retrieving, and processing large datasets; introduction to basic machine learning libraries for analyzing large datasets; data visualization; case studies with real-world datasets.

May be taken for CS-MEng credit. CS - Software Engineering Study of the principles and tools applicable to the methodical construction and controlled evolution of complex software systems.

All phases of the life cycle are presented; particular attention focuses on the design, testing, and maintenance phases. Introduction to software project management. Attention to measurement models of the software process and product which allow quantitative assessment of cost, reliability, and complexity of software systems. CS ISE - Usability Engineering Design and evaluation of effective user interfaces, beginning with principles for designing the product.

Development process for user interaction separate from interactive software development. Development process includes iterative life cycle management, systems analysis, design, usability specifications, design representation techniques, prototyping, formative user-based evaluation.

Integrative and cross-disciplinary approach with main emphasis on usability methods and the user interaction development process. CS - Models and Theories of Human-computer Interaction Survey of models and theories of users and their use of computer equipment; conditions of application for various approaches. Task analysis, task modeling, representations and notations.

Design, implementation, use, and analysis of computing systems concerned with multiple users and stakeholders.

Analytic practices and application of human behavior theories for social computing. CS - Software Design and Quality This course focuses on critical aspects of the software lifecycle that have significant influence on the overall quality of the software system including techniques and approaches to software design, quantitative measurement and assessment of the system during implementation, testing, and maintenance, and the role of verification and validation in assuring software quality.

Includes hands-on experience with VE hardware and software. CS - Information Visualization Examine computer-based strategies for interactive visual presentation of information that enable people to explore, discover, and learn from vast quantities of data.

Learn to analyze, design, develop, and evaluate new visualizations and tools. Discuss design principles, interaction strategies, information types, and experimental results. Research-oriented course surveys current literature, and group projects contribute to the state of the art.

CS - User Interface Software Survey of software architectures to build user interfaces, particularly focused on graphical user interfaces. Includes the design and implementation of user interfaces, the use of object-oriented application frameworks, software architecture for command undo, document management, layout managers, customized components, and separation of concerns in user interface software architectures.

Discussion of research and advanced topics in User Interface Software. CS - Introduction to Artificial Intelligence A graduate level overview of the areas of search, knowledge representation, logic and deduction, learning, planning, and artificial intelligence applications.

Activation functions, optimization methods and regularization strategies used in deep multi-layered networks. Network architectures such as convolutional networks and recurrent neural networks.

Deep reinforcement learning algorithms including deep Q-learning and policy gradient methods. Deep unsupervised models such as auto-encoders, and deep generative models including variational auto-encoders and generative adversarial networks. Encoder-decoder architectures and their applications in real-world problems such as machine translation, image captioning, visual question answering, and text summarization.

CS ECE - Advanced Machine Learning Algorithms and principles involved in machine learning; focus on perception problems arising in computer vision, natural language processing and robotics; fundamentals of representing uncertainty, learning from data, supervised learning, ensemble methods, unsupervised learning, structured models, learning theory and reinforcement learning; design and analysis of machine perception systems; design and implementation of a technical project applied to real-world datasets images, text, robotics.

CS - Introduction to Urban Computing Computational approaches to address urban challenges; sensor network testbeds; algorithms for storing, processing, and mining data from urban settings; communicating patterns to decision makers; special focus on epidemiology, sustainability, transportation, social science, urban economics; case studies with applications.

The below information is based on our anticipated offering for academic year. Course offerings and modality may change in the future terms. This is a tentative schedule of course offering and subject to change. For the most accurate list of course offerings, consult the Virginia Tech Timetable of Classes. All students admitted to the MEng program under Clear waived CS or CS admission criteria as indicated on their departmental letter of admission meet the prerequisite for any course that lists CS as a prerequisite.

Students are required to have as a minimum a course on their transcript that is equivalent to CS Similar courses are taught at nearly all universities and colleges. Students are strongly advised to have proficiency in the Java programming language prior to attempting CS While not required for entry into the program, other useful background would be a Discrete Math course, and a course in basic Computer Architecture or Computer Organization, similar to CS Master of Engineering.



0コメント

  • 1000 / 1000