Skip to content

Course Descriptions

CSC 561: Neural Networks and Deep Learning

Placeholder This course surveys foundational and practical aspects of several deep learning approaches, including convolutional neural networks, recurrent neural networks, attention-based models, deep generative models, and deep reinforcement learning. Along the way, students will learn basic concepts such as gradient descent, generalization and overfitting, regularization, and model selection.

Spring 2024, Spring 2023, Spring 2022, Spring 2021, Spring 2020, Spring 2019, Fall 2017

CSC 411: Computer Organization

Placeholder CSC 411 introduces a logical structure of computer systems viewed as a hierarchy of levels. Topics include assembly language programming, assemblers, linkers, loaders, digital logic, processor organization, instruction sets, addressing techniques, and memory hierarchies.

Spring 2024, Spring 2023, Spring 2022, Spring 2021

CSC 461: Machine Learning

Placeholder Machine learning is an exciting and fast-moving field that studies the theoretical and methodological aspects of computer programs that can learn from data or past experience. CSC 461 surveys a mixture of mathematical foundations, traditional and newly developed machine learning algorithms, and best practices in the application of machine learning to solve real-world problems.

Fall 2022, Fall 2021, Fall 2020, Fall 2019, Fall 2018, Fall 2016

CSC 415: Parallel Computing

Placeholder CSC 415 provides a deep understanding of the fundamental principles in modern parallel computing systems. Topics include: basic concepts of computer architecture, microprocessors and operating systems; parallel programming models; message passing; threads and shared memory; GPU architectures and CUDA programming.

Fall 2021, Spring 2018

CSC 212: Data Structures and Abstractions

Placeholder CSC 212 explores theoretical, implementation, and application aspects of important data structures and sorting/search algorithms in use on modern computers. The course also covers basic concepts for analyzing space and time requirements of algorithms, critical for understanding their performance characteristics.

Fall 2020, Spring 2020, Spring 2019, Fall 2018, Spring 2018, Fall 2017, Spring 2017, Fall 2016, Spring 2016, Fall 2015

CSC 211: Computer Programming

Placeholder CSC 211 provides an introduction to programming using the C/C++ language. The course also explores basic computational problem-solving techniques and object oriented programming. Prior programming experience is not strictly necessary, however, students must be familiar with the basics of computers.

Fall 2019, Summer 2018

CSC 481: Artificial Intelligence

Placeholder CSC 481 surveys theories, formalisms, and techniques to emulate intelligent behavior using information processing models. Uniformed/informed search, constraint satisfaction problems, adversarial search, markov decision processes, and reinforcement learning. Optional topics: natural language processing, machine learning, and computer vision.

Spring 2017, Spring 2016

CSC 492: Competitive Programming

Placeholder This course develops skills needed to solve problems in competitive programming contests and technical interviews. Students will spend most of their time coding solutions to specific problems in their language of choice (Java, C++, Python). At the end of the course, top-performing students will be invited to join the URI Programming Teams to participate in the ACM ICPC.

Spring 2017

Summary Table

Term 561 415 411 461 212 211 481 492
Spring 24
Fall 23
Spring 23
Fall 22
Spring 22
Fall 21
Spring 21
Fall 20
Spring 20
Fall 19
Spring 19
Fall 18
Summer 18
Spring 18
Fall 17
Spring 17
Fall 16
Spring 16
Fall 15