Spring 2017   Fall 2017   Spring 2018  

Spring 2017

COMP 110-01

Data/Computing Fundamentals

  • Days: W
  • Meeting Time: 07:00 pm-10:00 pm
  • Room: NEILL 400
  • Instructor: Daniel Kaplan

Notes: *1 credit course*

This course provides an introduction to the handling, analysis, and interpretation of "big data," the massive datasets now routinely being collected in science, commerce, and government. Students achieve facility with a sophisticated, technical computing environment. The course aligns with techniques being used in several courses in the sciences, statistics, and mathematics. The course is intended to be accessible to all students, regardless of background. (1 credit)

COMP 123-01

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 09:40 am-10:40 am
  • Room: OLRI 258
  • Instructor: Lian Duan

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 123-02

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room: OLRI 258
  • Instructor: Lian Duan

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 123-03

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 01:10 pm-02:10 pm
  • Room: OLRI 258
  • Instructor: Shilad Sen

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 123-04

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 08:30 am-09:30 am
  • Room: OLRI 258
  • Instructor: Shilad Sen

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 124-01

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 09:40 am-10:40 am
  • Room: OLRI 256
  • Instructor: Daniel Kluver

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-02

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room: OLRI 256
  • Instructor: Daniel Kluver

Notes: *Permission of instructor required; first day attendance required;ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-03

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 01:10 pm-02:10 pm
  • Room: OLRI 256
  • Instructor: Elizabeth Shoop

Notes: *Permission of instructor required; first day attendance required;ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-04

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 02:20 pm-03:20 pm
  • Room: OLRI 256
  • Instructor: Elizabeth Shoop

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L1

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 09:40 am-11:10 am
  • Room: OLRI 256
  • Instructor: Daniel Kluver

Notes: *First day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L2

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 03:00 pm-04:30 pm
  • Room: OLRI 256
  • Instructor: Daniel Kluver

Notes: *First day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L3

Object-Oriented Programming and Data Structures

  • Days: T
  • Meeting Time: 01:20 pm-02:50 pm
  • Room: OLRI 256
  • Instructor: Elizabeth Shoop

Notes: *First day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L4

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 01:20 pm-02:50 pm
  • Room: OLRI 256
  • Instructor: Elizabeth Shoop

Notes: *First day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L5

Object-Oriented Programming and Data Structures

  • Days: T
  • Meeting Time: 03:00 pm-04:30 pm
  • Room: OLRI 256
  • Instructor: Kluver, Shoop

Notes: This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 221-01

Algorithm Design and Analysis

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room: OLRI 243
  • Instructor: Shilad Sen

Notes: *All COMP majors with junior or senior status (and the prereqs) should be able to register for this course. Permission of instructor is required for students with first year or sophomore status; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

An in-depth introduction to the design and analysis of algorithms. Topics may include algorithmic paradigms and structures, including recursion, divide and conquer, dynamic programming, greedy methods, branch and bound, randomized, probabilistic, and parallel algorithms, non-determinism and NP completeness. Applications to searching and sorting, graphs and optimization, geometric algorithms, and transforms. (4 credits)


COMP 225-01

Software Design and Development

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room: OLRI 245
  • Instructor: Paul Cantrell

Notes: *All COMP majors with junior or senior status (and the prereqs) should be able to register for this course. Permission of instructor is required for students with first year or sophomore status; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course builds upon the software design foundation started in Computer Science 124. Students will design and implement medium-sized software projects using modern software design principles such as design patterns, refactoring, fault tolerance, stream-based programming, and exception handling. The concept of a distributed computing system will be introduced, and students will develop multithreaded and networked applications using currently available software libraries. Advanced graphical user interface methods will be studied with an emphasis on appropriate human-computer interaction techniques. Students will use operating systems services and be introduced to methods of evaluating the performance of their software. (4 credits)


COMP 225-02

Software Design and Development

  • Days: MWF
  • Meeting Time: 01:10 pm-02:10 pm
  • Room: OLRI 245
  • Instructor: Paul Cantrell

Notes: *All COMP majors with junior or senior status (and the prereqs) should be able to register for this course. Permission of instructor is required for students with first year or sophomore status; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course builds upon the software design foundation started in Computer Science 124. Students will design and implement medium-sized software projects using modern software design principles such as design patterns, refactoring, fault tolerance, stream-based programming, and exception handling. The concept of a distributed computing system will be introduced, and students will develop multithreaded and networked applications using currently available software libraries. Advanced graphical user interface methods will be studied with an emphasis on appropriate human-computer interaction techniques. Students will use operating systems services and be introduced to methods of evaluating the performance of their software. (4 credits)


COMP 225-03

Software Design and Development

  • Days: MWF
  • Meeting Time: 02:20 pm-03:20 pm
  • Room: OLRI 245
  • Instructor: Bret Jackson

Notes: *All COMP majors with junior or senior status (and the prereqs) should be able to register for this course. Permission of instructor is required for students with first year or sophomore status; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course builds upon the software design foundation started in Computer Science 124. Students will design and implement medium-sized software projects using modern software design principles such as design patterns, refactoring, fault tolerance, stream-based programming, and exception handling. The concept of a distributed computing system will be introduced, and students will develop multithreaded and networked applications using currently available software libraries. Advanced graphical user interface methods will be studied with an emphasis on appropriate human-computer interaction techniques. Students will use operating systems services and be introduced to methods of evaluating the performance of their software. (4 credits)


COMP 294-01

Computational Methods

  • Days: TR
  • Meeting Time: 01:20 pm-02:50 pm
  • Room: NEILL 228
  • Instructor: Stephanie Farmer

Notes: *Cross-listed with LING 294-01* This course is an introduction to the computational strategies used by linguists in research on human language. We will learn the basics of programming in Python and how to apply this skill to the analysis and manipulation of natural language data. We will also explore the successes and limitations of modern natural language processing technologies such as machine translation, speech recognition, and the computational representation of meaning.

COMP 302-01

Introduction to Database Management Systems

  • Days: TR
  • Meeting Time: 08:00 am-09:30 am
  • Room: OLRI 241
  • Instructor: Getiria Onsongo

Notes: *Declared COMP or Applied Math and Statistics Majors (with the prereqs) are able to register, permission of instructor required for all other students; first day attendance required; ACTC students may register on Friday, December 2nd with permission of the instructor*

This course will introduce students to the design, implementation, and analysis of databases stored in database management systems (DBMS). Topics include implementation-neutral data modeling, database design, database implementation, and data analysis using relational algebra and SQL. Students will generate data models based on real-world problems, and implement a database in a state-of-the-art DBMS. Students will master complex data analysis by learning to first design database queries and then implement them in a database query language such as SQL. Advanced topics include objects in databases, indexing for improved performance, distributed databases, and data warehouses. (4 credits)

COMP 346-01

Internet Computing

  • Days: TR
  • Meeting Time: 03:00 pm-04:30 pm
  • Room: OLRI 243
  • Instructor: Kyle Rosenberg

Notes: *Permission of the instructor required; first day attendance required; ACTC Students may register on December 2nd with permission of the instructor*

This course will investigate the latest technology available for building web applications with dynamic content. It will look at all stages in the web application design process, including: 1) client applications, 2) web applications that service client requests, 3) application servers that manage requests for information, update data, and serve client applets, and 4) the database management system that holds the data. The course will be programming-intensive using aspects of the Java language available for designing and implementing Internet applications. The format of the course will be mainly laboratory-based sessions where you learn to build these four components of a web application, supported by lectures and discussions. Students will research particular topics and present their findings during these discussion sessions. The course will also investigate the usability of designs from a human factors standpoint and discuss privacy and other social consequences of this technology. Offered even-numbered fall semesters. (4 credits)

COMP 365-01

Computational Linear Algebra

  • Days: TR
  • Meeting Time: 08:00 am-09:30 am
  • Room: OLRI 245
  • Instructor: David Shuman

Notes: *Cross-listed with MATH 365-01; ACTC Students may register on December 2nd with permission of the instructor*

This course covers a central point of contact between mathematics and computer science. Many of the computational techniques important in science, commerce, and statistics are based on concepts from linear algebra: subspaces, projection, matrix decompositions, etc. The course reviews these concepts, adopts them to large scales, and applies them in the core techniques of scientific computing; solving systems of linear and nonlinear equations, approximation and statistical function estimation, optimization, interpolation, Monte Carlo techniques. Applications throughout the sciences and statistics. Course is cross-listed with Mathematics 365. (4 credits).

COMP 365-02

Computational Linear Algebra

  • Days: TR
  • Meeting Time: 09:40 am-11:10 am
  • Room: OLRI 245
  • Instructor: David Shuman

Notes: *Cross-listed with MATH 365-02; ACTC Students may register on December 2nd with permission of the instructor*

This course covers a central point of contact between mathematics and computer science. Many of the computational techniques important in science, commerce, and statistics are based on concepts from linear algebra: subspaces, projection, matrix decompositions, etc. The course reviews these concepts, adopts them to large scales, and applies them in the core techniques of scientific computing; solving systems of linear and nonlinear equations, approximation and statistical function estimation, optimization, interpolation, Monte Carlo techniques. Applications throughout the sciences and statistics. Course is cross-listed with Mathematics 365. (4 credits).

COMP 394-01

Software Testing and Assurance Cases in the Context of Certification

  • Days: MWF
  • Meeting Time: 02:20 pm-03:20 pm
  • Room: OLRI 258
  • Instructor: Lian Duan

Notes: *Declared COMP majors (with the prereqs) should be able to register, signature of instructor required for all others; first day attendance required; ACTC Students may register on December 2nd with permission of the instructor* This topics course serves to expand and extend the topics discussed in COMP 225. Specifically, we will focus on software testing techniques: unit and integration tests, branch tests, regression tests, etc. Some papers will be assigned to help supplement the learning. The course will also address the topic of certification – after a manufacturer has developed software (or a product where software is a heavy component), and this product is in a class that is regulated (such as medical devices, airplanes, and drones), how does the manufacturer show that the software is acceptably safe, secure, or reliable? We will look at one way that can be used – assurance cases, look at the reasoning that goes into the construction of these cases and how good, reliable tests fit into the whole picture.

COMP 479-01

Network Science

  • Days: TR
  • Meeting Time: 09:40 am-11:10 am
  • Room: OLRI 205
  • Instructor: Andrew Beveridge

Notes: *Cross-listed with MATH 479-01; ACTC Students may register on December 2nd with permission of the instructor*

The modern Information Age has produced a wealth of data about the complex networks that tie us together. In response, the field of Network Science has arisen, bringing together mathematics, computer science, sociology, biology, economics and other fields. This course will explore the fundamental questions and the mathematical tools of Network Science. This includes: the structure of complex networks, including connectedness, centrality and “long tails”; community detection; random/strategic models for network formation; diffusion/contagion and “tipping points” on networks; and algorithms for analyzing complex networks. Cross-listed with Mathematics 479. (4 credits)

COMP 484-01

Introduction to Artificial Intelligence

  • Days: MWF
  • Meeting Time: 03:30 pm-04:30 pm
  • Room: OLRI 241
  • Instructor: Elizabeth Jensen

Notes: *Permission of instructor required; first day attendance required; ACTC Students may register on December 2nd with permission of the instructor; cross-listed with NEUR 484-01*

An introduction to the basic principles and techniques of artificial intelligence. Topics will include specific AI techniques, a range of application areas, and connections between AI and other areas of study (i.e., philosophy, psychology). Techniques may include heuristic search, automated reasoning, machine learning, deliberative planning and behavior-based agent control. Application areas include robotics, games, knowledge representation, logic, perception, and natural language processing. Offered even-numbered fall semesters. (4 credits) Cross-listed as Neuroscience Studies 484.


COMP 494-01

Interactive Computer Graphics

  • Days: MWF
  • Meeting Time: 03:30 pm-04:30 pm
  • Room: OLRI 258
  • Instructor: Bret Jackson

Notes: *Declared COMP majors (with the prereqs) should be able to register, signature of instructor required for all others; ACTC students may register on Friday, December 2nd with permission of the instructor* This course will investigate the theory and practice of computer graphics programming using C++ and OpenGL. Through hands-on projects, supported by lecture and discussion, you will learn the fundamentals of creating interactive 2D and 3D images with applications in art, design, games, movies, science, and medicine. Topics covered will include event loops, polygonal models, rendering techniques, texturing, lighting, interaction techniques, and virtual reality. Prerequisite: COMP 240; Linear Algebra recommended but not required

Fall 2017

COMP 112-01

Introduction to Data Science

  • Days: TR
  • Meeting Time: 09:40 am-11:10 am
  • Room: NEILL 400
  • Instructor: Johnson, Sen

Notes: *First Year Course only, first day attendance required*

This course provides an introduction to the handling, analysis, and interpretation of the big datasets now routinely being collected in science, commerce, and government. Students achieve facility with a sophisticated, technical computing environment. The course aligns with techniques being used in several courses in the natural and social sciences, statistics, and mathematics. The course is intended to be accessible to all students, regardless of background. (4 credits)

COMP 112-02

Introduction to Data Science

  • Days: TR
  • Meeting Time: 01:20 pm-02:50 pm
  • Room: OLRI 254
  • Instructor: Shilad Sen

Notes: *First day attendance required; ACTC students may register on April 28th with permission of instructor*

This course provides an introduction to the handling, analysis, and interpretation of the big datasets now routinely being collected in science, commerce, and government. Students achieve facility with a sophisticated, technical computing environment. The course aligns with techniques being used in several courses in the natural and social sciences, statistics, and mathematics. The course is intended to be accessible to all students, regardless of background. (4 credits)

COMP 123-01

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 08:30 am-09:30 am
  • Room: OLRI 258
  • Instructor: Lian Duan

Notes: *First day attendance required; ACTC students may register on April 28th with permission of instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 123-02

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 09:40 am-10:40 am
  • Room: OLRI 258
  • Instructor: Lian Duan

Notes: *First day attendance required; ACTC students may register on April 28th with permission of instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 123-03

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 01:10 pm-02:10 pm
  • Room: OLRI 258
  • Instructor: Elizabeth Ernst

Notes: *First day attendance required; ACTC students may register on April 28th with permission of instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 123-04

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 02:20 pm-03:20 pm
  • Room: OLRI 258
  • Instructor: Elizabeth Ernst

Notes: *First day attendance required; ACTC students may register on April 28th with permission of instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 123-05

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room: OLRI 254
  • Instructor: Getiria Onsongo

Notes: *First day attendance required; Students are required to have a laptop on which software may be installed and to bring it to class every day; ACTC students may register on April 28th with permission of instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 124-01

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 08:30 am-09:30 am
  • Room: OLRI 256
  • Instructor: Bret Jackson

Notes: *Permission of instructor required; first day attendance required;students registered for Section 01 of COMP 124 MUST register for Lab 1; ACTC students may register on April 28th with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-02

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 09:40 am-10:40 am
  • Room: OLRI 256
  • Instructor: Elizabeth Jensen

Notes: *Permission of instructor required; first day attendance required;students registered for Section 02 of COMP 124 MUST register for Lab 2; ACTC students may register on April 28th with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-03

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room: OLRI 256
  • Instructor: Elizabeth Jensen

Notes: *Permission of instructor required; first day attendance required;students registered for Section 03 of COMP 124 MUST register for Lab 3; ACTC students may register on April 28th with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-04

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 02:20 pm-03:20 pm
  • Room: OLRI 256
  • Instructor: Daniel Kluver

Notes: *Permission of instructor required; first day attendance required;students registered for Section 04 of COMP 124 MUST register for Lab 4; ACTC students may register on April 28th with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L1

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 08:00 am-09:30 am
  • Room: OLRI 256
  • Instructor: Bret Jackson

Notes: *Permission of instructor required; students registered for Lab 1 of COMP 124 MUST register for Section 01 of the course; ACTC students may register on April 28th with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L2

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 09:40 am-11:10 am
  • Room: OLRI 256
  • Instructor: Elizabeth Jensen

Notes: *Permission of instructor required; students registered for Lab 2 of COMP 124 MUST register for Section 02 of the course; ACTC students may register on April 28th with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L3

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 01:20 pm-02:50 pm
  • Room: OLRI 256
  • Instructor: Elizabeth Jensen

Notes: *Permission of instructor required; students registered for Lab 3 of COMP 124 MUST register for Section 03 of the course; ACTC students may register on April 28th with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L4

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 03:00 pm-04:30 pm
  • Room: OLRI 256
  • Instructor: Daniel Kluver

Notes: *Permission of instructor required; students registered for Lab 4 of COMP 124 MUST register for Section 04 of the course; ACTC students may register on April 28th with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 221-01

Algorithm Design and Analysis

  • Days: MWF
  • Meeting Time: 02:20 pm-03:20 pm
  • Room: OLRI 243
  • Instructor: Susan Fox

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on April 28th with permission of instructor*

An in-depth introduction to the design and analysis of algorithms. Topics may include algorithmic paradigms and structures, including recursion, divide and conquer, dynamic programming, greedy methods, branch and bound, randomized, probabilistic, and parallel algorithms, non-determinism and NP completeness. Applications to searching and sorting, graphs and optimization, geometric algorithms, and transforms. (4 credits)


COMP 225-01

Software Design and Development

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room: OLRI 245
  • Instructor: Paul Cantrell

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on April 28th with permission of instructor*

This course builds upon the software design foundation started in Computer Science 124. Students will design and implement medium-sized software projects using modern software design principles such as design patterns, refactoring, fault tolerance, stream-based programming, and exception handling. The concept of a distributed computing system will be introduced, and students will develop multithreaded and networked applications using currently available software libraries. Advanced graphical user interface methods will be studied with an emphasis on appropriate human-computer interaction techniques. Students will use operating systems services and be introduced to methods of evaluating the performance of their software. (4 credits)


COMP 225-02

Software Design and Development

  • Days: MWF
  • Meeting Time: 01:10 pm-02:10 pm
  • Room: OLRI 245
  • Instructor: Paul Cantrell

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on April 28th with permission of instructor*

This course builds upon the software design foundation started in Computer Science 124. Students will design and implement medium-sized software projects using modern software design principles such as design patterns, refactoring, fault tolerance, stream-based programming, and exception handling. The concept of a distributed computing system will be introduced, and students will develop multithreaded and networked applications using currently available software libraries. Advanced graphical user interface methods will be studied with an emphasis on appropriate human-computer interaction techniques. Students will use operating systems services and be introduced to methods of evaluating the performance of their software. (4 credits)


COMP 240-01

Computer Systems Organization

  • Days: MWF
  • Meeting Time: 02:20 pm-03:20 pm
  • Room: OLRI 245
  • Instructor: Elizabeth Shoop

Notes: *First day attendance required; open to current Sophomore, Junior, Seniors who have declared a Computer Science Major; ACTC students may register on April 28th with permission of instructor*

This course familiarizes the student with the internal design and organization of computers. Topics include number systems, internal data representations, logic design, microarchitectures, the functional units of a computer system, memory, processor, and input/output structures, instruction sets and assembly language, addressing techniques, system software, and non-traditional computer architectures. Offered odd-numbered spring semestes. (4 credits)

COMP 240-02

Computer Systems Organization

  • Days: MWF
  • Meeting Time: 03:30 pm-04:30 pm
  • Room: OLRI 245
  • Instructor: Elizabeth Shoop

Notes: *First day attendance required; open to current Sophomore, Junior, Seniors who have declared a Computer Science Major; ACTC students may register on April 28th with permission of instructor*

This course familiarizes the student with the internal design and organization of computers. Topics include number systems, internal data representations, logic design, microarchitectures, the functional units of a computer system, memory, processor, and input/output structures, instruction sets and assembly language, addressing techniques, system software, and non-traditional computer architectures. Offered odd-numbered spring semestes. (4 credits)

COMP 261-01

Theory of Computation

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room: OLRI 243
  • Instructor: Susan Fox

Notes: *Permission of instructor required; cross-listed with MATH 361-01; first day attendance required; ACTC students may register on April 28th with permission of instructor*

A discussion of the basic theoretical foundations of computation as embodied in formal models and descriptions. The course will cover finite state automata, regular expressions, formal languages, Turing machines, computability and unsolvability, and the theory of computational complexity. Introduction to alternate models of computation and recursive function theory. (4 credits)


COMP 261-02

Theory of Computation

  • Days: MWF
  • Meeting Time: 03:30 pm-04:30 pm
  • Room: OLRI 205
  • Instructor: Daniel Kluver

Notes: *Permission of instructor required; cross-listed with MATH 361-02; first day attendance required; ACTC students may register on April 28th with permission of instructor*

A discussion of the basic theoretical foundations of computation as embodied in formal models and descriptions. The course will cover finite state automata, regular expressions, formal languages, Turing machines, computability and unsolvability, and the theory of computational complexity. Introduction to alternate models of computation and recursive function theory. (4 credits)


COMP 302-01

Introduction to Database Management Systems

  • Days: TR
  • Meeting Time: 01:20 pm-02:50 pm
  • Room: OLRI 258
  • Instructor: Getiria Onsongo

Notes: *First day attendance required; open to current Sophomore, Junior, Seniors who have declared a Computer Science Major or Applied Math Major or Data Science Minor; ACTC students may register on April 28th with permission of instructor*

This course will introduce students to the design, implementation, and analysis of databases stored in database management systems (DBMS). Topics include implementation-neutral data modeling, database design, database implementation, and data analysis using relational algebra and SQL. Students will generate data models based on real-world problems, and implement a database in a state-of-the-art DBMS. Students will master complex data analysis by learning to first design database queries and then implement them in a database query language such as SQL. Advanced topics include objects in databases, indexing for improved performance, distributed databases, and data warehouses. (4 credits)

COMP 340-01

Digital Electronics

  • Days: TR
  • Meeting Time: 09:40 am-11:10 am
  • Room: OLRI 150
  • Instructor: James Doyle

Notes: *Cross-listed with PHYS 340-01*

A survey of fundamental ideas and methods used in the design and construction of digital electronic circuits such as computers. Emphasis will be on applying the theoretical aspects of digital design to the actual construction of circuits in the laboratory. Topics to be covered include basic circuit theory, transistor physics, logic families (TTL, CMOS), Boolean logic principles, combinatorial design techniques, sequential logic techniques, memory circuits and timing, and applications to microprocessor and computer design. Three lectures and one three-hour laboratory per week. (4 credits)


COMP 340-L1

Digital Electronics Lab

  • Days: T
  • Meeting Time: 01:20 pm-04:30 pm
  • Room: OLRI 147
  • Instructor: James Doyle

Notes: *Cross-listed with PHYS 340-L1*

A survey of fundamental ideas and methods used in the design and construction of digital electronic circuits such as computers. Emphasis will be on applying the theoretical aspects of digital design to the actual construction of circuits in the laboratory. Topics to be covered include basic circuit theory, transistor physics, logic families (TTL, CMOS), Boolean logic principles, combinatorial design techniques, sequential logic techniques, memory circuits and timing, and applications to microprocessor and computer design. Three lectures and one three-hour laboratory per week. (4 credits)


COMP 445-01

Parallel and Distributed Processing

  • Days: TR
  • Meeting Time: 03:00 pm-04:30 pm
  • Room: OLRI 245
  • Instructor: Elizabeth Shoop

Notes: *First day attendance required; ACTC students may register on April 28th with permission of instructor*

Many current computational challenges, such as Internet search, protein folding, and data mining require the use of multiple processes running in parallel, whether on a single multiprocessor machine (parallel processing) or on multiple machines connected together on a network (distributed processing). The type of processing required to solve such problems in adequate amounts of time involves dividing the program and/or problem space into parts that can run simultaneously on many processors. In this course we will explore the various computer architectures used for this purpose and the issues involved with programming parallel solutions in such environments. Students will examine several types of problems that can benefit from parallel or distributed solutions and develop their own solutions for them. Offered odd-numbered fall semesters. (4 credits)

COMP 484-01

Introduction to Artificial Intelligence

  • Days: MWF
  • Meeting Time: 03:30 pm-04:30 pm
  • Room: OLRI 241
  • Instructor: Susan Fox

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on April 28th with permission of instructor*

An introduction to the basic principles and techniques of artificial intelligence. Topics will include specific AI techniques, a range of application areas, and connections between AI and other areas of study (i.e., philosophy, psychology). Techniques may include heuristic search, automated reasoning, machine learning, deliberative planning and behavior-based agent control. Application areas include robotics, games, knowledge representation, logic, perception, and natural language processing. Offered even-numbered fall semesters. (4 credits) Cross-listed as Neuroscience Studies 484.


COMP 494-01

Topics in Visualization

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room: OLRI 258
  • Instructor: Bret Jackson

Notes: *First day attendance required; ACTC students may register on April 28th with permission of instructor* In this course, we will study techniques and algorithms for visualization design and analysis. We will cover topics such as visualization of multivariate, temporal, text-based, spatial, hierarchical, and network/graph-based data to clearly and effectively convey information graphically. Our discussions will revolve around principles of graphic design, perceptual psychology, and cognitive science. Students will have the opportunity to complete several programming assignments and data analysis tasks. Prerequisite: Comp 124

Spring 2018

COMP 112-01

Introduction to Data Science

  • Days: TR
  • Meeting Time: 08:00 am-09:30 am
  • Room:
  • Instructor: Shilad Sen

Notes: *First day attendance required; ACTC students may register on December 1st with permission of instructor*

This course provides an introduction to the handling, analysis, and interpretation of the big datasets now routinely being collected in science, commerce, and government. Students achieve facility with a sophisticated, technical computing environment. The course aligns with techniques being used in several courses in the natural and social sciences, statistics, and mathematics. The course is intended to be accessible to all students, regardless of background. (4 credits)

COMP 123-01

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 08:30 am-09:30 am
  • Room:
  • Instructor: Lian Duan

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 123-02

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 09:40 am-10:40 am
  • Room:
  • Instructor: Lian Duan

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 123-03

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room:
  • Instructor: Getiria Onsongo

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 123-04

Core Concepts in Computer Science

  • Days: MWF
  • Meeting Time: 03:30 pm-04:30 pm
  • Room:
  • Instructor: Susan Fox

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course introduces the field of computer science, including central concepts such as the design and implementation of algorithms and programs, testing and analyzing programs, the representation of information within the computer, and the role of abstraction and metaphor in computer science. The exploration of these central ideas will draw examples from a range of application areas including multimedia processing, robotics, turtle graphics, and text processing. Course work will use the Python programming language. (4 credits)

COMP 124-01

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 08:30 am-09:30 am
  • Room:
  • Instructor: Bret Jackson

Notes: *Permission of instructor required; first day attendance required; students registered for Section 01 of COMP 124 MUST register for Lab 1; ACTC students may register on December 1st with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-02

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 09:40 am-10:40 am
  • Room:
  • Instructor: Bret Jackson

Notes: *Permission of instructor required; first day attendance required; students registered for Section 02 of COMP 124 MUST register for Lab 2; ACTC students may register on December 1st with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-03

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 01:10 pm-02:10 pm
  • Room:
  • Instructor: Paul Cantrell

Notes: *Permission of instructor required; first day attendance required; students registered for Section 03 of COMP 124 MUST register for Lab 3; ACTC students may register on December 1st with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-04

Object-Oriented Programming and Data Structures

  • Days: MWF
  • Meeting Time: 02:20 pm-03:20 pm
  • Room:
  • Instructor: Daniel Kluver

Notes: *Permission of instructor required; first day attendance required; students registered for Section 04 of COMP 124 MUST register for Lab 4; ACTC students may register on December 1st with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L1

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 08:00 am-09:30 am
  • Room:
  • Instructor: Bret Jackson

Notes: *Students registered for Lab 1 of COMP 124 MUST register for Section 01 of the course; ACTC students may register on December 1st with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L2

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 09:40 am-11:10 am
  • Room:
  • Instructor: Bret Jackson

Notes: *Students registered for Lab 2 of COMP 124 MUST register for Section 02 of the course; ACTC students may register on December 1st with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L3

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 01:20 pm-02:50 pm
  • Room:
  • Instructor: Paul Cantrell

Notes: *Students registered for Lab 3 of COMP 124 MUST register for Section 03 of the course; ACTC students may register on December 1st with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 124-L4

Object-Oriented Programming and Data Structures

  • Days: R
  • Meeting Time: 03:00 pm-04:30 pm
  • Room:
  • Instructor: Daniel Kluver

Notes: *Students registered for Lab 4 of COMP 124 MUST register for Section 04 of the course; ACTC students may register on December 1st with permission of instructor*

This course introduces the principles of software design and development using the object-oriented paradigm (OOP) and the Java programming language. Students will learn to use data structures such as lists, trees and hash tables and they will compare the efficiency of these data structures for a particular application. Students will learn to decompose a project using OOP principles. They will work with integrated development environments (IDEs) and version control systems. Students will practice their skills by creating applications in areas such as graphics, games, simulations, and natural language processing. There is a required 1.5 hour laboratory section associated with this course. (4 Credits)


COMP 221-01

Algorithm Design and Analysis

  • Days: TR
  • Meeting Time: 09:40 am-11:10 am
  • Room:
  • Instructor: Shilad Sen

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

An in-depth introduction to the design and analysis of algorithms. Topics may include algorithmic paradigms and structures, including recursion, divide and conquer, dynamic programming, greedy methods, branch and bound, randomized, probabilistic, and parallel algorithms, non-determinism and NP completeness. Applications to searching and sorting, graphs and optimization, geometric algorithms, and transforms. (4 credits)


COMP 221-02

Algorithm Design and Analysis

  • Days: TR
  • Meeting Time: 01:20 pm-02:50 pm
  • Room:
  • Instructor: Lian Duan

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

An in-depth introduction to the design and analysis of algorithms. Topics may include algorithmic paradigms and structures, including recursion, divide and conquer, dynamic programming, greedy methods, branch and bound, randomized, probabilistic, and parallel algorithms, non-determinism and NP completeness. Applications to searching and sorting, graphs and optimization, geometric algorithms, and transforms. (4 credits)


COMP 225-01

Software Design and Development

  • Days: MWF
  • Meeting Time: 01:10 pm-02:10 pm
  • Room:
  • Instructor: Bret Jackson

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course builds upon the software design foundation started in Computer Science 124. Students will design and implement medium-sized software projects using modern software design principles such as design patterns, refactoring, fault tolerance, stream-based programming, and exception handling. The concept of a distributed computing system will be introduced, and students will develop multithreaded and networked applications using currently available software libraries. Advanced graphical user interface methods will be studied with an emphasis on appropriate human-computer interaction techniques. Students will use operating systems services and be introduced to methods of evaluating the performance of their software. (4 credits)


COMP 225-02

Software Design and Development

  • Days: MWF
  • Meeting Time: 03:30 pm-04:30 pm
  • Room:
  • Instructor: Elizabeth Jensen

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course builds upon the software design foundation started in Computer Science 124. Students will design and implement medium-sized software projects using modern software design principles such as design patterns, refactoring, fault tolerance, stream-based programming, and exception handling. The concept of a distributed computing system will be introduced, and students will develop multithreaded and networked applications using currently available software libraries. Advanced graphical user interface methods will be studied with an emphasis on appropriate human-computer interaction techniques. Students will use operating systems services and be introduced to methods of evaluating the performance of their software. (4 credits)


COMP 240-01

Computer Systems Organization

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room:
  • Instructor: Elizabeth Jensen

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course familiarizes the student with the internal design and organization of computers. Topics include number systems, internal data representations, logic design, microarchitectures, the functional units of a computer system, memory, processor, and input/output structures, instruction sets and assembly language, addressing techniques, system software, and non-traditional computer architectures. Offered odd-numbered spring semestes. (4 credits)

COMP 240-02

Computer Systems Organization

  • Days: MWF
  • Meeting Time: 02:20 pm-03:20 pm
  • Room:
  • Instructor: Elizabeth Shoop

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course familiarizes the student with the internal design and organization of computers. Topics include number systems, internal data representations, logic design, microarchitectures, the functional units of a computer system, memory, processor, and input/output structures, instruction sets and assembly language, addressing techniques, system software, and non-traditional computer architectures. Offered odd-numbered spring semestes. (4 credits)

COMP 240-03

Computer Systems Organization

  • Days: MWF
  • Meeting Time: 03:30 pm-04:30 pm
  • Room:
  • Instructor: Elizabeth Shoop

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course familiarizes the student with the internal design and organization of computers. Topics include number systems, internal data representations, logic design, microarchitectures, the functional units of a computer system, memory, processor, and input/output structures, instruction sets and assembly language, addressing techniques, system software, and non-traditional computer architectures. Offered odd-numbered spring semestes. (4 credits)

COMP 261-01

Theory of Computation

  • Days: MWF
  • Meeting Time: 01:10 pm-02:10 pm
  • Room:
  • Instructor: Daniel Kluver

Notes: *Cross-listed with MATH 361-01; permission of instructor required; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course examines the theoretical foundations of computation. It explores different mathematical models that try to formalize our informal notion of an algorithm. Models include finite automata, regular expressions, grammars, and Turing machines. The course also discusses ideas about what can and cannot be computed. In addition, the course explores the basics of complexity theory, examining broad categories of problems and their algorithms, and their efficiency. The focus is on the question of P versus NP, and the NP-complete set. (4 credits)


COMP 302-01

Introduction to Database Management Systems

  • Days: TR
  • Meeting Time: 01:20 pm-02:50 pm
  • Room:
  • Instructor: Getiria Onsongo

Notes: *First day attendance required; ACTC students may register on December 1st with permission of instructor*

This course will introduce students to the design, implementation, and analysis of databases stored in database management systems (DBMS). Topics include implementation-neutral data modeling, database design, database implementation, and data analysis using relational algebra and SQL. Students will generate data models based on real-world problems, and implement a database in a state-of-the-art DBMS. Students will master complex data analysis by learning to first design database queries and then implement them in a database query language such as SQL. Advanced topics include objects in databases, indexing for improved performance, distributed databases, and data warehouses. (4 credits)

COMP 365-01

Computational Linear Algebra

  • Days: TR
  • Meeting Time: 08:00 am-09:30 am
  • Room:
  • Instructor: Lori Ziegelmeier

Notes: *Cross-listed with MATH 365-01; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course covers a central point of contact between mathematics and computer science. Many of the computational techniques important in science, commerce, and statistics are based on concepts from linear algebra: subspaces, projection, matrix decompositions, etc. The course reviews these concepts, adopts them to large scales, and applies them in the core techniques of scientific computing; solving systems of linear and nonlinear equations, approximation and statistical function estimation, optimization, interpolation, Monte Carlo techniques. Applications throughout the sciences and statistics. Course is cross-listed with Mathematics 365. (4 credits).

COMP 365-02

Computational Linear Algebra

  • Days: TR
  • Meeting Time: 09:40 am-11:10 am
  • Room:
  • Instructor: Lori Ziegelmeier

Notes: *Cross-listed with MATH 365-02; first day attendance required; ACTC students may register on December 1st with permission of instructor*

This course covers a central point of contact between mathematics and computer science. Many of the computational techniques important in science, commerce, and statistics are based on concepts from linear algebra: subspaces, projection, matrix decompositions, etc. The course reviews these concepts, adopts them to large scales, and applies them in the core techniques of scientific computing; solving systems of linear and nonlinear equations, approximation and statistical function estimation, optimization, interpolation, Monte Carlo techniques. Applications throughout the sciences and statistics. Course is cross-listed with Mathematics 365. (4 credits).

COMP 380-01

Bodies/Minds: AI Robotics

  • Days: TR
  • Meeting Time: 03:00 pm-04:30 pm
  • Room:
  • Instructor: Susan Fox

Notes: *Declared Computer Science major required or permission from Professor Susan Fox for all others; first day attendance required; ACTC students may register on Friday, December 1st*

This course examines two distinct aspects of work in robotics: the physical construction of the robot's "body" and the creation of robot control programs that form the robot's "mind." It will study the strengths and weaknesses of a variety of robot sensors, including sonar, infrared, touch, GPS, and computer vision. It will also examine a variety of techniques for robot control programs, including both reactive and deliberative approaches. The course will include hands-on work with multiple robots, and a semester-long course project in robotics. The course format will be a seminar, with students reading and discussing the research literature. Offered even-numbered spring semesters. (4 credits)

COMP 394-01

Programming Languages

  • Days: MWF
  • Meeting Time: 03:30 pm-04:30 pm
  • Room:
  • Instructor: Paul Cantrell

Notes: *First day attendance required; ACTC students may register on December 1st with permission of instructor*


COMP 440-01

Collective Intelligence

  • Days: TR
  • Meeting Time: 01:20 pm-02:50 pm
  • Room:
  • Instructor: Shilad Sen

Notes: *First day attendance required; ACTC students may register on December 1st with permission of instructor*

This course will explore how computers can analyze people's collective behavior to help them. Students will read and discuss recent academic research papers about collective behavior on sites such as Wikipedia, Facebook, and Twitter. Students will use coputational simulation and data-mining techniques to analyze online datasets. Offered odd-numbered fall semesters. (4 credits)

COMP 479-01

Network Science

  • Days: TR
  • Meeting Time: 09:40 am-11:10 am
  • Room:
  • Instructor: Andrew Beveridge

Notes: *Cross-listed with MATH 479-01; ACTC students may register on December 1st with permission of instructor*

The modern Information Age has produced a wealth of data about the complex networks that tie us together. In response, the field of Network Science has arisen, bringing together mathematics, computer science, sociology, biology, economics and other fields. This course will explore the fundamental questions and the mathematical tools of Network Science. This includes: the structure of complex networks, including connectedness, centrality and “long tails”; community detection; random/strategic models for network formation; diffusion/contagion and “tipping points” on networks; and algorithms for analyzing complex networks. Cross-listed with Mathematics 479. (4 credits)