- CS 110X. INTRODUCTION TO PROGRAMMING FOR NON-MAJORS
- CS 210X. ACCELERATED OBJECT-ORIENTED DESIGN CONCEPTS
- CS 220X. APPLICATION BUILDING WITH OBJECT-ORIENTED CONCEPTS
- CS 403X. MOBILE AND UBIQUITOUS COMPUTING
- CS 1004. INTRODUCTION TO PROGRAMMING FOR NON-MAJORS
- CS 1101. INTRODUCTION TO PROGRAM DESIGN
- CS 1102. ACCELERATED INTRODUCTION TO PROGRAM DESIGN
- CS 2011. INTRODUCTION TO MACHINE ORGANIZATION AND ASSEMBLY LANGUAGE
- CS 2022. DISCRETE MATHEMATICS
- CS 2102. OBJECT-ORIENTED DESIGN CONCEPTS
- CS 2119. APPLICATION BUILDING WITH OBJECT-ORIENTED CONCEPTS
- CS 2223. ALGORITHMS
- CS 2301. SYSTEMS PROGRAMMING FOR NON-MAJORS
- CS 2303. SYSTEMS PROGRAMMING CONCEPTS
- CS 3013. OPERATING SYSTEMS
- CS 3041. HUMAN-COMPUTER INTERACTION
- CS 3043. SOCIAL IMPLICATIONS OF INFORMATION PROCESSING
- CS 3133. FOUNDATIONS OF COMPUTER SCIENCE
- CS 3431. DATABASE SYSTEMS I
- CS 3516. COMPUTER NETWORKS
- CS 3733. SOFTWARE ENGINEERING
- CS 4032. NUMERICAL METHODS FOR LINEAR AND NONLINEAR SYSTEMS
- CS 4033. NUMERICAL METHODS FOR CALCULUS AND DIFFERENTIAL EQUATIONS
- CS 4100. ARTIFICIAL INTELLIGENCE FOR INTERACTIVE MEDIA AND GAMES
- CS 4120. ANALYSIS OF ALGORITHMS
- CS 4123. THEORY OF COMPUTATION
- CS 4233. OBJECT-ORIENTED ANALYSIS AND DESIGN
- CS 4241. WEBWARE: COMPUTATIONAL TECHNOLOGY FOR NETWORK INFORMATION SYSTEMS
- CS 4341. INTRODUCTION TO ARTIFICIAL INTELLIGENCE
- CS 4401. SOFTWARE SECURITY ENGINEERING
- CS 4404. TOOLS AND TECHNIQUES IN COMPUTER NETWORK SECURITY
- CS 4432. DATABASE SYSTEMS II
- CS 4445. DATA MINING AND KNOWLEDGE DISCOVERY IN DATABASES
- CS 4513. DISTRIBUTED COMPUTING SYSTEMS
- CS 4515. COMPUTER ARCHITECTURE
- CS 4516. ADVANCED COMPUTER NETWORKS
- CS 4518. MOBILE & UBIQUITOUS COMPUTING
- CS 4533. TECHNIQUES OF PROGRAMMING LANGUAGE TRANSLATION
- CS 4536. PROGRAMMING LANGUAGES
- CS 4731. COMPUTER GRAPHICS
- CS 4732. COMPUTER ANIMATION
- CS 4802. BIOVISUALIZATION
- CS 4803. BIOLOGICAL AND BIOMEDICAL DATABASE MINING
Supplemental Undergraduate Courses
CS 210X. ACCELERATED OBJECT-ORIENTED DESIGN CONCEPTS
This course covers the data structures and general program-design material from CS 2102, but assumes that students have significant prior experience in object-oriented programming. The course covers object-oriented design principles more deeply and at a faster pace than in CS 2102. Students will be expected to design, implement, test, debug, and critique programs both for correctness and adherence to good object-oriented design principles. The course is designed to strengthen the design skills of students who already have a foundation in object-oriented programming
Recommended background: A rigorous introduction to program design methodology, including data-driven program design and requirements-basedtesting, such as is covered in CS 1101 and CS 1102; and significant prior experience writing object-oriented programs from scratch. Ability to write recursive programs. Experience using and writing programs to traverse both lists and trees. Advanced Placement Computer Science A courses should provide sufficient background; students from AP CS Principles courses or gentler introductions to Java programming are advised to take CS 2102 instead.
Students cannot receive credit for both CS 210x and CS 2102.
Students earning credit for CS 210x may not receive subsequent credit for CS 2119.
- CS 502. OPERATING SYSTEMS
- CS 503. FOUNDATIONS OF COMPUTER SCIENCE
- CS 504. ANALYSIS OF COMPUTATIONS AND SYSTEMS
- CS 509. DESIGN OF SOFTWARE SYSTEMS
- CS 513. COMPUTER NETWORKS
- CS 514. ADVANCED SYSTEMS ARCHITECTURE
- CS 521. LOGIC IN COMPUTER SCIENCE
- CS 522. NUMERICAL METHODS
- CS 525. TOPICS IN COMPUTER SCIENCE
- CS 526. HUMAN-ROBOT INTERACTION
- CS 528. MOBILE AND UBIQUITOUS COMPUTING
- CS 529. MULTIMEDIA NETWORKING
- CS 530. HIGH-PERFORMANCE NETWORKS
- CS 533. MODELING AND PERFORMANCE EVALUATION OF NETWORK AND COMPUTER SYSTEMS
- CS 534. ARTIFICIAL INTELLIGENCE
- CS 535. ADVANCED TOPICS IN OPERATING SYSTEMS
- CS 536. PROGRAMMING LANGUAGE DESIGN
- CS 539. MACHINE LEARNING
- CS 540. ARTIFICIAL INTELLIGENCE IN DESIGN
- CS 542. DATABASE MANAGEMENT SYSTEMS
- CS 543. COMPUTER GRAPHICS
- CS 544. COMPILER CONSTRUCTION
- CS 545. DIGITAL IMAGE PROCESSING
- CS 546. HUMAN-COMPUTER INTERACTION
- CS 548. KNOWLEDGE DISCOVERY AND DATA MINING
- CS 549. COMPUTER VISION
- CS 557. SOFTWARE SECURITY DESIGN AND ANALYSIS
- CS 558. COMPUTER NETWORK SECURITY
- CS 561. ADVANCED TOPICS IN DATABASE SYSTEMS
- CS 562. ADVANCED TOPICS IN SOFTWARE ENGINEERING
- CS 564. ADVANCED TOPICS IN COMPUTER SECURITY
- CS 565. USER MODELING
- CS 566. GRAPHICAL MODELS FOR REASONING UNDER UNCERTAINTY
- CS 567. EMPIRICAL METHODS FOR HUMAN-CENTERED COMPUTING
- CS 568. ARTIFICIAL INTELLIGENCE FOR ADAPTIVE EDUCATIONAL TECHNOLOGY
- CS 571. CASE STUDIES IN COMPUTER SECURITY
- CS 573. DATA VISUALIZATION
- CS 577. ADVANCED COMPUTER AND COMMUNICATIONS NETWORKS
- CS 578. CRYPTOGRAPHY AND DATA SECURITY
- CS 582. BIOVISUALIZATION
- CS 583. BIOLOGICAL AND BIOMEDICAL DATABASE MINING
- CS 584. ALGORITHMS: DESIGN AND ANALYSIS
- CS 585. BIG DATA MANAGEMENT
- CS 586. BIG DATA ANALYTICS
- CS 5003. FOUNDATIONS OF COMPUTER SCIENCE: AN INTRODUCTION
- CS 5084. INTRODUCTION TO ALGORITHMS: DESIGN AND ANALYSIS
Supplemental Graduate Courses
CS 525-W. SPECIAL TOPICS: INFO RETRIEVAL & SOCIAL WEB (SPRING 2018)
Professor: Kyumin Lee
This course introduces theory, design, and implementation of text-based and Web-based information retrieval systems. Students learn components and operation of search engines providing search services. Components include web crawlers, indexers, link-based ranking algorithms, and recommender systems.
This course also introduces research topics in social computing such as social media, crowdfunding, privacy and security issues related to social systems. Students will conduct a team-based project.
CS 525-T. SPECIAL TOPICS: CLOUD COMPUTING (SPRING 2018)
Professor: Tian Guo
Modern data centers are massive warehouses that host hundreds of thousands of physical servers. Those large amount of interconnected servers provide the infrastructure foundations for today’s evolving cloud computing platforms. Cloud computing, with its clear economic benefits and flexible resource offerings, has gained increasing popularities over the past decade. Today’s cloud platforms host a plethora of services, including traditional web service, mobile backend, and big data analytic, and allow customers the freedom to deploy full stack applications in the cloud.
In this course, we will discuss recent research on cloud computing and data centers, with the goals of better understanding and exploring the key challenges faced by the large scale data centers and cloud platforms. The class will cover topics such as the use of virtualization in data centers, automated resource management, data center reliability, energy efficiency, and security in shared cloud environments. The course will combine reading/discussing research papers with a course-long research project in the area of cloud computing. Students will pick a research topic to explore in their project with the guidance from the professor.
CS 525-R. SPECIAL TOPICS: SWARM INTELLIGENCE (SPRING 2018)
Professor: Carlo Pinciroli
This course will cover a wide range of topics in swarm intelligence, including mathematical, computational, and biological aspects. The course is organized in three parts. In the first part, the students will learn about complex systems and the basic concepts of self-organization, such as positive and negative feedback, symmetry breaking, and emergence. The instructor will illustrate a diverse collection of self-organized systems in nature, finance, and technology that concretize these concepts. The second part covers optimization algorithms inspired by swarm intelligence, namely ant colony optimization and particle swarm optimization. The third and final part is dedicated to swarm robotics, and will cover common swarm algorithms for task allocation, collective motion, and collective decision-making. The course will blend theory and practice, challenging the students to learn by implementing the algorithms discussed in class. The final project will involve working on a research problem in swarm robotics, and the final deliverable will include a demo and a research paper.
CS 525-N. SPECIAL TOPICS: Deep Neural Networks (SPRING 2017)
Professor: Jacob Whitehill
This course will offer a historical perspective on the mathematical, computational, and biological underpinnings of modern ("deep") neural networks. Students will learn about the most prominent network architectures from the 1950s through today -- including perceptrons, multi-layer feed-forward neural networks, convolutional neural networks (CNNs), and recurrent neural networks (RNNs) -- as well as optimization and regularization techniques used to train them -- including back-propagation, stochastic gradient descent, dropout, pooling, batch normalization, etc. Connections to related machine learning techniques and algorithms, such as probabilistic graphical models and variational inference, will be explored. The course will consist of both theory and practice, and students will have the opportunity to train neural networks for a wide range of possible applications (e.g., object detection, facial expression recognition, handwriting analysis, natural language processing) within the domains of perception, prediction, and control. A significant portion of the coursework will consist of a final research project, as well as an accompanying research paper, that is intended to be synergistic with students' own research interests.
Prerequisites: Linear algebra, calculus, and an undergraduate or graduate machine learning course.
CS 525. SPECIAL TOPICS: Urban Networks: Methods and Analysis (SPRING 2017)
Professor: Yanhua Li
In recent years, urban infrastructures have undergone a fast expansion, where big urban issues emerge over time, such as pollution, traffic congestion, etc. Urban Network Analysis aims to identify and solve various urban challenges by integrating and analyzing heterogeneous urban network data sources, such as human mobility, transactions, power consumption, weather, etc. This course introduces the framework of urban network analysis, with techniques in urban sensing, data management, data analytics, and services. This is a seminar style course, with discussions and weekly presentations on the state-of-the-art literature. There are two team projects involving analyzing large-scale real urban data to tackle urban challenges.
Prerequisites: DS 501 (Introduction to Data Science) or DS 502 / MA 543 (Statistical Methods for Data Science) or DS 503 / CS 585 (Big Data Management) or an equivalent graduate level course in Data Mining, Machine Learning, or Data Management, and proficiency in a high level programming language.
CS 525-T. SPECIAL TOPICS: Theory and Practice of Computing Education: A Research Seminar (SPRING 2017)
Professor: Kathryn Fisler
Teaching intro computer science is easy, right? Show students a bunch of constructs and programs in a currently-popular language, then tell them to write a bunch of different programs that do something cool, right?. A growing body of research is unpacking how people actually learn computing, and it's a lot more subtle than most of us realize. This seminar will cover core material on how people understand and learn computing. We'll look at papers about learning in both novices and experts, in a variety of contexts, on topics including but beyond intro programming. Each student will read, present, and discuss papers, and complete a course project (individual topics to be determined in consultation with the instructor). Students will gain an appreciation for the subtleties of learning and teaching about computing, particularly as it applies to national trends around MOOCs, K-12, and exploding interest in learning computer science both in and out of formal schooling.
Schedule: Tues/Thurs 4 - 5:40 (ending 5pm on Tuesdays)
CS 525. SPECIAL TOPICS:Introduction to Applied Computer Science with Data Structures and Algorithms (FALL 2016)
Professor: Thierry Petit
This course an introductory graduate course teaching core computer science topics typically found in an undergraduate Computer Science curriculum, but at a graduate-level pace. It is primarily intended for students with little formal preparation in Computer Science to gain experience with fundamental Computer Science topics. The main objective of this course will be a review of programming concepts, including object programming. After this review, the focus of the course will be on data structures from the point of view of the operations performed upon the data and to apply analysis and design techniques to non-numeric algorithms that act on data structures. The data structures covered include lists, stacks, queues, trees and graphs. Projects will focus on the writing of programs to appropriately integrate data structures and algorithms for a variety of applications. Programs will be written using Python 3, a modern language popular in many scientific and engineering disciplines. Along the way, students will learn key notions that will help them to learn how to be effective in other languages. End of course will include a short introduction to Java. This course may not be used to satisfy degree requirements for a B.S., M.S or Ph.D. degree in Computer Science or a minor in Computer Science. It may satisfy the requirements for other degree programs at the discretion of the program review committee for the particular degree.
Schedule: Aug 25 - Dec 16, Monday and Wednesday 4-5:20PM
CS 525-S. SPECIAL TOPICS:Computer Networks and Security (FALL 2016)
Professor: Scott Doremus
This course provides a comprehensive introduction to the field of computer and network security as it applies to the power transmission and distribution industry. The course has been tailored to the power industry, and deals with topics not generally covered in similar courses, such as the nature of the NERC CIP standards and how they can/should be implemented, as well as emphasis on Supervisory Control and Data Acquisition (SCADA) networks, Programmable Logic Controllers (PLCs) the Smart Grid, and similar industry-specific concerns. Security architectures and protocols and their impact on computers and networks are examined. Critical computer and network security aspects are identified and examined from the standpoints of both the user and the attacker. Computer system and network vulnerabilities are examined, and mitigating approaches are identified and evaluated. Both the principles and practice of computer and network security are introduced. The basic issues to be addressed by a computer and network security capability are explored.
CS 525-T. SPECIAL TOPICS: INTERNET OF THINGS INCLUDING WIRELESS SENSOR NETWORKS (Fall 2015)
Professor: Bob Kinicki
This course explores new emerging issues around the concept known as the Internet of Things (IoT). The course will use the current literature to investigate topics that include broader issues such as the interdependencies between the Internet of Things to current activities such as M2M (machine-to-machine) protocols, Cloud support, Big Data issues and anticipating the impact of future IoT traffic on current network infrastructure that includes cellular 4G LTE and WiFi networks. Part of the course will focus on Wireless Sensor Networks (WSNs) as they apply to IoT issues and consider current issues in the IoT community about new initiatives both academic and corporate that involve IoT topologies, networking standards, protocol stacks and security issues. Students taking the course need to have fundamental knowledge of computer networks as found in CS4516, CS513 or ECE506. While prior network programming experience will be useful, course prerequisites do not include a strong programming background.
CS 525-F. DIGITAL FORENSICS (Fall 2015)
Professor: Suzanne Mello-Stark
This course examines forensic science techniques and explores ways in which to apply them to the discovery, collection and analysis of digital evidence. Students practice extracting data from computer hardware, operating systems, networks and/or mobile devices. This class also delves into the legal considerations surrounding digital forensic investigations. Topics include studying how to document forensic procedures and providing expert testimony. This class requires students to engage in current research and a course project that further develops these themes. Students from all departments are welcome.
Prerequisites: a graduate or undergraduate course in security or equivalent experience.
CS 525-B. BIOINFORMATICS OF DISEASE (Fall 2015)
Professor: Dmitry Korkin
The goal of this course is to introduce the students to the bioinformatics and data mining methods that focus on studying diseases. The course introduces basic molecular principles behind the diseases, formulate main challenges to solve, and describe in detail the computational methodology used to solve these challenges. Both, classical and state-of-the art computational methods are introduced. Three main classes of diseases are covered: Mendelian diseases, infectious diseases, and complex genetic disorders. Computational methodology covered in the course include sequence analysis, structural bioinformatics, network analysis, cell informatics, GWAS, biomedical visualization, and computational epidemiology. As a part of the course, students will be engaged in a course-long research project.
CS 525-A. INTRODUCTION TO APPLICATIONS OF CS WITH DATA STRUCTURES AND ALGORITHMS (Fall 2015)
Professor: Thierry Petit
This is an introductory graduate course teaching core computer science topics typically found in an undergraduate Computer Science curriculum, but at a graduate-level pace. It is primarily intended for students with little formal preparation in Computer Science to gain experience with fundamental Computer Science topics.
After a review of programming concepts the focus of the course will be on data structures from the point of view of the operations performed upon the data and to apply analysis and design techniques to non-numeric algorithms that act on data structures. The data structures covered include lists, stacks, queues, trees and graphs. Projects will focus on the writing of programs to appropriately integrate data structures and algorithms for a variety of applications.
This course may not be used to satisfy degree requirements for a B.S., M.S., or Ph.D. degree in Computer Science or a minor in Computer Science. It may satisfy the requirements for other degree programs at the discretion of the program review committee for the particular degree.
CS 525-*. (Fall 2015)
Professor: Neil Heffernan
This course acquaints participants with the fundamental concepts and state-of-the-art computer science research in online instructional systems. Advanced interactive instructional systems serve as tutors, as learning companions or both. This course introduces their design, the technology that powers them, the learning theories that motivate them and results from experimental evaluations. We will cover both the learning theory, and how to design and build systems consist with existing theories. The course consists of weekly presentations on current advanced literature, discussions and a term project. Prerequisite: Proficiency in a high level programming language.
CS 525-P. PRIVACY PROTECTIONS, TECHNICAL AND OTHERWISE (Spring 2016)
Professor: Susan Landau
This course will cover privacy from a technical viewpoint, with a strong dose of law, policy, and the real world. The focus will be on technical solutions but policy and legal privacy protections will also be covered at some depth, as will how these three aspects of privacy protections interact. The course will study various privacy technologies, including cryptography (very briefly), k-anonymity, differential privacy, and data provenance. We'll consider the limitations of, and attacks on, these privacy protections, and to what extent these protections realistically solve the problems. Finally, we will consider privacy within the context of applications such as identity management. Prior knowledge of cryptography, such as ECE/CS 578, Cryptography and Data Security is not assumed, but would be a welcome complement.
DS 595/CS 525-G. Graph Mining And Network Analysis (Spring 2016)
Professor: Xiangnan Kong
This course focuses on graph mining and network analytics, exploring the leading research, applications, and methods in mining graph and network data. The course will cover a range of multidisciplinary topics, including community detection in social networks, analyzing biomedical networks, mining urban networks, searches for functional modules in biological pathways and structural analysis in chemical compounds. These topics will be pursued through independent reading, class discussion, and a final project. We are going to discuss the state-of-the-art research results and identify potential topics for graduate research in graph mining.
Prerequisites: undergraduate/graduate data mining or machine learning, programming experience.