]> Course Recommender Individuals Ontology This ontology ... Jacob Shomstein Kelly Fellenzer Owen Xie Sola Shirai https://spec.edmcouncil.org/fibo/ontology/BE/ https://spec.edmcouncil.org/fibo/ontology/FND/ https://www.omg.org/spec/LCC/ Rensselaer Polytechnic Institute globally recognized university situated on 275 acres in Troy NY, offering 746 labs, studios, and technology spaces used for research RPI Rensselaer https://rpi.edu/about/ Rensselaer Polytechnic Institute address physical street address for Rensselaer Polytechnic Institute 110 8th Street 12180-3522 Troy Rensselaer Polytechnic Institute as legal entity legal entity that is Rensselaer Polytechnic Institute ARTS COGS COMM ECON IHSS LANG LITR PHIL PSYC STSH STSS WRIT 2000 ARTS COMM IHSS LANG LITR PHIL STSH WRIT COGS ECON IHSS PSYC STSS ARTS COGS COMM ECON IHSS LANG LITR PHIL PSYC STSH STSS WRIT 4000 communication intensive ARTS COGS COMM ECON IHSS LANG LITR PHIL PSYC STSH STSS WRIT IHSS-1140 IHSS-1235 IHSS-1972 COGS-2120 COGS-4210 COGS-4410 COGS-4420 COGS-4640 COGS-4880 COGS-4960 PHIL-4960 PHIL-4961 4 An introduction to computer programming algorithm design and analysis. Additional topics include basic computer organization; internal representation of scalar and array data; use of top-down design and subprograms to tackle complex problems; abstract data types. Enrichment material as time allows. Interdisciplinary case studies, numerical and nonnumerical applications. Students who have passed CSCI 1200 cannot register for this course. Computer Science I 1100 CSCI-1100 1 This course teaches elementary programming concepts using the MATLAB environment for engineering students with little or no prior programming experience. Concepts include variables, looping, and function calls. Students cannot get credit for CSCI 1190 after earning credit for CSCI 1100 or any higher-level CSCI course. Beginning Programming for Engineers 1190 CSCI-1190 4 Programming concepts: functions, parameter passing, pointers, arrays, strings, structs, classes, templates. Mathematical tools: sets, functions, and relations, order notation, complexity of algorithms, proof by induction. Data structures and their representations: data abstraction and internal representation, sequences, trees, binary search trees, associative structures. Algorithms: searching and sorting, generic algorithms, iterative and recursive algorithms. Methods of testing correctness and measuring performance. Data Structures 1200 CSCI-1200 4 This course introduces important mathematical and theoretical tools for computer science, including topics from set theory, combinatorics, and probability theory, and then proceeds to automata theory, the Turing Machine model of computation, and notions of computational complexity. The course will emphasize formal reasoning and proof techniques. Foundations of Computer Science 2200 CSCI-2200 4 Data structures and algorithms, and the mathematical techniques necessary to design and analyze them. Basic data structures: lists, associative structures, trees. Mathematical techniques for designing algorithms and analyzing worst-case and expected-case algorithm efficiency. Advanced data structures: balanced trees, tries, heaps, priority queues, graphs. Searching, sorting. Algorithm design techniques: dynamic programming, greedy algorithms, divide-and-conquer, backtracking. Example graph, string, geometric, and numeric algorithms. Introduction to Algorithms 2300 CSCI-2300 4 Introduction to computer organization, assembler language, and operating systems. Computer systems organization: processors, memory, I/O. Digital logic: gates, Boolean algebra, digital logic circuits, memory, buses. Microprogramming. Machine level: instruction formats, addressing modes, instruction types, flow of control. Operating systems: virtual memory, virtual I/O instructions, processes, interprocess communication. Numeric representation. Assembler language: the assembly process, macros, linking, loading. Advanced architectures: RISC architectures, parallel architectures. Computer Organization 2500 CSCI-2500 4 A study of important concepts in software design, implementation, and testing. Topics include specification, abstraction with classes, design principles and patterns, testing, refactoring, the software development process, GUI and event-driven programming, and cloud-based programming. The course also introduces implementation and testing tools, including IDEs, revision control systems, and other frameworks. The overarching goal of the course is for students to learn how to write correct and maintainable software. Principles of Software 2600 CSCI-2600 1 2960 CSCI-2960 4 This course presents fundamental ideas and techniques of modern algorithm design and analysis. After completing this course, students should be able to formally analyze and design efficient algorithms for a variety of computational problems. Topics covered include Greedy Algorithms, Dynamic Programming, Network Flow, NP-Completeness, Linear Programming, Network Algorithms, as well as probabilistic and approximate algorithms. Design and Analysis of Algorithms 4020 CSCI-4020 4 Topics and techniques of artificial intelligence using the language LISP. Topics include search, knowledge representation, expert systems, theorem proving, natural language interfaces, learning, game playing, and computer vision. Techniques include pattern matching, data-driven programming, substitution rules, frames, heuristic search, transition networks, neural networks, and evolutionary computation. Development of programming proficiency in LISP is emphasized. Introduction to Artificial Intelligence 4150 CSCI-4150 4 Discussion of various aspects of computer operating systems design and implementation. Topics include I/O programming, concurrent processes and synchronization problems, process management and scheduling of processes, virtual memory management, device management, file systems, deadlock problems, system calls, and interprocess communication. Programming projects are required. Operating Systems 4210 CSCI-4210 4 Fundamental concepts and methods of graph theory and its applications to computing and the social and natural sciences. Topics include graphs as models, representation of graphs, trees, distances, matchings, connectivity, flows in networks, graph colorings, Hamiltonian cycles, traveling salesman problem, planarity. All concepts, methods, and applications are presented through a sequence of exercises and problems, many of which are done with the help of novel software systems for combinatorial computing. Graph Theory 4260 CSCI-4260 4 Techniques and methods for parallel programming: models of parallel machines and programs, efficiency and complexity of parallel algorithms. Paradigms of parallel programming and corresponding extensions to sequential programming languages. Overview of parallel languages and coordination languages and models; programming on networks of workstations. Basic parallel algorithms: elementary computation, matrix multiplication, sorting; sample scientific application. Parallel Programming 4320 CSCI-4320 4 Discussion of the state of practice in modern database systems, with an emphasis on relational systems. Topics include database design, database system architecture, SQL, normalization techniques, storage structures, query processing, concurrency control, recovery, security, and new directions such as object-oriented and distributed database systems. Students gain hands-on experience with commercial database systems and interface building tools. Programming projects are required. Database Systems 4380 CSCI-4380 3 Informatics covers a broad range of disciplines addressing challenges in the explosion of data and information resources. Xinformatics provides commonality for implementations in specific disciplines, e.g. X=astro, geo. Informatics' theoretical bases are information and computer science, cognitive science, social science, library science, aggregating these studies and adding the practice of information processing, and the engineering of information systems. This course grounds the material that students will learn in discipline areas by coursework and project assignments. X-informatics 4400 CSCI-4400 4 Software system design methodology emphasizing use of object oriented modeling of application domains and of software systems and emphasizing the roles of written and oral communication in software engineering. Project management and software testing. Individual and team projects include specification, software architecture, user interfaces, and documentation of the phases of a project. This is a communication-intensive course. Software Design and Documentation 4440 CSCI-4440 4 The goal of this course is to introduce students to program analysis and its many applications in software engineering, particularly in improving software quality and software productivity. Concretely, students who successfully complete this course should be able to: (1) understand and apply program analysis techniques, such as dataflow analysis and type-based analysis; (2) implement program analysis; (3) understand and apply software testing techniques, such as black-box testing and white-box testing; and (4) understand and apply refactoring techniques. Principles of Program Analysis 4450 CSCI-4450 4 This course follows Game Development I. Students work in interdisciplinary teams to create one large-scale 3D game, working from concept to public release. Projects may include games, educational games, serious games and simulations, and interactive artworks, and will focus on creative design, technical execution, and use of game design principles. The course builds on skills and knowledge in previous courses in the GSAS core, including game design, game mechanics, game programming, art, and narrative. Game Development II 4540 CSCI-4540 4 Visualizing data is a key step in understanding many problems. This course is designed to introduce students to methods of visualizing many different types of data, such as images, three-dimensional surfaces, flow fields, and medical data. Both existing visualization software and program custom visualizations using C++ and OpenGL will be used. Course activities include discussion of recent and classic research papers, weekly homework assignments, in-class critiques of visualization artifacts, and a final project to explore creative uses of these techniques. This is a communication-intensive course. Interactive Visualization 4550 CSCI-4550 4 A survey of numerical methods for scientific and engineering problems. Topics include numerical solution of linear and nonlinear algebraic equations, interpolation and least squares approximations, numerical integration and differentiation, eigenvalue problems, and an introduction to the numerical solution of ordinary differential equations. Emphasis is placed on efficient computational procedures including the use of library and student written procedures using high-level software such as MATLAB. Numerical Computing 4800 CSCI-4800 4 Derivation, analysis, and use of computational procedures for solving differential equations. Topics covered include ordinary differential equations (both initial value and boundary value problems) and partial differential equations. Runge-Kutta and multistep methods for initial value problems. Finite difference methods for partial differential equations including techniques for heat conduction, wave propagation, and potential problems. Basic convergence and stability theory. Introduction to Numerical Methods for Differential Equations 4820 CSCI-4820 4 4961 CSCI-4961 4 4962 CSCI-4962 4 4964 CSCI-4964 4 4967 CSCI-4967 4 4969 CSCI-4969 4 4976 CSCI-4976 4 A survey of fundamental issues in design of efficient programs for parallel computers. The topics discussed include models of parallel machines and programs, efficiency of parallel algorithms, programming styles for shared memory, message passing, data parallelism, and using MPI in scientific parallel programs. Parallel programming project required. Parallel Computing 6360 CSCI-6360 3 Informatics covers a broad range of disciplines addressing challenges in the explosion of data and information resources. Xinformatics provides commonality for implementations in specific disciplines, e.g. X=astro, geo. Informatics' theoretical bases are information and computer science, cognitive science, social science, library science, aggregating these studies and adding the practice of information processing, and the engineering of information systems. This course grounds the material that students will learn in discipline areas by coursework and project assignments. X-informatics 6400 CSCI-6400 4 The goal of this course is to introduce students to program analysis and its many applications in software engineering, particularly in improving software quality and software productivity. Concretely, students who successfully complete this course should be able to: (1) understand and apply program analysis techniques, such as dataflow analysis and type-based analysis; (2) implement program analysis; (3) understand and apply software testing techniques, such as black-box testing and white-box testing; and (4) understand and apply refactoring techniques. Principles of Program Analysis 6450 CSCI-6450 4 Visualizing data is a key step in understanding many problems. This course is designed to introduce students to methods of visualizing many different types of data, such as images, three-dimensional surfaces, flow fields, and medical data. Both existing visualization software and program custom visualizations using C++ and OpenGL will be used. Course activities include discussion of recent and classic research papers, weekly homework assignments, in-class critiques of visualization artifacts, and a final project to explore creative uses of these techniques. This is a communication-intensive course. Interactive Visualization 6550 CSCI-6550 4 Numerical methods and analysis for linear and nonlinear PDEs with applications from heat conduction, wave propagation, solid and fluid mechanics, and other areas. Basic concepts of stability and convergence (Lax equivalence theorem, CFL condition, energy methods). Methods for parabolic problems (finite differences, method of lines, ADI, operator splitting), methods for hyperbolic problems (vector systems and characteristics, dissipation and dispersion, shocks capturing and tracking schemes), methods for elliptic problems (finite difference and finite volume methods). Numerical Solution of Partial Differential Equations 6840 CSCI-6840 0 Presentation of current developments in computer science. Reports by students. Computer Science Seminar 6900 CSCI-6900 0 Topics in Computer Science 6960 CSCI-6960 3 6961 CSCI-6961 4 6962 CSCI-6962 4 6964 CSCI-6964 4 6967 CSCI-6967 4 6969 CSCI-6969 1 Active participation in a semester-long project, under the supervision of a faculty adviser. A Professional Project often serves as a culminating experience for a Professional Master's program but, with departmental or school approval, can be used to fulfill other program requirements. With approval, students may register for more than one Professional Project. Professional Projects must result in documentation established by each department or school, but are not submitted to the Office of Graduate Education and are not archived in the library. Grades of A, B, C, or F are assigned by the faculty adviser at the end of the semester. If not completed on time, a formal Incomplete grade may be assigned by the faculty adviser, listing the work remaining to be completed and the time limit for completing this work. Professional Project 6970 CSCI-6970 1 Active participation in a master's-level project, under the supervision of a faculty adviser, leading to a master's project report. Grades S or U are assigned at the end of the semester. If recommended by the adviser, the master's project may be accepted by the Office of Graduate Education to be archived in the library. Master's Project 6980 CSCI-6980 1 Active participation in research, under the supervision of a faculty adviser, leading to a master's thesis. Grades of S or U are assigned by the adviser each term to reflect the student's research progress for the given semester. Once the thesis has been presentend, approved by the adviser, and accepted by the Office of Graduate Education, it will be archived in a standard format in the library. Master's Thesis 6990 CSCI-6990 1 Active participation in research, under the supervision of a faculty adviser, leading to a doctoral dissertation. Grades of IP are assigned until the dissertation has been publicly defended, approved by the doctoral committee, and accepted by the Office of Graduate Education to be archived in a standard format in the library. Grades will then be listed as S. Dissertation 9990 CSCI-9990 1 2961 CSCI-2961 4 Introduction to the theory, algorithms, and applications of machine learning (supervised, reinforcement, and unsupervised) from data: What is learning? Is learning feasible? How can we do it? How can we do it well? The course offers a mix of theory, technique, and application with additional selected topics chosen from Pattern Recognition, Decision Trees, Neural Networks, RBF's, Bayesian Learning, PAC Learning, Support Vector Machines, Gaussian processes, and Hidden Markov Models. Machine Learning from Data 4100 CSCI-4100 4 Programming with an overview of the principles of computer networks, including a detailed look at the OSI reference model and various popular network protocol suites. Concentration on Unix interprocess communication (IPC), network programming using TCP and UDP, as well as client-side and mobile programming. Programming projects are required. Network Programming 4220 CSCI-4220 4 This course will offer an introduction to network science and a review of current research in this area. Classes will interchangeably present chapters from the textbook and related current research. The emphasis will be on the mathematical background of network science: graphs and networks; random networks and various types of scale-free networks; network properties such as assortativity, mobility, robustness, social networks, and communities; and dynamics of spreading in networks. Frontiers of Network Science 4250 CSCI-4250 4 This course introduces Linux kernel programming basics and starts by examining how Berkeley sockets bridge the user-kernel gap. The remainder of the course is spent looking into transport layer (e.g., TCP) and network layer (e.g., IP) implementations. Students do both individual and group programming projects. In addition to coding, there are detailed write-ups and peer reviews in this course. This is a communication-intensive course. Networking in the Linux Kernel 4310 CSCI-4310 4 This course provides an introduction to ontologies, their uses, and an overview of their application in semantically enabled systems. Ontologies encode term meanings and are used to improve communication and enable computer programs to function more effectively. Class participants learn how to use ontologies in Web-based applications and evaluate ontologies for reuse. Participants read relevant papers, learn how to critically review ontology papers and ontologies, and participate in group project(s) designing, using, and evaluating ontologies. Ontologies 4340 CSCI-4340 3 Data science is advancing the inductive conduct of science and is driven by the greater volumes, complexity, and heterogeneity of data being made available over the Internet. It combines aspects of data management, library science, computer science, and physical science. It is changing the way all of these disciplines do both their individual and collaborative work. Key methodologies in application areas based on real research experience are taught. Data Science 4350 CSCI-4350 4 Data and Society provides a broad overview of how society is leveraging and responding to the social, organizational, policy, and technical opportunities and challenges of a data-driven world. Course themes focus on various aspects of the data ecosystem, data and innovation, and data and the broader community. Assignments build writing, presentation, and critical thinking, and assessment skills, all of which are important for professional success. This is a communication-intensive course. Data and Society 4370 CSCI-4370 4 This course will provide an introductory survey of the main topics in data mining and knowledge discovery in databases (KDD), including: classification, clustering, association rules, sequence mining, similarity search, deviation detection, and so on. Emphasis will be on the algorithmic and system issues in KDD, as well as on applications such as Web mining, multimedia mining, bioinformatics, geographical information systems, etc. Data Mining 4390 CSCI-4390 4 This course is a study of the important concepts found in current programming languages. Topics include language processing (lexical analysis, parsing, type-checking, interpretation and compilation, run-time environment), the role of abstraction (data abstraction and control abstraction), programming paradigms (procedural, functional, object-oriented, logic-oriented, generic), and formal language definition. Programming Languages 4430 CSCI-4430 4 This course focuses on software development techniques in support of large-scale software projects and maintenance. Specific topics include various programming paradigms and techniques, approaches to testing and automation, debugging, refactoring, and inheriting code. Individual and team assignments are required, including programming assignments. Project topics include text processing, building a search engine, and the like. This is a communication-intensive course. Large-Scale Programming and Testing 4460 CSCI-4460 3 A survey of the fundamental issues necessary for the design, analysis, control, and implementation of robotic systems. The mathematical description of robot manipulators in terms of kinematics and dynamics. Hardware components of a typical robot arm. Path following, control, and sensing. Examples of several currently available manipulators. Robotics I 4480 CSCI-4480 4 This course explores the principles of distributed systems, emphasizing fundamental issues underlying the design of such systems: communication, coordination, synchronization, and fault-tolerance. Key algorithms and theoretical results will be studied and students will explore how these foundations play out in modern systems and applications. Distributed Systems and Algorithms 4510 CSCI-4510 3 Topics in Computer Science 4960 CSCI-4960 4 4966 CSCI-4966 4 4968 CSCI-4968 4 4970 CSCI-4970 4 Introduction to the theory, algorithms, and applications of machine learning (supervised, reinforcement, and unsupervised) from data: What is learning? Is learning feasible? How can it be done? How can it be done well? The course offers a mix of theory, technique, and application with additional selected topics chosen from Pattern Recognition, Decision Trees, Neural Networks, RBF's, Bayesian Learning, PAC Learning, Support Vector Machines, Gaussian processes, and Hidden Markov Models. Machine Learning from Data 6100 CSCI-6100 4 This course will offer an introduction to network science and a review of current research in this area. Classes will interchangeably present chapters from the textbook and related current research. The emphasis will be on the mathematical background of network science: graphs and networks; random networks and various types of scale-free networks; network properties such as assortativity, mobility, robustness, social networks, and communities; and dynamics of spreading in networks. Frontiers of Network Science 6250 CSCI-6250 4 This course introduces Linux kernel programming basics and starts by examining how Berkeley sockets bridge the user-kernel gap. The remainder of the course is spent looking into transport layer (e.g., TCP) and network layer (e.g., IP) implementations. Students do both individual and group programming projects. In addition to coding, there are detailed write-ups and peer reviews in this course. Networking in the Linux Kernel 6310 CSCI-6310 4 This course provides an introduction to ontologies, their uses, and an overview of their application in semantically enabled systems. Ontologies encode term meanings and are used to improve communication and enable computer programs to function more effectively. Class participants learn how to use ontologies in web-based applications and evaluate ontologies for reuse. Participants read relevant papers, learn how to critically review ontology papers and ontologies, and participate in group project(s) designing, using, and evaluating ontologies. Ontologies 6340 CSCI-6340 3 Data science is advancing the inductive conduct of science and is driven by the greater volumes, complexity, and heterogeneity of data being made available over the Internet. It combines aspects of data management, library science, computer science, and physical science. It is changing the way all of these disciplines do both their individual and collaborative work. Key methodologies in application areas based on real research experience are taught. Data Science 6350 CSCI-6350 4 This course will provide an introductory survey of the main topics in data mining and knowledge discovery in databases (KDD), including: classification, clustering, association rules, sequence mining, similarity search, deviation detection, and so on. Emphasis will be on the algorithmic and system issues in KDD, as well as on applications such as Web mining, multimedia mining, bioinformatics, geographical information systems, etc. Data Mining 6390 CSCI-6390 4 This course focuses on software development techniques in support of large-scale software projects and maintenance. Specific topics include various programming paradigms and techniques, approaches to testing and automation, debugging, refactoring, and inheriting code. Individual and team assignments are required, including programming assignments. Project topics include text processing, building a search engine, and the like. Large-Scale Programming and Testing 6460 CSCI-6460 4 This course explores the principles of distributed systems, emphasizing fundamental issues underlying the design of such systems: communication, coordination, synchronization, and fault-tolerance. Key algorithms and theoretical results will be studied and students will explore how these foundations play out in modern systems and applications. Distributed Systems and Algorithms 6510 CSCI-6510 4 Gaussian elimination, special linear systems (such as positive definite, banded, or sparse), introduction to parallel computing, iterative methods for linear systems (such as conjugate gradient and preconditioning), QR factorization and least squares problems, and eigenvalue problems. Computational Linear Algebra 6800 CSCI-6800 4 Galerkin's method and extremal principles, finite element approximations (Lagrange, hierarchical and 3-D approximations, interpolation errors), mesh generation and assembly, adaptivity (h-, p-, hp-refinement). Error analysis and convergence rates. Perturbations resulting from boundary approximation, numerical integration, etc. Time dependent problems including parabolic and hyperbolic PDEs. Applications will be selected from several areas including heat conduction, wave propagation, potential theory, and solid and fluid mechanics. Finite Element Analysis 6860 CSCI-6860 4 A self-contained course that includes topics from number theory, basic cryptography, and protocol security. This is a hybrid course with sufficient depth in both theory and hands-on experience with network protocols. Topics include: Classical Cryptography, Block Ciphers (DES, AES), Information Theoretical Cryptography, Randomness, RNG and Stream Ciphers, Hash and MAC Algorithms, Public-Key Cryptography, Elliptic Curve Cryptography, Digital Signatures and Identification, Internet Attacks, Web Security, SSL and PGP. This is a communication-intensive course. Cryptography and Network Security I 4230 CSCI-4230 4 4963 CSCI-4963 4 4965 CSCI-4965 Arts Cognitive Science Science and Technology Studies - Humanities Science and Technology Studies - Social Sciences Communication Economics Games and Simulations Arts and Sciences Interdisciplinary H&SS Languages Literature Philosophy Psychology Writing Biomedical Engineering Chemical Engineering Electrical and Computer Systems Engineering Environmental and Energy Engineering Mechanical, Aerospace, and Nuclear Engineering Materials Science and Engineering Civil Engineering Core Engineering Engineering Science Industrial and Systems Engineering Electric Power Engineering Biochemistry and Biophysics Computer Science Earth and Environmental Science Interdisciplinary Environmental Interdisciplinary Science Math Programming, Probability, and Statistics Physics Astronomy Biology Chemistry Mathematics Information Technology and Web Science Architecture Lighting Management Administrative Courses Aerospace Studies (Air Force ROTC) Naval Science (Navy ROTC) Military Science (Army ROTC) Co-Ops ARTS COGS STSH PHYS STSS COMM ECON GSAS IHSS LANG LITR PHIL PSYC WRIT BMED CHME ECSE ENVE MANE MTLE CIVL ENGR ESCI ISYE EPOW BCBP CSCI ERTH IENV ISCI MATP ASTR BIOL CHEM MATH ITWS ARCH LGHT MGMT ADMN USAF USNA USAR COOP HASS Core Requirement 24 1000-Level Restriction 12 Humanities Distribution 3 Social Science Distribution 3 4000-Level Requirement 4 Communication Intensive Requirement 4 Integrative Pathway Integrative Pathway - Artificial Intelligence 12 AI part 1 3 AI part 2 3 AI part 3 3 spring 2017 summer 2017 fall 2017 spring 2018 summer 2018 fall 2018 spring 2019 summer 2019 fall 2019 spring 2020 summer 2020 fall 2020 spring 2021 summer 2021 fall 2021 placeholder for topic owen jacob kelly