Go to Main Content

Purdue Self-Service

 

HELP | EXIT

Catalog Entries

 

Spring 2024
Apr 25, 2024
Transparent Image
Information Select the Course Number to get further detail on the course. Select the desired Schedule Type to find available classes for the course. The Schedule Type links will be available only when the schedule of classes is available for the selected term.

CS 10100 - Digital Literacy
Credit Hours: 3.00. Survey of the digital world, computers as multi-purpose machines, digital information, definition of programming, computers everywhere (the Internet of things), computers that perform simultaneous computations, how apps work, data storage and searching, databases, digital audio, graphics, video, computer networks and the Internet, the World Wide Web and Internet sharing services, network and Internet performance, real-time services, artificial intelligence, cloud computing, security, and privacy. CS students may take course for elective credit only.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division, GTC-Science, Tech & Society, UC-Science, Tech & Society

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand how to decide the disk size needed when purchasing a computer or smart phone. 2. Understand why smart phones, desktop, and laptop computers have more than one processor (such as dual-core and quad-core devices). 3. Understand why computers are embedded in appliances and automobiles. 4. Understand why saving a document is required after changes are made and what a computer does when one saves a document. 5. Understand why music is available in a variety of digital formats, such as m4a, mp3, and wav. 6. Understand why someone acquires an Internet service that is 10 times faster than their current service, it is unlikely that web pages will load 10 times faster. 7. Understand when someone uses the Internet to communicate with a person who is halfway around the world, how the information travels between the two computers. 8. Understand why when someone streams a movie, they have to wait before the movie starts playing. 9. Understand why a computer may be able to fool you into thinking a human is really answering your questions. 10. Understand whether it is possible for a computer to control a car and navigate it through traffic on an actual highway. 11. Understand how, if you receive an email message that appears to come from a friend asking you to click on a link to see a Facebook page, you can tell whether it is safe to click the link or not. 12. Understand where, when you upload a video to a cloud service (e.g., YouTube), the video is stored 13. Understand whether if a new virus appears, the virus protection software on your computer will prevent the virus from infecting your computer. 14. Understand whether or not if your bank's URL begins with "https", a criminal who wiretaps your Internet connection can see each keystroke you send to the bank.


CS 15900 - C Programming
Credit Hours: 3.00. Fundamental principles, concepts, and methods of programming in C, with emphasis on applications in the physical sciences and engineering. Basic problem solving and programming techniques; fundamental algorithms and data structures; and use of programming logic in solving engineering problems. Students are expected to complete assignments in a collaborative learning environment. Credit cannot be obtained for both CS 15900 and any of CS 15600, CS 15800 and CS 18000.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Indiana College Network, Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Individual Study, Laboratory, Lecture
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Credit By Exam, Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand the fundamental principles, concepts and methods of computer programming. 2. Use the C programming language to developing solutions in the domains of physical sciences, mathematics, and engineering. 3. Demonstrate the ability to function as part of a technical team to generate a solution to a programming problem. 4. Analyze alternative algorithm designs to implement solutions that make efficient use of limited resources of the computer.


CS 17600 - Data Engineering In Python
Credit Hours: 3.00. The course introduces students to programming fundamentals in Python, including loops, functions and different data types, and provides an introduction to data engineering including working with common data formats and learning the basics of data wrangling. Students will format, extract, clean, filter, transform, search, combine, summarize, aggregate, and visualize a diverse range of data sets. Python libraries including MatPlotLib and Pandas are used.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Write Python code using loops, decision statements, and functions. 2. Explain how arguments are passed in Python functions and how the scope of variables impacts execution. 3. Use the operations on lists, tuples, and dictionaries to perform appropriate data manipulations. 4. Using Matplotlib, create informative plots and other data visualizations. Explain the key qualities of good visualizations. 5. Creating and manipulating DataFrames using Pandas. 6. Create Python code as well as methods in Pandas to select, search, change, and summarize data in tables. 7. Explain how to identify and fill in missing values in data. 8. Apply Pandas functions combine and merge datasets, perform a range of data aggregations, groupings and cross tabulations. 9. Given multiple data sets, demonstrate how to summarize, transform, combine the data sets, and aggregate and visualize the resulting data set.


CS 17700 - Programming With Multimedia Objects
Credit Hours: 4.00. Introduction to computers and programming: number representations, primitive data types and operations, basic control structures, programming applets and applications using graphical user interfaces, programming for detecting events and performing actions, processing multimedia objects such as images and sounds. Throughout the course, examples are drawn from a variety of fields in the natural sciences. Not open to CS majors with a grade of C or better in CS 18000. Not open to non-CS majors with a grade of C or better in any course in computer programming.
0.000 OR 4.000 Credit hours

Levels: Indiana College Network, Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture, Recitation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette


CS 18000 - Problem Solving And Object-Oriented Programming
Credit Hours: 4.00. Problem solving and algorithms, implementation of algorithms in a high level programming language, conditionals, the iterative approach and debugging, collections of data, searching and sorting, solving problems by decomposition, the object-oriented approach, subclasses of existing classes, handling exceptions that occur when the program is running, graphical user interfaces (GUIs), data stored in files, abstract data types, a glimpse at topics from other CS courses. Intended primarily for students majoring in computer sciences. Credit cannot be obtained for both CS 18000 and any of 15600, 15800 and 15900. Not open to students with credit in CS 24000.
0.000 OR 4.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture, Recitation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand solving problems by analyzing the problem, designing an algorithm, and programming the solution.


CS 18200 - Foundations Of Computer Science
Credit Hours: 3.00. Logic and proofs; sets, functions, relations, sequences and summations; number representations; counting; fundamentals of the analysis of algorithms; graphs and trees; proof techniques; recursion; Boolean logic; finite state machines; pushdown automata; computability and undecidability.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand discrete mathematical tools, facts, and reasoning relevant to computer science.


CS 18300 - Professional Practice I
Credit Hours: 0.00. Professional Practice. Permission of instructor required.
0.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Full-Time Privileges, Lower Division

May be offered at any of the following campuses:     
      West Lafayette


CS 18400 - Professional Practice II
Credit Hours: 0.00. Professional Practice. Permission of instructor required.
0.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Full-Time Privileges, Lower Division

May be offered at any of the following campuses:     
      West Lafayette


CS 19000 - Topics In Computer Sciences
Credit Hours: 1.00 to 5.00. Topics vary. Permission of instructor required.
0.000 TO 5.000 Credit hours

Levels: Indiana College Network, Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Individual Study, Laboratory, Lecture, Practice Study Observation, Recitation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division, Variable Title

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times


CS 19100 - Freshman Resources Seminar
Credit Hours: 1.00. This course is intended to integrate freshman majors in computer sciences into the department, help them adjust to university life, and assist them in developing academic and intellectual survival skills. Weekly recitation sections enable the students to work in teams. Strongly recommended for freshmen. The credit may be used only toward free electives.
0.000 OR 1.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Recitation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette


CS 19300 - Tools
Credit Hours: 1.00. This course is designed to introduce new Computer Science students to various programming tools which will aid them in their Computer Science classes, personal projects, and software development job experiences.
0.000 OR 1.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation, Recitation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand Unix/Linux commands for navigating directories and files and manipulating files and folders. 2. Understand terminal commands for searching and input/output redirection. 3. Understand shells such as sh, csh, ksh, tcsh, bash, zsh. 4. Understand debugging via print statements and general debugger concepts. 5. Understand version control via Git and Github, source control, workflow, commit, collaboration, pull, push, create and pushing a new repository, cloning, branches, merging, and conflicts. 6. Understand vim including mouseless navigation, normal/insert mode, copy/paste, search/replace, and saving/quitting.


CS 19700 - Freshman Honors Seminar
Credit Hours: 1.00. A seminar dealing with the history, context, and future of computer science. Open only to students in the Computer Sciences Honors Program. The credit may be used only toward free electives.
1.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Honors, Provost Low Enroll Perm Waiver, Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated up to 1 times


CS 21100 - Competitive Programming I
Credit Hours: 2.00.  CP1 teaches applied algorithmic ideas and problem solving techniques to solve programming interview and competitive programming questions including usage of basic data structures such as [array, set, map, stack, queue, deque, priority queue], the four main algorithm paradigms: [complete search, greedy, divide and conquer, dynamic programming], other algorithmic ideas including [binary search the answer/bisection, meet-in-the-middle, prefix sum and difference arrays, two pointers, sliding window], and basic graph algorithms covering [strongly/connected components, floodfill, topological sort, shortest paths].
2.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Differentiate between categories of problems in computer science including complete search, greedy, divide and conquer, dynamic programming, and various types of graph problems, as well as subcategories in each of these categories. 2.  Implement well-known solutions (as discussed in class) to all major categories of problems in computer science (listed in LO1). 3.  Use new/novel algorithms to solve problems. 4.  Recognize key characteristics of certain problem types listed in LO1. 5.  Classify a problem by those key characteristics. 6.  Deconstruct a problem into subproblems that can be solved individually. 7.  Assemble those subproblems into a complete solution. 8.  Determine runtime and space usage of a potential solution using big-O notation to judge if the potential solution will work. 9.  Create an efficient solution to a problem based on analysis of the problem type, the deconstructed problem parts, and the time and space constraints of the problem. 10.  Reflect on how one came up with a solution to a problem to better recognize patterns in problem types. 11.  Debug programs by generating custom test cases based on problem constraints.


CS 23500 - Introduction To Organizational Computing
Credit Hours: 3.00. People and organizations, decision-making, information systems, telecommunications, desktop systems, integration tools, collaboration and groupware, multimedia, authoring multimedia documents, emerging technologies. May not be taken for credit by Computer Science majors.
0.000 OR 3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette


CS 24000 - Programming In C
Credit Hours: 3.00. The UNIX environment, C development cycle, data representation, operators, program structure, recursion, macros, C preprocessor, pointers and addresses, dynamic memory allocation, structures, unions, typedef, bit-fields, pointer/structure applications, UNIX file abstraction, file access, low-level I/O, concurrency.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand programming principles and techniques for problem solving in the C programming language.


CS 24200 - Introduction To Data Science
Credit Hours: 3.00. (STAT 24200) This course provides a broad introduction to the field of data science. The course focuses on using computational methods and statistical techniques to analyze massive amounts of data and to extract knowledge. It provides an overview of foundational computational and statistical tools for data acquisition and cleaning, data management and big data systems. The course surveys the complete data science process from data to knowledge and gives students hands-on experience with tools and methods. Basic knowledge of Python required. Computer Science majors cannot count this course as a degree requirement but can take it for credit as a free elective if taken before CS 37300, 34800, 47100, 47300, 44800.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Use Python, R, and selected tools to scrape, clean, process, and visualize data. 2. Apply data management techniques to prepare, parse, manipulate, and store data. 3. Use statistical methods to summarize data and identify relationships. 4. Explain how to formulate new hypotheses and draw accurate conclusions from data. 5. Apply statistics and computational analysis to make predictions based on data. 6. Apply basic computer science concepts such as modularity, abstraction, and encapsulation to data analysis problems. 7. Effectively communicate the outcome of data analysis using descriptive statistics and visualizations.


CS 25000 - Computer Architecture
Credit Hours: 4.00. Digital logic: transistors, gates, and combinatorial circuits; clocks; registers and register banks; arithmetic-logic units; data representation: big-endian and little-endian integers; ones and twos complement arithmetic; signed and unsigned values; Von-Neumann architecture and bottleneck; instruction sets; RISC and CISC designs; instruction pipelines and stalls; rearranging code; memory and address spaces; physical and virtual memory; interleaving; page tables; memory caches; bus architecture; polling and interrupts; DMA; device programming; assembly language; optimizations; parallelism; data pipelining.
0.000 OR 4.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Students understand the function of basic hardware, including fundamentals of digital logic, processors, memory, and I/O.


CS 25100 - Data Structures And Algorithms
Credit Hours: 3.00. Running time analysis of algorithms and their implementations, one-dimensional data structures, trees, heaps, additional sorting algorithms, binary search trees, hash tables, graphs, directed graphs, weighted graph algorithms, additional topics.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand fundamental data structures, fundamental algorithms, and their implementation.


CS 25200 - Systems Programming
Credit Hours: 4.00. Low-level programming; review of addresses, pointers, memory layout, and data representation; text, data, and bss segments; debugging and hex dumps; concurrent execution with threads and processes; address spaces; file names; descriptors and file pointers; inheritance; system calls and library functions; standard I/O and string libraries; simplified socket programming; building tools to help programmers; make and make files; shell scripts and quoting; unix tools including sed, echo, test, and find; scripting languages such as awk; version control; object and executable files (.o and a.out); symbol tables; pointers to functions; hierarchical directories; and DNS hierarchy; programming embedded systems.
0.000 OR 4.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture, Recitation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Have an appreciation and ability for low-level (systems) programming and debugging.


CS 25300 - Data Structures And Algorithms For DS/AI
Credit Hours: 3.00. This course gives a broad introduction to the most important data structures and algorithms in computer science. The emphasis is on data structures and their use in algorithms relevant for data science and AI and their applications. The course focuses on developing and comparing efficient implementations, assessing suitability of data structures for massive data sets, and understanding effective use, modifications, and extensions. This course will not fulfill CS 25100 requirement for any Computer Science major or minor.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Apply an asymptotic analysis to given code and explain its significance. 2. Analyze asymptotic performance of data structures and algorithms with respect to time and space. 3. Describe different implementations of a data structure and explain when what implementation is most efficient. 4. Demonstrate how to add functionality to a data structure to efficiently handle new operations and queries. 5. Assess how the choice of data structures and algorithm design methods impacts the performance of programs. 6. Make effective and appropriate use of data structures such as stacks, queues, linked lists, hash tables, Bloom filters, priority queues, dictionaries, search trees, tries, and graphs.


CS 28400 - Professional Practice III
Credit Hours: 0.00. Professional Practice. Permission of instruction required.
0.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Full-Time Privileges, Lower Division

May be offered at any of the following campuses:     
      West Lafayette


CS 28401 - Professional Practice Part-Time
Credit Hours: 0.00. Professional Practice Part-Time. The instructor determines the adequacy of the student's preparation for the work assignment proposed by the prospective employer for the student. Permission of Instructor required.
0.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times


CS 29000 - Topics In Computer Sciences
Credit Hours: 1.00 to 5.00. Topics vary. Permission of instructor required.
0.000 TO 5.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Individual Study, Laboratory, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division, Variable Title

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times


CS 29100 - Sophomore Development Seminar
Credit Hours: 1.00. Presentations by corporate partners about careers in computer science. Presentations by faculty about careers in academia and research. Students learn about upper-division courses, tour research laboratories, and attend job fairs.
0.000 OR 1.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Lower Division

May be offered at any of the following campuses:     
      West Lafayette


CS 29199 - Cooperative Experience I
Credit Hours: 0.00. Professional experience in computer science. Program coordinated by school with cooperation of participating employers. Students submit summary report and company evaluation. Professional Practice students only. Permission of department required.
0.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Full-Time Privileges, Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Apply knowledge to identifying and solving problems in the professional context. 2. Advance skills related to professional preparation, critical thinking, problem solving, communication, and teamwork. 3. Increase understanding of the profession and practice, basic industry principles, and principles and practice of ethical responsibility in professional work.


CS 29299 - Cooperative Experience II
Credit Hours: 0.00. Professional experience in computer science. Program coordinated by school with cooperation of participating employers. Students submit summary report and company evaluation. Professional Practice students only. Permission of department required.
0.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Full-Time Privileges, Lower Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Apply knowledge to identifying and solving problems in the professional context. 2. Advance skills related to professional preparation, critical thinking, problem solving, communication, and teamwork. 3. Increase understanding of the profession and practice, basic industry principles, and principles and practice of ethical responsibility in professional work.


CS 30700 - Software Engineering I
Credit Hours: 3.00. An introduction to the methods and tools of software engineering; software life cycle; specification and design of software, software testing, cost and effort estimation; laboratory exercises with design, testing, and other tools.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Individual Study, Lecture, Recitation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Architect and design quality software. 2.  Contrast and critique software lifecycle models. 3.  Create software using current software engineering tools, methods, and concepts. 4.  Work together on a team in a productive and professional manner. 5.  Inspect and test software and documentation.


CS 31100 - Competitive Programming II
Credit Hours: 2.00.  CP2 teaches experienced programmers additional techniques to solve interview and competitive programming problems and builds on material learned in CP1. This includes specific algorithmic techniques such as [shortest paths, topological sort, MST, union find, range queries], advanced algorithms surrounding trees and DAGs, advanced problem types in [dynamic programming, backtracking/simulation, mathematics, string processing], and more. It can be viewed as a programming complement to CS 38100, with some overlap in content.
2.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Provost Low Enroll Perm Waiver, Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Differentiate between advanced categories of problems in computer science including backtracking/simulation, advanced dynamic programming, advanced graphs (including trees and DAGs), mathematics, string processing, and range queries, as well as subcategories in each of these categories. 2.  Implement well-known solutions (as discussed in class) to advanced categories of problems in computer science (listed in LO1). 3.  Identify when a problem spans multiple categories of problems (as listed in LO1) 4.  Design algorithms to solve problems that span multiple categories of problems. 5.  Use new/novel algorithms to solve advanced problems. 6.  Recognize key characteristics of certain problem types listed in LO1. 7.  Classify an advanced problem by those key characteristics. 8.  Deconstruct an advanced problem into subproblems that can be solved individually. 9.  Determine runtime and space usage of a potential solution using big-O notation to judge if the potential solution will work. 10.  Create an efficient solution to a problem based on analysis of the problem type, the deconstructed problem parts, and the time and space constraints of the problem. 11.  Reflect on how one came up with a solution to a problem in order to better recognize patterns in problem types.


CS 31400 - Numerical Methods
Credit Hours: 3.00. Iterative methods for solving nonlinear equations; direct and iterative methods for solving linear systems; approximations of functions, derivatives, and integrals; error analysis.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 33400 - Fundamentals Of Computer Graphics
Credit Hours: 3.00. Fundamental principles and techniques of computer graphics. The course covers the basics of going from a scene representation to a raster image using OpenGL. Specific topics include coordinate manipulations, perspective, basics of illumination and shading, color models, texture maps, clipping and basic raster algorithms, fundamentals of scene constructions. CS 31400 is recommended.
0.000 OR 3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 34800 - Information Systems
Credit Hours: 3.00. File organization and index structures; object-oriented database languages; the relational database model with introductions to SQL and DBMS; hierarchical models and network models with introductions to HDDL, HDML, and DBTG Codasyl; data mining; data warehousing; database connectivity; distributed databases; the client/server paradigm; middleware, including ODBC, JDBC, CORBA, and MOM.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Learn about different data models (relational, graph, and document) used in different database systems. 2.  Learn how to pose complex database queries in SQL and NoSQL languages as well as theoretical query languages. 3.  Gain an introductory background in indexing. 4.  Learn about transactions and concurrency control. 5.  Differentiate between OLTP and OLAP applications.


CS 35100 - Cloud Computing
Credit Hours: 3.00.  Introduction to cloud computing. Cloud data center infrastructure, public and private clouds, servers and virtualized servers, data center networks and virtualized networks, virtualized disk, file, and object storage, the concept of scale-out, algorithms and programming systems used in the design and implementation of cloud-native software, especially using containers and orchestration systems, microservices, serverless designs, controller-based designs, edge and fog computing, security in a cloud environment, programming models.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Describe physical facilities and virtualized technologies used in a cloud data center. 2. Understand major algorithms and programming paradigms used to build cloud-native software. 3. Design and deploy containerized software in a cloud environment. 4. Demonstrate orchestration of container software.


CS 35200 - Compilers: Principles And Practice
Credit Hours: 3.00. Should not be taken concurrently with CS 35400. The theory and practice of programming language translation, compilation, and run-time systems, organized around a significant programming project to build a compiler for a simple but nontrivial programming language. Modules, interfaces, tools. Data structures for tree languages. Lexical analysis, syntax analysis, abstract syntax. Symbol tables, semantic analysis. Translation, intermediate code, basic blocks, traces. Instruction selection, CISC and RISC machines. Liveness analysis, graph coloring register allocation. Supplemental material drawn from garbage collection, object-oriented languages, higher-order languages, dataflow analysis, optimization, polymorphism, scheduling and pipelining, memory hierarchies.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Provides students with an understanding of how a computer program is converted into elementary code that causes the computer to produce the output intended by the programmer.


CS 35300 - Principles Of Concurrency And Parallelism
Credit Hours: 3.00. Important concepts, models, algorithms, abstractions, and implementation aspects of concurrent and parallel programs. Topics include: techniques used to describe concurrent programs (e.g., threads, events, co-routines, continuations), abstractions for shared-memory and message-passing programs, relaxed memory models, livelock and deadlock detection, lock-free algorithms, data races and atomicity, scheduling techniques, process calculi, and software transactions.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Provost Low Enroll Perm Waiver, Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. This course provides students the vocabulary and concepts to better understand how to design and program scalable multicore processors.


CS 35400 - Operating Systems
Credit Hours: 3.00. Should not be taken concurrently with CS 35200. Introduction to operating systems. Computer system and operating system architectures, processes, inter-process communication, inter-process synchronization, mutual exclusion, deadlocks, memory hierarchy, virtual memory, CPU scheduling, file systems, I/O device management, security.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Provides students with an understanding of the fundamentals of computer operating systems.


CS 35500 - Introduction To Cryptography
Credit Hours: 3.00. An introduction to cryptography basics: Classic historical ciphers including Caesar, Vigenere and Vernam ciphers; modern ciphers including DES, AES, Pohlig-Hellman, and RSA; signatures and digests; key exchange; simple protocols; block and stream ciphers; network-centric protocols.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Understand the basic concepts and proof techniques in cryptography. 2.  Develop skills to define and evaluate the security of existing schemes. 3.  Construct provably secure schemes for common cryptographic tasks.


CS 37300 - Data Mining And Machine Learning
Credit Hours: 3.00. This course will introduce students to the field of data mining and machine learning, which sits at the interface between statistics and computer science. Data mining and machine learning focuses on developing algorithms to automatically discover patterns and learn models of large datasets. This course introduces students to the process and main techniques in data mining and machine learning, including exploratory data analysis, predictive modeling, descriptive modeling, and evaluation.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Identify key elements of data mining and machine learning algorithms. 2. Understand how algorithmic elements interact to impact performance. 3. Understand how to choose algorithms for different analysis tasks. 4. Analyze data in both an exploratory and targeted manner. 5. Implement and apply basic algorithms for supervised and unsupervised learning. 6. Accurately evaluate the performance of algorithms, as well as formulate and test hypotheses.


CS 38001 - C++ Programming
Credit Hours: 1.00. This course builds on the CS 24000 (Programming In C) course to teach C++ extensions. This 5-week one-credit course teaches C++ programming and helps students improve their understanding of object-oriented programming. It also teaches how to use an Integrated Development Environment (IDE) when programming in C++.
1.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand how to program in C++. 2. Understand how to program in object-oriented languages in general. 3. Understand how to implement some basic Software Patterns in C++. 4. Understand how to use an IDE when programming in C++.


CS 38002 - Advanced Java Programming
Credit Hours: 1.00. This course builds on the Java course CS 18000 (Problem Solving And Object Oriented Programming) to teach advanced topics in Java. This 5-week one-credit course will teach advanced topics such as Network Programming in Java, JDBC, JNI, and J2EE to write web applications in Java. You will also improve your understanding of Object Oriented Programming.
1.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand advanced features such as Network Programming in Java, J2EE, JDBC, Java Swing, and JNI. 2. Understand how to improve programming skills in object-oriented languages.


CS 38003 - Python Programming
Credit Hours: 1.00. This course teaches the Python programming language assuming that students have already taken a course in computer programming. This 5-week one-credit course teaches the Python language, the most common modules used in Python, as well as how to write Python web applications.
0.000 OR 1.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand how to write applications in Python. 2. Understand how to improve programming skills in object-oriented languages.


CS 38100 - Introduction To The Analysis Of Algorithms
Credit Hours: 3.00. Techniques for analyzing the time and space requirements of algorithms. Application of these techniques to sorting, searching, pattern-matching, graph problems, and other selected problems. Brief introduction to the intractable (NP-hard) problems.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Use big O-notation to give asymptotic time and space bounds of algorithms. 2.  Explain the use of big-Omega, big-Theta, and little-o notations. 3.  Use recurrence relations to determine the time complexity of recursive algorithms. 4.  Solve recurrence relations commonly arising in algorithm design. 5.  Give examples that illustrate time-space trade-offs of algorithms.


CS 38600 - Professional Practice IV
Credit Hours: 0.00. Professional Practice. Permission of instructor required.
0.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Full-Time Privileges, Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 39000 - Topics In Computer Sciences
Credit Hours: 1.00 to 5.00. Topics vary. Permission of instructor required.
0.000 TO 5.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Individual Study, Laboratory, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division, Variable Title

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times


CS 39100 - Junior Resources Seminar
Credit Hours: 1.00. This seminar course engages a number of outside speakers who typically present information on the role of research in computer science, how the research components of computer science relate to each other, approaches to software development in industry, different types of application development paradigms, technological trends, and societal, ethical, and legal issues. The credit may be used only toward free electives.
0.000 OR 1.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Provost Low Enroll Perm Waiver, Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 39399 - Cooperative Experience III
Credit Hours: 0.00. Professional experience in computer science. Program coordinated by school with cooperation of participating employers. Students submit summary report and company evaluation. Professional Practice students only. Permission of department required.
0.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Full-Time Privileges, Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Apply knowledge to identifying and solving problems in the professional context. 2. Advance skills related to professional preparation, critical thinking, problem solving, communication, and teamwork. 3. Increase understanding of the profession and practice, basic industry principles, and principles and practice of ethical responsibility in professional work.


CS 39499 - Extensive Cooperative Experience IV
Credit Hours: 0.00. Professional experience in computer science. Program coordinated by school with cooperation of participating employers. Students submit summary report and company evaluation. Professional Practice students only. Permission of department required.
0.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Full-Time Privileges, Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Apply knowledge to identifying and solving problems in the professional context. 2. Advance skills related to professional preparation, critical thinking, problem solving, communication, and teamwork. 3. Increase understanding of the profession and practice, basic industry principles, and principles and practice of ethical responsibility in professional work.


CS 39599 - Extensive Cooperative Experience V
Credit Hours: 0.00. Professional experience in computer science. Program coordinated by school with cooperation of participating employers. Students submit summary report and company evaluation. Professional Practice students only. Permission of department required.
0.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Full-Time Privileges, Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Apply knowledge to identifying and solving problems in the professional context. 2. Advance skills related to professional preparation, critical thinking, problem solving, communication, and teamwork. 3. Increase understanding of the profession and practice, basic industry principles, and principles and practice of ethical responsibility in professional work.


CS 39700 - Honors Seminar
Credit Hours: 0.00. A seminar for all sophomores, juniors, and seniors in the Computer Sciences Honors Program. Meets eight times each semester under the supervision of the Honors coordinator. The meetings focus on honors research projects, helping students to identify appropriate projects and form groups, and providing a forum for juniors and seniors to report on their projects as required in the honors program.
0.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Honors, Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times


CS 40700 - Software Engineering Senior Project
Credit Hours: 3.00. A capstone course combining all the concepts students have learned in the Software Engineering Track: software and software engineering, working as a team leader and as a team member, Agile Software Development, Scrum Software Development, Version Control, basing software development on reusable technology, developing requirements (User Stories and Use Cases), modelling with classes, design patterns, focusing on users, modelling interactions and behavior, architecting and designing software, testing and inspecting, managing the software development process. This is a project course. Students are organized into 4-6 student teams. Each team completes a full-semester software engineering project. Each team creates a Project Charter, Product Backlog, Design, and for 3 Sprints -- Planning Document, Demo, Retrospective Document. The final demo is a formal presentation.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Individual Study

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand the software development process. 2. Understand the best methods to plan, analyze, design, test, measure, and manage software projects. 3. Understand agile methodologies in general and specifically Scrum. 4. Understand how to use version control systems in a team software engineering project. 5. Understand that good people are one of, if not the most important, requirements for successful projects. 6. Understand how to work on a team project as a team leader and/or team member.


CS 40800 - Software Testing
Credit Hours: 3.00. Preliminaries: errors and testing; software quality, requirements, behavior, and correctness; testing, debugging, verification; control flow graphs, dominators; types of testing; Test selection: from requirements, finite state models, and combinatorial designs; regression testing and test minimization; Test adequacy assessment: control and data flow; mutation based; testing tools.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand the basic technology related to software testing and debugging. 2. Differentiate between reliability and correctness. 3. Understand the impact of the saturation effect on the test process and its cost. 4. Understand the relationship between software development and test processes. 5. Apply a variety of black box test generation methods manually and using tools. 6. Use test adequacy criteria and understand their respective cost and effectiveness. 7. Select appropriate software test tools for a given testing task


CS 41100 - Competitive Programming III
Credit Hours: 2.00.  CP3 teaches experienced programmers additional techniques to solve competitive programming problems and builds on material learned in CP1 and CP2. This includes algorithmic techniques in topics such as [network flow, computational geometry, graph matching, NP-hard problems]. Primarily, CP3 prepares students to compete in programming contests, which means most class time is focused on simulating contest environments and teaching teamwork and communication alongside problem practice.
2.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Differentiate between advanced categories of problems in computer science including network flow, computational geometry, graph matching, and NP-hard problems, as well as subcategories in each of these categories. 2.  Extrapolate generalized solutions and problem-solving strategies across advanced categories listed in LO1 as well as in general competitive programming categories. 3.  Design algorithms to solve problems that span multiple advanced categories of problems, combining categorical solutions in complex ways. 4.  Use new/novel algorithms to solve advanced problems. 5.  Deconstruct an advanced problem into subproblems that can be solved individually. 6.  Quickly determine runtime and space usage of a potential solution using big-O notation to judge if the potential solution will work. 7.  Create an efficient solution to a problem based on analysis of the problem type, the deconstructed problem parts, and the time and space constraints of the problem. 8.  Communicate ideas quickly and concisely to other competitive programmers to create efficient solutions.


CS 42200 - Computer Networks
Credit Hours: 3.00. Undergraduate-level introduction to computer networks and data communication. Low-level details of media, signals, and bits: time division and frequency division multiplexing; encoding; modulation; bandwidth, throughput, and noise. Packet transmission: Local Area Network (Ethernet, FDDI) and Wide Area Network technologies (ATM); wireless networks; network interconnection with repeaters, bridges, and switches; DSU/CSU; xDSL and cable modems. Internetworking: router-based architecture; IP addressing; address binding with ARP; datagram encapsulation and fragmentation; UDP and TCP, retransmission; protocol ports; ICMP and error handling. Network applications: client/server concept; port demultiplexing; program interface to protocols (API); use by clients and servers; domain name system; TELNET; Web technologies including HTTP, CGI, Java; RPC and middleware; network management.
0.000 OR 3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 42600 - Computer Security
Credit Hours: 3.00. A survey of the fundamentals of information security. Risks and vulnerabilities, policy formation, controls and protection methods, database security, encryption, authentication technologies, host-based and network-based security issues, personnel and physical security issues, issues of law and privacy.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Apply the notions of threat, vulnerability, attack, countermeasure, security objectives, and adversarial models when analyzing security of computer and information systems. 2. Explain the main authorization mechanisms and access control models, and their applicability in different situations. 3. Explain security issues related to password and other authentication mechanisms. 4. Explain the different types of malware, the mechanisms of their propagation, and the strengths and limitations of different defense mechanisms. 5. Identify the threats and vulnerabilities for a networked environment, and explain different countermeasures, and their effectiveness. 6. Explain the vulnerabilities brought about by modern web-based application and services, different countermeasures, and their effectiveness.


CS 43400 - Advanced Computer Graphics
Credit Hours: 3.00. Advanced concepts and techniques of computer graphics. The course covers, in complete detail, going from a scene representation to a raster image without using OpenGL or other graphics packages. The course develops a complete graphics implementation in which the students implement every aspect of the graphics pipeline. This involves a substantial software project in C/C++.
0.000 OR 3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 43900 - Introduction To Data Visualization
Credit Hours: 3.00. The course offers an introduction to the fundamentals principles, design strategies, and techniques needed to visually communicate, explore, and analyze data. The course focuses primarily on the visual representation of inherently non-spatial data (e.g., tables and spreadsheets, graphs and networks, trees, text, and time series), but also considers the visualization of maps and of data in geospatial context.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Describe the main visualization techniques and explain their strengths and limitations. 2. Select the most perceptually effective visual encoding for a given data attribute. 3. Perform a principled critique of an existing data visualization. 4. Design an effective data visualization solution for a given data set to address a specific data analysis objective. 5. Create interactive web-based visualizations using open-source software libraries.


CS 44000 - Large Scale Data Analytics
Credit Hours: 3.00. This course provides an integrated view of the key concepts of modern algorithmic data analytics. It focuses on teaching principles and methods needed to analyze large datasets in order to extract novel, transformative insights for the underlying application. The course emphasizes the duality between formulating questions that can be answered by statistical data analysis tools (the statistical perspective) and the algorithmic challenge of actually extracting such answers using available parallel and distributed computational resources from massive datasets. The topics cover three areas: (1) algorithmic concepts necessary for big data analytics, (2) bid data systems, including data management and programming, and (3) advanced analytic methods to address characteristics of real-world big data problems.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Identify techniques appropriate for solving a data analytics challenge. 2. Load and manipulate data in distributed computing environments. 3. Apply computing paradigms to effectively write efficient and scalable algorithms for data analysis pipelines. Know limitations, design details and design decisions of these algorithms. 4. Apply mixed-precision optimization and parallel learning algorithms to modern machine learning algorithms. 5. Present results in methods appropriate for domain experts.


CS 44800 - Introduction To Relational Database Systems
Credit Hours: 3.00. An in-depth examination of relational database systems including theory and concepts as well as practical issues in relational databases. Modern database technologies such as object-relational and Web-based access to relational databases. Conceptual design and entity relationship modeling, relational algebra and calculus, data definition and manipulation languages using SQL, schema and view management, query processing and optimization, transaction management, security, privacy, integrity management.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Learn data modeling: physical, logical and conceptual data models, the entity-relationship model. 2.  Study logical and Physical Design and interaction with operating systems, disk Storage, Basic File Structures, Hashing, Indexing. 3.  Learn the relational database model and implementation and performance issues. 4.  Understand transaction Processing, concurrency control, atomicity control and recovery control. 5.  Understand database privacy, integrity, and security. 6.  Understand data mining, data warehousing, online analytical processing, and information retrieval. 7.  Understand Cloud computing and Distributed Database Systems architectures, Big Data, Hadoop, MapReduce, and NoSQL. 8.  Recognize performance issues.


CS 45600 - Programming Languages
Credit Hours: 3.00. Concepts for structuring data, computation, and whole programs. Object-oriented languages, functional languages, logic- and rule-based languages. Data types, type checking, exception handling, concurrent processes, synchronization, modularity, encapsulation, interfaces, separate compilation, inheritance, polymorphism, dynamic binding, subtyping, overloading, beta-reduction, unification.
0.000 OR 3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Provost Low Enroll Perm Waiver, Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 47100 - Introduction To Artificial Intelligence
Credit Hours: 3.00. Students are expected to spend at least three hours per week gaining experience with artificial intelligence systems and developing software. Basic problem-solving strategies, heuristic search, problem reduction and AND/OR graphs, knowledge representation, expert systems, generating explanations, uncertainty reasoning, game playing, planning, machine learning, computer vision, and programming systems such as Lisp or Prolog.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Develop understandings of various applications of AI. 2.  Recognize problems where AI techniques are applicable. 3.  Implement and apply basic principles of AI in solutions that require problem-solving, inference, learning, and planning. 4.  Understand how to evaluate various AI techniques and make appropriate selections.


CS 47300 - Web Information Search And Management
Credit Hours: 3.00. This course teaches important concepts and knowledge of information retrieval for managing unstructured data such as text data on Web or in emails. At the same time, students will be exposed to a large number of important applications. Students in the course will get hands on experience from homework and a course project. The first part of the course focuses on general concepts/techniques such as stemming, indexing, vector space model, and feedback procedure. The second part of the course shows how to apply the set of techniques on different applications such as Web search, text categorization, and information recommendation.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand the important concepts and techniques of information retrieval and how to apply these techniques to a set of important or real world applications.


CS 47500 - Human-Computer Interaction
Credit Hours: 3.00. The goal of this course is to teach students how to design useful and usable interactive systems that address important needs of people. Students will experience the entire user-centered design life cycle, from need finding to usability evaluation. Topics covered in the course include user-centered design principles, usability heuristics, need-finding methods such as semi-structured interviews and contextual inquiry, quick prototyping techniques, usability evaluation methods such as hallway testing and human-subjects user study, and theories about user interaction and decision making. As we are entering a new era of AI, the course will also include a brief introduction on how to apply the HCI principles and techniques to AI-powered systems. This course is project-based. Students will form project teams among themselves to work on a semester-long project and apply the user-centered design principles, theories, and techniques that they have learned in class to build a useful and usable interactive system such as a mobile application. This course is also highly interactive, including a series of design studios and in-class activities that require active participation, communication, and discussion with other students.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Apply HCI methods such as semi-structured interviews and contextual inquiries to uncover user needs and realistic problems that can be solved by computational methods. 2. Apply user-centered design principles to iteratively develop interface designs to address those needs. 3. Develop prototypes to concretize a design idea in different levels of fidelity. 4. Critique a design idea or prototype and pinpoint design flaws and usability issues based on commonly agreed upon design principles and usability heuristics. 5. Iteratively evaluate and improve upon the prototypes based on feedback from potential users. 6. Communicate design ideas and findings to target users, other designers, funders, etc. 7. Work in a team and succeed.


CS 47800 - Introduction To Bioinformatics
Credit Hours: 3.00. (BIOL 47800) Bioinformatics is broadly defined as the study of molecular biological information, targeting particularly the enormous volume of DNA sequence and functional complexity embedded in entire genomes. Topics will include understanding the evolutionary organization of genes (genomics), the structure and function of gene products (proteomics), and the dynamics of gene expression in biological processes (transcriptomics). Inherently, bioinformatics is interdisciplinary, melding various applications of computational science with biology. This jointly taught course introduces analytical methods from biology, statistics and computer science that are necessary for bioinformatics investigations. The course is intended for junior and senior undergraduates from various science backgrounds. Our objective is to develop the skills of both tool users and tool designers in this important new field of research.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Demonstrate proficiency with professional skills needed by practicing biologists, including experimental design and execution, biological techniques, data collection and documentation, communication of results, and responsible conduct of science. 2. Demonstrate the ability to discuss ethical issues in the application of biological sciences, and the impact of science on society. 3. Demonstrate skills in critical thinking. These skills include understanding scientific methods, solving biology-related problems, interpreting and analyzing primary literature in biology, and interpreting data in a meaningful way. 4. Demonstrate knowledge of the path leading to specific careers in biology. 5. Understand the role of evolution of creating and modifying the macromolecular components of the cell, and in creating biological complexity and variability. 6. Use and understand the scientific method, including how to generate hypotheses and predictions, develop an experimental design, collect data, statistically analyze data, and interpret results. 7. Demonstrate an understanding of laboratory skills used in genetics. 8. Demonstrate knowledge of how evolutionary forces impact and shape microbial function and activity. 9. Demonstrate an understanding of the scientific method including hypothesis generation and testing, data collection, analysis, and interpretation.


CS 48300 - Introduction To The Theory Of Computation
Credit Hours: 3.00. Turing machines and the Church-Turing thesis; decidability; halting problem; reducibility; undecidable problems; decidability of logical theories; Kolmogorov complexity; time classes; P, NP, NP-complete; space classes; Savitch's theorem, PSPACE-completeness, NL-completeness; hierarchy theorems; approximation theorems; probabilistic algorithms; applications of complexity to parallel computation and cryptography.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 48700 - Professional Practice V
Credit Hours: 0.00. Professional Practice. Permission of instructor required.
0.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Coop, Full-Time Privileges, Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 48900 - Embedded Systems
Credit Hours: 3.00. Software for embedded systems; programming with extreme constraints on memory, storage, and processing power; programming models, including synchronous, asynchronous, and concurrent; programming systems that run forever; use of Finite State Machines (FSMs); review of embedded hardware and available boards; asynchronous and synchronous serial connections (e.g., RS232 and SPI); General Purpose I/O (GPIO) pins; relays, servos, and other peripherals; design for low power; battery characteristics; systems that communicate over computer networks and the Internet; current industry practices; design of embedded projects; working in teams. CS 35200 (Compilers) and CS 35400 (Operating Systems) are recommended, but not required.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand basics of embedded systems. 2. Understand how and why many Internet of Things (loT) devices use the cloud. 3. Understand how embedded systems are employed in a variety of situations, including smart homes and buildings, security systems, cars, and planes. 4. Understand the three basic programming models, and when each is appropriate. 5. Understand how synchronous and asynchronous serial devices operate. 6. General characteristics of batteries and which type of battery is appropriate for various embedded designs. 7. Understand the use of relays and how embedded logic that operates on low voltage can control high voltage peripherals. 8. Understand why systems that use sensors and actuators must be calibrated. 9. Understand how to build and demonstrate a working embedded system.


CS 49000 - Topics In Computer Sciences For Undergraduates
Credit Hours: 1.00 to 5.00. Supervised reading and reports in various fields. Permission of instructor required.
0.000 TO 5.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Experiential, Individual Study, Laboratory, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Credit By Exam, Upper Division, Variable Title

May be offered at any of the following campuses:     
      Northwest- Westville
      Northwest- Hammond
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times


CS 49700 - Honors Research Project
Credit Hours: 3.00. One semester of the project may be counted as one of the seven computer science courses at or above the 300 level required for the bachelor's degree. One more semester, if approved by the honors coordinator, can be used as a free elective. A group research project directed by Computer Sciences faculty members. Each group must submit a technical report describing its work and the results obtained.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Individual Study

Offered By: College of Science
Department: Computer Science

Course Attributes:
Honors, Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated up to 1 times


CS 50010 - Foundational Principles Of Information Security
Credit Hours: 3.00. This course covers foundational principles relevant to information security including data structures, algorithm design, computational complexity, probability theory, number theory, and basics of cryptography. This course is restricted to CS graduate students. This course is required for students in the Master of Science in Computer Science Concentration in Information Security for Professionals Program. The course may not be used on the Plan of Study for any CS graduate students other than those in the Concentration in Information Security for Professionals program. Programming experience and computer science knowledge equivalent to that of a minor in CS. Incoming students are expected to have programming skills in at least one procedural programming languages, e.g., C,C++,Java, or Python.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Dept Credit, Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Identify and explain the basic data structures. 2. Identify and explain algorithm design techniques. 3. Explain computational complexity and decidability concepts and their relevance to information security. 4. Apply basic probability tools to analyze problems involving uncertainty and randomness. 5. Explain basic concepts of modular arithmetic and their application to cryptography.


CS 50011 - Introduction To Systems For Information Security
Credit Hours: 3.00. The course covers computer systems principles relevant to information security and it serves as a prerequisite for the later courses in the MS in IS program. The material includes features in the C/C++ programming languages for understanding security-critical software vulnerabilities, basic knowledge in computer architecture and assembly languages, knowledge of the compiling process, operating systems, networking, databases, and web applications relevant to information security. This course is restricted to CS graduate students. This course is required for students in the Master of Science in Computer Science Concentration in Information Security for Professionals Program. The course may not be used on the Plan of Study for any CS graduate students other than those in the Concentration in Information Security for Processionals program. Programming experience and computer science knowledge equivalent to that of a minor in CS. Incoming students are expected to have programming skills in at least one procedural programming languages, e.g., C,C++,Java, or Python.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Dept Credit, Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Understand C/C++ code with security-relevant features such as pointers, string operations, function pointers, dynamic memory allocation, etc., laying the foundations for understanding software vulnerabilities in C/C++. 2. Explain common programming errors in C/C++ programs. 3. Explain how C/C++ programs are compiled into assembly and how call stack works in function calls, laying the foundation for understanding stack based buffer overflow. 4. Explain basic concepts in computer architecture, such as instruction set, assembly code, CPU modes, registers, MMU, paging. 5. Explain basic concepts in operating systems, such as processes, system calls, virtual memory, file system structure. 6. Explain basic concepts in networking, databases, and web applications.


CS 50023 - Data Engineering I
Credit Hours: 1.00. The course introduces students to the fundamentals of Data Engineering with a focus on tools and computational techniques to gather, construct, manipulate, summarize, and visualize data sets as a means to extract knowledge from the underlying data. Python and Python libraries are used. Completion of the course will allow learners to perform basic data analysis on data sets. Experience in Python Programming and Linear Algebra is required. The course also prepares learners for additional instruction in the courses Data Engineering II and Foundations of Decision Making.
1.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Identify key file types (TXT, CSV, HTML) and their characteristics. Using Python, read data in these formats. 2. Create and execute Python scripts to parse, select, transform, summarize, and visualize data. 3. Explain how to identify and fill in missing values in data values. 4. Create informative visualizations from given data and recognize the key qualities of good visualizations. 5. Apply Pandas functions to slice, dice, and summarize datasets. 6. Apply the process of sampling data and sample probabilistically. 7. Demonstrate how to transform and construct features (e.g., standardization, distances). 8. Compute summary statistics from data (e.g., covariance, correlation). 9. Explain how to solve simple data analysis problems.


CS 50024 - Data Engineering II
Credit Hours: 1.00. This course introduces students to the fundamentals of database management systems (DBMS) from a user's perspective. The principles of modeling an enterprise using Entity-Relationship diagrams and transforming the model into a relational or NoSQL database are illustrated through a range of examples. The SQL language is used to create, query, aggregate, and update a relational database. NOSQL databases and the related data models (column, graph, and document-based) are introduced. Experience in Python Programming is required.
1.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Carry out database design steps from conceptual to logical to physical design. 2. Use SQL commands to define the structure of a relational database, populate, update and delete data in the database, retrieve data having specified characteristics, and specify access control. 3. Explain the differences, advantages, and disadvantages of relational and NOSQL databases. 4. Describe features of relational databases not needed in big data applications. 5. Create a document-based, NOSQL database like mongoDB and movie data from an SQL to a NOSQL database. 6. Understand the benefits and downsides of creating index structures on query performance for relational, and NOSQL databases. 7. Explain the difference between hash indices and B-tree indices. 8. Analyze large data sets created from piecing together multiple data files through the application of SQL queries.


CS 50025 - Foundations Of Decision Making
Credit Hours: 1.00. This course provides an overview of data science methods used for data-driven discovery, extraction of knowledge, and informed decision making. The course covers fundamental computational methods and statistical techniques used to correctly reason about uncertainty, conduct hypothesis tests, infer causal relationships, and apply and evaluate predictive models. The course highlights how sampling biases can impact fairness in decision making. Throughout, students get hands-on experience on how to make correct and explainable inferences from data. Experience in Python Programming, Probability, Statistics and Linear Algebra is required.
1.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Support and justify claims with evidence from data and discuss how human biases can impact interpretations. 2. Recognize the basic approach to formulating statistical hypothesis tests and apply parametric hypothesis tests for both discrete and continuous data. 3. Interpret p-values and apply them effectively to support claims about data. 4. Formulate and test conjectures with controlled experiments, including A/B testing. 5. Recognize the types of errors encountered when conducting multiple hypothesis tests. 6. Use computational approaches based on randomization for hypothesis testing and uncertainty quantification. 7. Discuss ethical issues such as privacy and fairness that can be associated with automating decisions based on machine learning methods. 8. Apply the basic components of classification methods using Python libraries. 9. Evaluate the performance of learned models with learning curves and k-fold cross validation and assess significance with hypothesis tests.


CS 50100 - Computing For Science And Engineering
Credit Hours: 3.00. Credit in this course may not be used toward a graduate degree in Computer Sciences. Computational concepts, tools, and skills for computational science and engineering scripting for numerical computing, scripting for file processing, high performance computing, and software development. Project may be required.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. To prepare graduate students outside Computer Science to write computer programs in support of their studies and research.


CS 50200 - Compiling And Programming Systems
Credit Hours: 3.00. Basic principles of compilers and compiler design; control of translation, loading, and execution; symbolic coding systems; lexical and syntactic analysis, design and operation of assemblers and macro processors; design of interpretive systems. Students are expected to complete a large programming project as part of the course.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Deeper understanding of the syntactic rules and the functionality of modern programming languages, as well as the use of the compiler for enhancing program quality. 2. Opportunity to practice the implementation of certain key components in the compiler front-end and back-end.


CS 50300 - Operating Systems
Credit Hours: 3.00. Basic principles of operating systems: addressing modes, indexing, relative addressing, indirect addressing, stack maintenance; implementation of multitask systems; control and coordination of tasks, deadlocks, synchronization, mutual exclusion; storage management, segmentation, paging, virtual memory; protection, sharing, access control; file systems; resource management; evaluation and prediction of performance. Students are expected to spend at least three hours per week gaining hands-on experience in using and modifying a small operating system.
0.000 OR 3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      PU Fort Wayne
      West Lafayette


CS 50500 - Distributed Systems
Credit Hours: 3.00. Foundations for building reliable distributed systems, including failure and system models, and basic communication and agreement problems; crash failures, recovery, partition, Byzantine failures; asynchronous systems, failure detectors, communication channels, wireless and sensor networks; software clocks, causality, and cuts. Examples of problems include reliable broadcast consensus, leader election, group communication, and replication. Permission of department required.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette


CS 51000 - Software Engineering
Credit Hours: 3.00. Software life cycles, requirements engineering, software design, design of distributed systems, verification and validation, software architecture, process metrics and models, and research methods in software engineering.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette


CS 51400 - Numerical Analysis
Credit Hours: 3.00. (MA 51400) AIternative methods for solving nonlinear equations; linear difference equations, applications to solution of polynomial equations; differentiation and integration formulas; numerical solution of ordinary differential equations; roundoff error bounds.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      PU Fort Wayne
      Northwest- Westville
      Northwest- Hammond
      West Lafayette


CS 51500 - Numerical Linear Algebra
Credit Hours: 3.00. Direct and iterative solvers of dense and sparse linear systems of equations, numerical schemes for handling symmetric algebraic eigenvalue problems, and the singular-value decomposition and its applications in linear least squares problems.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      Northwest- Westville
      Northwest- Hammond
      West Lafayette

Learning Outcomes: 1. Become knowledgeable about major kernels and algorithms underlying matrix computations for dense and sparse matrices including linear systems of equation, symmetric eigenvalue problems, and the singular-value decomposition. 2. Be able to implement basic versions of these kernels and algorithms. 3. Learn about the difference between direct and iterative methods for linear systems. 4. Gain expertise in the design of iterative methods and preconditioning techniques for large-scale sparse linear systems. 5. Be able to implement eigenvalue and singular-value problem solvers.


CS 51501 - Parallelism In Numerical Linear Algebra
Credit Hours: 3.00. This course examines both theoretical and practical aspects of numerical algorithm design and implementation on parallel computing platforms. In particular, it provides an understanding of the tradeoff between arithmetic complexity and management of hierarchical memory structures, roundoff characteristics if different from the sequential schemes, and performance evaluation and enhancement. Applications are derived from a variety of computational science and engineering areas.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Become quite knowledgeable in handling these parallel numerical linear algebra algorithms that arise in computational science and engineering. 2. Acquire problem-solving skills in this field. 3. Communicate their solution strategies and the performance realized on parallel computing platforms.


CS 52000 - Computational Methods In Optimization
Credit Hours: 3.00. A treatment of numerical algorithms and software for optimization problems with a secondary emphasis on linear and nonlinear systems of equations: unconstrained and constrained optimization; line search methods; trust region methods; Quasi-Newton methods; linear programming; calculating derivatives; quadratic programming; global optimization, including simulated annealing.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      PU Fort Wayne
      West Lafayette


CS 52300 - Social, Economic, And Legal Aspects Of Security
Credit Hours: 3.00. This course focuses on social, legal, and economic aspects of information security and privacy, also including ethics, policies, and human behavioral issues. The course covers the interactions between non-technological aspects of information security as well as relevant technological aspects. It focuses on how non-technological facets can inform and guide technological choices, and how technological choices can enhance or detract from the broader organizational and societal goals.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Identify and describe the legal, organizational, and financial ramifications of security-related design and management decisions. 2. Explain how to respond to a security incident, including recovery and cleanup, damage assessment, forensics and the handling of digital evidence so that it is admissible in court, and satisfying government requirements on the reporting of the incident. 3. Identify, evaluate and assess the risks faced by an organization, and their impact and consequences should they materialize (including liability, reputational damage, disruption to operations, loss of customers). Recommend effective and appropriate measures to mitigate those risks. 4. Explain the role of incentives in information security, and be capable of evaluating and modifying an organizational and reward structure so that it better aligns the interests of employees with those of the organization. 5. Ensure compliance with privacy and data protection laws. Detect and remedy practices that have potential to give rise to violations of these laws. 6. Identify major national laws that affect the practice of information security and explain potential interactions. 7. Evaluate and improve an e-policy's in security and privacy aspects.


CS 52500 - Parallel Computing
Credit Hours: 3.00. Parallel computing for science and engineering applications: parallel programming and performance evaluation, parallel libraries and problem-solving environments, models of parallel computing and run-time support systems, and selected applications..
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette


CS 52600 - Information Security
Credit Hours: 3.00. (CSCI 52600) Basic notions of confidentiality, integrity, availability; authentication models; protection models; security kernels; secure programming; audit; intrusion detection and response; operational security issues; physical security issues; personnel security; policy formation and enforcement; access controls; information flow; legal and social issues; identification and authentication in local and distributed systems; classification and trust modeling; and risk assessment.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Dept Credit, Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette


CS 52700 - Software Security
Credit Hours: 3.00. This course focuses on software security fundamentals, secure coding guidelines and principles, and advanced software security concepts. Students will learn to assess and understand threats, learn how to design and implement secure software systems, and get hands-on experience with common security pitfalls. Restricted to CS MS and CS PHD students. Significant programming experience and skills are required to complete the labs and projects.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Laboratory, Lecture
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Explain the top 20 most common weaknesses in software security (CWE top 20) and understand how such problems can be avoided in software. 2. Know limitations of existing defense mechanisms and how to overcome them. 3. Explain and identify common security threats, risks, and attack vectors for software systems. 4. Evaluate and assess current security best practices and defense mechanisms for current software systems. 5. Identify security problems in source code and binaries, assess the associated risks, and reason about their severity and exploitability. 6. Assess the security of given source code or applications.


CS 52800 - Network Security
Credit Hours: 3.00. The course focuses on the principles and foundations of building secure network systems and on security and privacy challenges in existing and emerging networks. The course compares and analyzes network architectures and network protocols from the physical layer to the access control, network, transport and application layer from an adversarial standpoint to understand how to build more secure protocols that can withstand attacks. Restricted to CS MS and CS PHD students. Significant programming experience and skills are required to complete the projects.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Describe the different categories of network threats and attacks. 2. Examine the strengths and weaknesses of security technologies at each layer of the network protocol stack. 3. Identify the appropriate defense mechanism(s) and its (their) limitations, given a network threat. 4. Demonstrate the ability to discuss security properties, limitations, and threats in wireless networks and emerging technologies. 5. Demonstrate the ability to summarize defenses against network censorship, and network anonymity and privacy protocols.


CS 52900 - Security Analytics
Credit Hours: 3.00. This course focuses on applied data mining, machine learning, data analytics techniques, and their application and relevance in information security. The course covers basic concepts of data mining and machine learning, computation platforms in support of big data analytics including Map-Reduce and Spark, machine learning algorithms such as classification trees, logistic regression, naive Bayes, k Nearest Neighbors, Support Vector Machines, Artificial Neural Networks (including Feed Forward, Convolutional, and Recurrence), the application of these algorithms to security tasks such as Spam/Phishing detection, malware detection, intrusion detection, and situational awareness. The future and potential role of applying machine learning techniques in information and data security is explored.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Explain commonly used machine learning algorithms relevant to information security; identity their strengths and weaknesses, and illustrate their relevance through examples. 2. Identify security problems that can be solved by using machine learning (including deep learning) techniques. 3. Explain the concepts of artificial neural networks, including feed forward networks, convolutional neural networks, and recurrent neural networks. 4. Deploy machine learning algorithms (including artificial neural networks) using softwares such as NumPy, SciPy, and TensorFlow. 5. Apply Spark and HDFS to perform data analysis. 6. Apply machine learning algorithms to security problems. 7. Assess the effectiveness of applying data analytics techniques to different security problems and explain existing shortcomings of ML techniques. 8. Explain what type of data visualization can be effective for security problems (e.g., in fraud detection). 9. Explain the concept of adversarial machine learning and the common attacks/defenses.


CS 53000 - Introduction To Scientific Visualization
Credit Hours: 3.00. Teaches the fundamentals of scientific visualization and prepares students to apply these techniques in fields such as astronomy, biology, chemistry, engineering, and physics. Emphasis is on the representation of scalar, vector, and tensor fields; data sampling and resampling; and reconstruction using multivariate finite elements (surfaces, volumes, and surfaces on surfaces).
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Learn basic notions of human vision and color perception that inform the design of effective visual representations. 2. Know different models of color perception and understand their connection to the anatomy of the visual system. 3. Be familiar with several color spaces and know their perceptual properties. 4. Know how to devise effective color scales suitable for different data mapping needs. 5. Learn the data structures and data reconstruction techniques that are needed to create continuous visual representations of discrete simulation or experimental datasets. 6. Be familiar with the main grid types used in numerical simulations, know what data structures can be used to represent them in memory, and the associated footprint. 7. Know various data interpolation methods and understand their relationship with grid topology. 8. Know how to efficiently solve the point location problem, whereby the cell must be determined that encloses an arbitrary spatial location. 9. Learn the main visualization techniques for scalar, vector, and tensor datasets.


CS 53100 - Computational Geometry
Credit Hours: 3.00. Computational geometry studies how to compute with and reason about geometric objects. The subject is playing an increasingly important role in computer graphics, game software, geometric modeling, geographic information systems, and many other applications. Course topics include convex hull, segment manipulations, triangulations, range searching, Voronoi diagrams, window queries, Delaunay triangulation, and duality. Some key algorithms are implemented. Questions of floating-point accuracy and robust algorithm design are considered throughout the course.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 53500 - Interactive Computer Graphics
Credit Hours: 3.00. (ME 57300) The principles of computer graphics and interactive graphical methods for problem solving. Emphasis placed on both development and use of graphical tools for various display devices. Several classes of graphics hardware considered in detail. Topics include pen plotting, storage tubes, refresh, dynamic techniques, three dimensions, color, modeling of geometry, and hidden surface removal. Part of the laboratory involves use of an interactive minicomputer graphics system. Knowledge of programming required.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Learn the algorithms underlying the interactive graphics pipeline, inlcuding algorithms for geometric modeling, projection, rasterization, shading, lighting, texture mapping, projective texture mapping, shadow mapping, and environment mapping. 2. Gain experience implementating the interactive graphics pipeline through projects. 3. Gain initial experience programming Graphics Processing units through shaders. 4. Learn and implement algorithms for advanced rendering techniques.


CS 53600 - Data Communication And Computer Networks
Credit Hours: 3.00. Data communications: communication hardware technologies including local area and longhaul network hardware, circuit and packet switching, interfaces between computer and network hardware, and performance issues. Network architecture: protocol software and conceptual layering, reliable delivery over an unreliable channel, transport protocols, virtual circuits, datagrams, internetworking as a fundamental design concept, the client-server paradigm, naming and name binding, name servers, addressing and address resolution, routing and routing algorithms, congestion and flow control techniques, network file systems, distribution of computation, and DARPA internet protocols (TCP/IP) as examples of protocol organization.
0.000 OR 3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Network services and applications, including DNS and HTTP . 2. The socket API . 3. Network transport architectures, TCP, UDP and TCP congestion control. 4. Routing and forwarding, intra-domain and inter-domain routing algorithms.


CS 54100 - Database Systems
Credit Hours: 3.00. Fundamentals for the logical design of database systems. The entity-relationship model, semantic model, relational model, hierarchical model, network model. Implementations of the models. Design theory for relational databases. Design of query languages and the use of semantics for query optimization. Design and verification of integrity assertions, and security. Introduction to intelligent query processing and database machines.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette


CS 54200 - Distributed Database Systems
Credit Hours: 3.00. Fundamental issues in distributed database systems that are motivated by the computer networking and distribution of processors and databases. The theory, design, specification, implementation, and performance of distributed database systems.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette


CS 54300 - Introduction To Simulation And Modeling Of Computer Systems
Credit Hours: 3.00. Simulation: discrete event simulation, process oriented simulation, generating random numbers, simulation languages, simulation examples of complex systems. Nondeterministic models: random variables, Poisson process, moment generating functions, statistical inference and data analysis. Modeling: elementary queuing models, networks of queues, applications to performance evaluation of computer systems.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      PU Fort Wayne
      West Lafayette


CS 54701 - Information Retrieval
Credit Hours: 3.00. Basic principles and practical algorithms used for information retrieval and text mining: statistical characteristics of text, several important retrieval models, text categorization, recommendation system, clustering, federated text search, link analysis, etc.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Learn the theories and techniques behind Web search engines, E-commerce recommendation systems, etc. 2. Get hands on project experience by developing real-world applications, such as intelligent tools for improving search accuracy from user feedback, email spam detection, recommendation system, or scientific literature organization and mining. 3. Learn tools and techniques to do cutting-edge research in the area of information retrieval or text mining.


CS 55100 - Cloud Computing Fundamentals
Credit Hours: 3.00. A comprehensive course that investigates all aspects of cloud computing, including: cloud data centers and infrastructure (equipment for processing, storage, communication, and special-purpose facilities); the use of virtualized servers (virtual machines and containers), virtualized storage (Storage Area Networks, Network Attached Storage, object storage), and virtual networks; automation; orchestration systems, such as Kubernetes; programming paradigms used to construct cloud-native software, such as MapReduce, microservices, controllerbased computing, and serverless computing; edge computing; security and privacy in cloud systems; software models. The course emphasizes researching new ways to use cloud computing and research into new ways to design and build cloud systems. The course includes a project. Students should have completed coursework in or have equivalent familiarity with operating systems and computer networks.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Identify underlying cloud facilities and infrastructure features. 2. Assess and compare algorithms and architectures used to design cloud-native software systems. 3. Plan, implement, and deploy cloud-native software systems that use available technologies. 4. Articulate the scientific and technical principles that led to cloud computing. 5. Devise measurements and evaluate the performance of cloud systems.


CS 55500 - Cryptography
Credit Hours: 3.00. (CSCI 55500) Concepts and principles of cryptography and data security. Cryptography (secret codes): principles of secrecy systems; classical cryptographic systems, including Vigenere and Vernam ciphers; the Data Encryption Standard (DES); public-key encryption; privacy-enhanced email; digital signatures. Proprietary software protection; information theory and number theory; complexity bounds on encryption; key escrow; traffic analysis; attacks against encryption; basic legal issues; e-commerce; and the role of protocols.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Dept Credit, Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette


CS 55600 - Data Security And Privacy
Credit Hours: 3.00.  Data security and privacy is an important part of information security. This course provides an introduction to the fundamental principles and techniques for data security and privacy. The course covers fundamental theories of access control, discretionary access control, mandatory access control, and role-based access control, database access control approaches including grant revoke, virtual private databases and labelled databases, database encryption. On privacy, it covers data anonymization, re-identification attacks, definition, primitives, and applications of differential privacy.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Explain the limitation of discretionary access control and the impacts to security. (E,Q,W) 2.  Explain the definition, enforcement, and challenges for multi-level security, including the Bell LaPadula model, non-interference, and covert channels. (E,Q,W) 3.  Articulate integrity models (Biba and Clark-Wilson), and the difference between integrity and confidentiality. (E,Q,W) 4.  Explain the main database security mechanism, including grant revoke model, content-based and context-based access control, virtual private databases, labelled databases, and data encryption. (E,Q,W) 5.  Articulate the limitations of data anonymization for achieving privacy, and the strengths and limitations of privacy notions including differential privacy. (EQW) 6.  Identify, implement, and deploy differential privacy mechanisms for problem settings. (P)


CS 55800 - Introduction To Robot Learning
Credit Hours: 3.00. Intelligent robot systems are in high demand in many real-world tasks, leading to growing interest in designing scalable robot algorithms for automation. From improving healthcare systems to enhancing the manufacturing capacity of various industrial sectors, the role of Robotics has been acknowledged worldwide. They are now also being considered as necessary tools to build large-scale assistive technologies such as smart vehicles and delivery drones to improve people's quality of life. This course covers topics in robot motion planning, estimation, learning, and control to design algorithms for robots to safely interact with their environments and perform various challenging tasks under constraints. The first part of this course focuses on classical techniques such as search, sampling-based planning, PID control, Model Predictive Control (MPC), and Bayesian Kalman filters. The second part covers modern imitation learning and deep reinforcement learning techniques and their application to planning and decision-making in robotics. The course assumes students are familiar with basic concepts in linear algebra, optimization, elementary probability, statistics, data structures, and algorithms. Students are expected to have good programming and software development skills and have a working knowledge of Python.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Formulate the robot motion planning and control problems and solve them using standard tools. (W, P, E) 2. Identify the robot constraints, define their degree of freedom, and formulate their dynamical models for control. (W, P, E) 3. Apply classical and modern robot planning and control techniques to complex robot systems like manipulators, autonomous cars, etc. (W, P, E) 4. Identify limitations in existing classical robot algorithms and understand how to avoid the musing Machine Learning. (W, P) 5. Understand and apply Deep Reinforcement Learning approaches to complex robot systems. (W, P, E) 6. Evaluate and assess current best practices and mechanisms for robot programming. (W, P) 7. Develop a skill for robot programming from perception to low-level control using state-of-the art methods. (W, P)


CS 56000 - Reasoning About Programs
Credit Hours: 3.00. The course focuses on the logical foundations and algorithmic techniques used to ensure program correctness. With an emphasis on automated program verification and synthesis, the course covers classical concepts and techniques such as Hoare logic, abstract interpretation, abstraction-refinement and bounded model checking. The course also exposes students to approaches for program synthesis, a new frontier for program reasoning, such as inductive synthesis, synthesis using version space algebras, constraint-based synthesis and synthesis based on machine-learning techniques. The courses emphasizes both theoretical foundations as well as hands-on experience with verification/synthesis tools and SAT/SMT solvers. Students are expected to have completed undergraduate coursework in Foundations of Computer Science (CS 18200) or equivalent, Systems Programming (CS 25200) or equivalent, and Introduction to the Analysis of Algorithms (CS 38100) or equivalent. Mathematical maturity is expected.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Express the expected behavior of programs in logic. 2. Able to manually reason about satisfiability and validity of formulas in first-order logic (modulo theories). 3. Use SAT/SMT solvers to check satisfiability and validity of formulas in first-order logic (modulo theories). 4. Specify properties of programs using pre/postconditions, safety properties and assertions in first-order logic (modulo theories). 5. Describe and apply core approaches for program verification. 6. Explain and apply Hoare logic, invariant generation, abstract interpretation, abstraction-refinement, and bounded model checking. 7. Ability to verify programs using tools such as Dafny and the Z3 SMT solver. 8. Conduct original research in program synthesis. 9. Explain and apply inductive synthesis and functional synthesis, different search techniques (enumerative, explicit, constraint-based), and some recent approaches based on machine learning. 10. Choose and apply appropriate synthesis techniques to a problem domain of their choice. 11. Ability to critically review and present current research in program synthesis.


CS 56500 - Programming Languages
Credit Hours: 3.00. An exploration of modern or unconventional concepts of programming languages, their semantics, and their implementations; abstract data types; axiomatic semantics using Hoare's logic and Dijkstra's predicate transformers; denotational semantics; functional, object-oriented, and logic programming; concurrency and Owicki-Gries theory. Example languages include ML, Ada, Oberon, LISP, PROLOG, and CSP.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 57100 - Artificial Intelligence
Credit Hours: 3.00.  Artificial Intelligence (AI) systems are increasingly being deployed in many real-world tasks. This course provides an introduction to the fundamental principles and applications of AI. The course covers classic material including search-based methods, probabilistic reasoning, game playing, decision making, exact and approximate inference, causal learning, and reinforcement learning as well as selected advanced topics. The focus of the course is on foundational methods and current techniques for building AI systems that exhibit 'intelligent' behavior and can 'learn' from experience. The course assumes students are familiar with basic concepts in analysis, linear algebra, optimization, discrete mathematics, elementary probability, statistics, data structures, and algorithms. Students are expected to have good programming and software development skills and have a working knowledge of Python and Java.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Assess and explain the applicability, strengths, and weaknesses of the basic knowledge representation, problem-solving, and learning methods in solving a particular problem. (E,W) 2. Predict the behavior and estimate the cost (in time and space) of different heuristic and optimal search methods, and choose the appropriate method for particular problems. (W,P) 3. Develop small logic-based, rule-based, and search-based systems; be able to predict performance characteristics. (P) 4. Predict the behavior of basic machine-learning methods, and choose the appropriate method for particular problems. (W,P) 5. Communicate critical key issues in AI-related to knowledge representation, problem-solving, and learning for a specific problem. (W) 6. Propose, evaluate, and implement effective solutions to problems requiring AI techniques. (P) 7. Articulate key problems, both technical and philosophical, in the development of artificial intelligence systems. (E,W)


CS 57300 - Data Mining
Credit Hours: 3.00. (CSCI 57300) Data Mining has emerged at the confluence of artificial intelligence, statistics, and databases as a technique for automatically discovering summary knowledge in large datasets. This course introduces students to the process and main techniques in data mining, including classification, clustering, and pattern mining approaches. Data mining systems and applications are also covered, along with selected topics in current research. Offered in alternate years.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Learning Outcomes: 1. Learn Data mining techniques. 2. Learn how to summarize large data sets. 3. Learn current research topics.


CS 57700 - Natural Language Processing
Credit Hours: 3.00. This course will cover the key concepts and methods used in modern Natural Language Processing (NLP). Throughout the course several core NLP tasks, such as sentiment analysis, information extraction, syntactic and semantic analysis, will be discussed. The course will emphasize machine-learning and data-driven algorithms and techniques, and will compare several different approaches to these problems in terms of their performance, supervision effort and computational complexity. Prerequisites: A background in linear algebra, calculus, statistics and probability, and completion of CS 57800 or equivalent are highly recommended. Strong programming skills in any modem language (Python, Java, C++) are required.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Describe and analyze the key challenges in dealing with natural language data and other fundamental areas of NLP. 2. Analyze and implement the key algorithms and techniques used in NLP. 3. Identify algorithmic techniques that can be applied to new problems and evaluate other possible solutions. 4. Conduct experiments using proper methodology for training and testing NLP systems using data. 5. Critically review current research work in the NLP field.


CS 57800 - Statistical Machine Learning
Credit Hours: 3.00. This introductory course will cover many concepts, models, and algorithms in machine learning. Topics include classical supervised learning (e.g., regression and classification), unsupervised learning (e.g., principle component analysis and K-means), and recent development in the machine learning field such as variational Bayes, expectation propagation, and Gaussian processes. While this course will give students the basic ideas and intuition behind modern machine learning methods, the underlying theme in the course is probabilistic inference.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated up to 2 times

Learning Outcomes: 1. Learn the theory and key algorithms used in machine learning. 2. Get hands-on machine learning experience by implementing several algorithms, applying them to datasets and analyzing their performance. 3. Understand how to use machine learning methods to their research projects, formulate the learning tasks and match them with appropriate solutions.


CS 57900 - Bioinformatics Algorithms
Credit Hours: 3.00. Review of Genomes, DNA, RNA, proteins, proteomes. Biological Sequences: dynamic programming; pairwise global, local, and semi-global alignments of genes and proteins; constant, affine, and general gap penalties; RNA alignments; BLOSUM and PAM scoring matrices. Multiple alignment of proteins: approximation algorithms; iterative and progressive alignment methods. Database search for sequences: BLAST and variants. Phylogenetic Trees: distance-based methods, ultrametric and additive distance functions; parsimony, and maximum likelihood methods. Whole Genome Alignment: suffix trees and suffix arrays. Systems Biology: Module discovery in biological networks, spectral algorithms for graph clustering. Network alignment: quadratic programming formulations and graph matching. Genetic Variation: haplotype inference, the perfect phylogeny problem and chordal graphs. Additional topics such as next-generation sequencing, analysis of multidimensional data from flow cytometry, and gene expression data, if time permits.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Students will learn how to design algorithms. 2. Students will learn how to solve computational problems from the new biology, the data-rich field that biological sciences is becoming.


CS 58000 - Algorithm Design, Analysis, And Implementation
Credit Hours: 3.00. Basic techniques for designing and analyzing algorithms: dynamic programming, divide and conquer, balancing. Upper and lower bounds on time and space costs, worst case and expected cost measures. A selection of applications such as disjoint set union/find, graph algorithms, search trees, pattern matching. The polynomial complexity classes P, NP, and co-NP; intractable problems.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      PU Fort Wayne
      West Lafayette


CS 58400 - Theory Of Computation And Computational Complexity
Credit Hours: 3.00. The theory of general purpose programming systems. Recursive and partial-recursive functions; recursive and recursively enumerable sets. The Church-Turing thesis. The recursion theorem, Rogers' translation theorem, Rice's undecidability theorem. The general theory of computational complexity: there are no general solutions to natural optimization problems. Complexity for specific models of computation: the polynomial complexity classes P, NP, and PSPACE; NP-hard and PSPACE-hard problems, inherently exponential problems.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette


CS 58500 - Theoretical Computer Science Toolkit
Credit Hours: 3.00.  This course covers fundamental techniques and a range of mathematical tools that underlie today's research in theoretical computer science. The course material is essential for research in theoretical computer science as well as machine learning theory. The course is targeted at students who plan to pursue research in these areas. Topics will be chosen from four core areas: Convex Analysis and Optimization, Spectral Methods, Concentration Inequalities, and Discrete Fourier Analysis. Depending on student and instructor interest, additional topics will be chosen and may include applied analysis, coding theory, probabilistic proofs, and more advanced topics in discrete Fourier analysis. Students will read papers in theoretical computer science and machine learning theory using, exploring and extending the covered techniques and tools. Students are expected to be proficient in probability theory, have the maturity to follow and carry out basic analysis proofs, and have completed courses in calculus, linear algebra, discrete mathematics, and analysis of algorithms. More specifically, the course expects mastery of the material covered in Calculus III, Linear Algebra, Probability, Foundations of CS, and Analysis of Algorithms.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Explain and justify the merits and limitations of convex optimization algorithms. 2.  Describe the characteristics and the role of convexity in optimization. 3.  Formulate mathematically problems that have solutions based on convex optimization or matric analysis tools and analyze them effectively. 4.  Predict typicality of the outcome in experiments. 5.  Explain how to use and apply concentration bounds, including Chernoff-Hoeffding Bound, Martingales and Azuma's Inequality, and applications of the Talagrand inequality. 6.  Develop precise mathematical formulation of problems and analyze using frameworks related to concentration of measure. 7.  Apply Discrete Fourier Transform to determine properties of functions. 8.  Explain why Fourier Analysis of Boolean Functions is a major tool in theoretical CS and describe application scenarios including property testing, cryptography, complexity, learning theory, pseudorandomness, hardness of approximation, and random graph theory. 9.  Identify properties of functions based on the properties of their spectrum. 10.  Explain the basic ideas underlying the tradeoff between the amount of redundancy used and the number of errors that can be corrected by a code. 11.  Describe achieving the optimal tradeoff between redundancy and error correction for codes that come equipped with efficient encoding and decoding. 12.  Illustrate how and why concatenated codes support the construction of asymptotically good codes.


CS 58700 - Foundations Of Deep Learning
Credit Hours: 3.00. This course provides an integrated view of the key concepts of deep learning (representation learning) methods. This course focuses on teaching principles and methods needed to design and deploy novel deep learning models, emphasizing the relationship between traditional statistical models, causality, invariant theory, and the algorithmic challenges of designing and deploying deep learning models in real-world applications. This course has both a theoretical and coding component. The course assumes familiarity with coding in the language used for state-of-the-art deep learning libraries, linear algebra, probability theory, and statistical machine learning.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Understand statistical Foundations of Deep Learning. 2. Understand feedforward Networks. 3. Understand stochastic optimization of neural network models. 4. Understand Bayesian Neural Networks. 5. Understand invariant & Equivariant Representation Learning. 6. Understand task-invariant representations. 7. Understand meta Learning. 8. Understand multi-task Learning. 9. Understand transfer Learning. 10. Understand implicit generative models (probabilistic models without explicit likelihoods). 11. Understand variational Auto-Encoders. 12. Understand generative Adversarial Networks. 13. Understand stable Diffusion Generative models. 14. Understand how to evaluate the performance of neural networks, as well as formulate and test hypotheses. 15. Understand how theory and algorithmic elements interact to impact performance.


CS 58800 - Randomized Algorithms
Credit Hours: 3.00. The area of randomized algorithms has grown from being a tool in computational number theory to finding widespread application in algorithms in all areas of computer science. Two practical benefits of randomization are its simplicity and speed. Deep and important computational complexity connections have been developed, from bridging the gap between discrete and continuous optimization, bypassing deterministic barriers in online settings, summarizing massive data in polylogarithmic space, probabilistically checkable proofs, privacy enhancing techniques, modeling the web and other large networks, and sparsifying and compressing complicated combinatorial structures such as graphs. Randomization is an essential key ingredient in the algorithmic breakthroughs today and in the future. This course presents the basic concepts in the design and analysis of randomized algorithms and shows how to apply them to algorithms for a wide range of problems. The course covers a broad range of problems benefitting from randomized computation including data structures, graph algorithms, online algorithms, geometric algorithms, streaming algorithms, derandomization techniques, and tools for probabilistic analysis of algorithms.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1. Describe the main principles underlying the design and analysis of a randomized algorithm. 2. Explain concepts of randomized algorithms used in specific domains; e.g., graph-theory, number theory, and linear algebra problems. 3. Apply measure concentration results from probability theory to analyze a given randomized algorithm. 4. Determine the running times, failure probabilities, and accuracy guarantees of a randomized algorithm. 5. Apply learned design techniques and analysis tools to design and analyze new randomized algorithms. 6. Explain material from published research in the area of randomized algorithms using field-specific language.


CS 59000 - Topics In Computer Sciences
Credit Hours: 1.00 to 5.00. Directed study for students who wish to undertake individual reading and study on approved topics. Permission of instructor required.
0.000 TO 5.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Individual Study, Laboratory, Lecture, Practice Study Observation
All Sections for this Course

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division, Variable Title

May be offered at any of the following campuses:     
      West Lafayette Continuing Ed
      PU Fort Wayne
      Northwest- Westville
      Northwest- Hammond
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times


CS 59100 - Seminar
Credit Hours: 1.00. A weekly seminar presented by faculty and invited speakers, normally in a specific area.
1.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division, Variable Title

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times


CS 59200 - Computer Science Seminar
Credit Hours: 3.00. A seminar course for in-depth exploration of a specific topic. Topics vary. Classes consist of both instructor and student presentations. Students read, present and discuss research papers, and may complete and present a research project in the area. For each offering, inclusion on a plan of study is determined by the CS Graduate Study Committee. If approved, may be included on a CS MS or PhD plan of study according to relevant ruleset.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division, Variable Title

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times

Learning Outcomes: 1. Vary due to nature of course.


CS 59300 - New Topics In CS
Credit Hours: 3.00. A variable title course for topics not currently covered in the CS graduate curriculum. Each offering follows a traditional course structure with textbook(s), assignments, exams, and week-by-week content synopsis described in a syllabus. A CS 59300 offering does not imply that a course is intended to become, or will become, a regular course in the CS graduate curriculum. May be included on a CS MS or PhD plan of study according to the relevant ruleset.
3.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Upper Division, Variable Title

May be offered at any of the following campuses:     
      PU Fort Wayne
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times

Learning Outcomes: 1. Vary due to nature of course.


CS 59799 - Graduate Professional Practice
Credit Hours: 0.00. Internship experience to complement the student's academic coursework and help prepare the student for employment in computer science. The student must present a letter from the proposed employer describing to a reasonable extent the work to be undertaken and find a member of the Computer Science Graduate Faculty to be the instructor. The student must have completed at least one semester as a computer science graduate student at Purdue, West Lafayette. May not be taken in successive semesters. Permission of instructor required.
0.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Experiential

Offered By: College of Science
Department: Computer Science

Course Attributes:
Full-Time Privileges, Internship

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times

Learning Outcomes: 1. Experience applying knowledge and skills learned in courses.


CS 61500 - Numerical Methods For Partial Differential Equations I
Credit Hours: 3.00. (MA 61500) Finite element method for elliptic partial differential equations; weak formulation; finite-dimensional approximations; error bounds; algorithmic issues; solving sparse linear systems; finite element method for parabolic partial differential equations; backward difference and Crank-Nicolson time-stepping; introduction to finite difference methods for elliptic, parabolic, and hyperbolic equations; stability, consistency, and convergence; discrete maximum principles. Prerequisite: CS 51400, MA 52300.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Lecture

Offered By: College of Science
Department: Computer Science


May be offered at any of the following campuses:     
      West Lafayette

CS 62600 - Advanced Information Assurance
Credit Hours: 3.00. Advanced topics in information assurance, including selections from the following: penetration testing, formal verification of systems, formal models of information flow and protection, distributed system authentication, protocol design and attack, computer viruses and malware, intrusion and anomaly detection models, multi-level security, active defenses, investigation and forensics, network firewalls, anonymity and identity, e-commerce support, and database security models and mechanisms. Offered every third semester. Prerequisite: CS 52600, 55500.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Lecture

Offered By: College of Science
Department: Computer Science


May be offered at any of the following campuses:     
      West Lafayette

CS 63500 - Capturing And Rendering Real-World Scenes
Credit Hours: 3.00. Advanced techniques for automated modeling and visualization of complex environments, such as rooms, buildings, urban scenes, and landscapes. Topics covered are at the confluence of computer graphics, computer vision and engineering, and include: capture technologies, acquisition device calibration, view registration, panoramic images, 3D reconstruction from images, view morphing, 3D image warping, light field modeling and rendering, visual hulls, point-based modeling and rendering, view dependent texture mapping, and application development issues and examples. Prerequisite: CS 58000, CS 53500 or a solid foundation in computer graphics, programming proficiency in C or C++ and basic linear algebra.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Lecture

Offered By: College of Science
Department: Computer Science


May be offered at any of the following campuses:     
      West Lafayette

CS 63600 - Internetworking
Credit Hours: 3.00. Principles of Internetwork architecture and communication protocols underlying interoperable systems. Topics include universal interconnection, Internet addressing and routing, address binding, control of Internet congestion and flow, examples of Internet protocol suites (TCP/IP and XNS), round trip time estimation, naming and name resolution, Internet applications programs, and the ISO/OSI model. Prerequisite: CS 50300.
0.000 OR 3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Lecture, Practice Study Observation

Offered By: College of Science
Department: Computer Science


May be offered at any of the following campuses:     
      West Lafayette

CS 63800 - Multimedia Networking And Operating Systems
Credit Hours: 3.00. For graduate students in computer sciences who have a background in networking and operating systems and are interested in research in networked multimedia systems. The course consists of a selection of networking and operating system topics for realizing high performance, predictable, scalable, flexible, and secure multimedia systems. Topics may vary to reflect timely research issues and the current interests of the instructor(s). Students are expected to complete a term project. Presentations also may be required. Undergraduate background in computer science required. Prerequisite: CS 53600 or 50300.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Lecture

Offered By: College of Science
Department: Computer Science


May be offered at any of the following campuses:     
      West Lafayette

CS 64100 - Multimedia Database Systems
Credit Hours: 3.00. Prepares students for research in multimedia database systems. Students are exposed to a variety of emerging innovative techniques to store, manipulate, communicate, visualize, and reason with multimedia systems. Prerequisite: CS 54100 or 54200.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Lecture

Offered By: College of Science
Department: Computer Science


May be offered at any of the following campuses:     
      West Lafayette

CS 65500 - Advanced Cryptology
Credit Hours: 3.00. Advanced topics in cryptography and cryptanalysis, including selections from the following: Steganographic methods, Cryptanalytic techniques, including differential cryptanalysis, and chosen plaintext attacks. Message digest algorithm construction. Digital cash. Quantum cryptography. N-key systems. Minimal and zero-knowledge systems. Protocol design and failure. Verification of algorithms. Key generation and management. Traffic analysis. VPN construction and operation. Politics, espionage, and law enforcement concerns. Offered every third semester. Prerequisite: CS 52600, 55500.
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Lecture

Offered By: College of Science
Department: Computer Science


May be offered at any of the following campuses:     
      West Lafayette

CS 66200 - Pattern Recognition And Decision-Making Processes
Credit Hours: 3.00. (ECE 66200) Introduction to the basic concepts and various approaches of pattern recognition and decision-making processes. Topics include various classifier designs, evaluation of classifiability, learning machines, feature extraction, and modeling. Prerequisite: ECE 30200
3.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Lecture

Offered By: College of Science
Department: Computer Science


May be offered at any of the following campuses:     
      West Lafayette

CS 69000 - Seminar On Topics In Computer Sciences
Credit Hours: 0.00 to 5.00. Topics vary. Permission of instructor required.
0.000 TO 5.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Individual Study, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Variable Title

May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times


CS 69800 - Research MS Thesis
Credit Hours: 1.00 to 18.00. Research MS Thesis. The student is expected to follow safe research practices, to follow ethical research practices, to maintain communication with the instructor, to formulate a set of reasonable semester research progress milestones with instructor, optionally in writing. Permission of instructor required.
1.000 TO 18.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Research

Offered By: College of Science
Department: Computer Science


May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times

CS 69900 - Research PhD Thesis
Credit Hours: 1.00 to 18.00. Research PhD Thesis. The student is expected to follow safe research practices, to follow ethical research practices, to maintain communication with the instructor, to formulate a set of reasonable semester research progress milestones with instructor, optionally in writing. Permission of instructor required.
1.000 TO 18.000 Credit hours

Levels: Undergraduate, Graduate, Professional
Schedule Types: Research

Offered By: College of Science
Department: Computer Science


May be offered at any of the following campuses:     
      West Lafayette

Repeatable for Additional Credit: Yes - May be repeated an unlimited number of times


Return to Previous New Search XML Extract
Transparent Image
Skip to top of page
Release: 8.7.2.4