Spring 2017   Fall 2016  

Spring 2017

COMP 110-01

Data/Computing Fundamentals

  • Days: W
  • Meeting Time: 07:00 pm-10:00 pm
  • Room:
  • 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:
  • 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:
  • 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:
  • 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: 02:20 pm-03:20 pm
  • Room:
  • 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:
  • Instructor: Daniel Kluver

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 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:
  • Instructor: Daniel Kluver

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 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:
  • Instructor: Elizabeth Shoop

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 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:
  • Instructor: Elizabeth Shoop

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 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:
  • Instructor: Daniel Kluver

Notes: *Permission of instructor required; first day attendance required; students registered for Lab 1 of COMP 124 MUST register for Section 01 of the course; 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:
  • Instructor: Daniel Kluver

Notes: *Permission of instructor required; first day attendance required; students registered for Lab 2 of COMP 124 MUST register for Section 02 of the course; 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:
  • Instructor: Elizabeth Shoop

Notes: *Permission of instructor required; first day attendance required; students registered for Lab 31 of COMP 124 MUST register for Section 03 of the course; 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:
  • Instructor: Elizabeth Shoop

Notes: *Permission of instructor required; first day attendance required; students registered for Lab 4 of COMP 124 MUST register for Section 04 of the course; 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 221-01

Algorithm Design and Analysis

  • Days: MWF
  • Meeting Time: 10:50 am-11:50 am
  • Room:
  • 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*

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:
  • Instructor: Paul Cantrell

Notes: *Permission of instructor required; first day attendance required; ACTC students may register on Friday, December 2nd with the 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:
  • Instructor: Paul Cantrell

Notes: *Permission of instructor required; 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:
  • Instructor: Bret Jackson

Notes: *Permission of instructor required; 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 302-01

Introduction to Database Management Systems

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

Notes: *Permission of instructor required; 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
  • Instructor: STAFF

Notes: 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:
  • 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:
  • 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 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 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: TBA
  • Meeting Time: TBA
  • Room:
  • Instructor: Elizabeth Jensen

Notes: *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:
  • Instructor: Bret Jackson

Notes: *Permission of instructor required; first day attendance required; 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 2016

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: *First day attendance required; ACTC students may register on April 29th 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: 10:50 am-11:50 am
  • Room: OLRI 258
  • Instructor: Lian Duan

Notes: *First day attendance required; ACTC students may register on April 29th 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: Daniel Kluver

Notes: *First day attendance required; ACTC students may register on April 29th 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: Daniel Kluver

Notes: *First day attendance required; ACTC students may register on April 29th 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: 09:40 am-10:40 am
  • Room: OLRI 256
  • Instructor: Bret Jackson

Notes: *First day attendance required; students registered for Section 01 of COMP 124 MUST register for Lab 1; ACTC students may register on April 29th 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: 10:50 am-11:50 am
  • Room: OLRI 256
  • Instructor: Bret Jackson

Notes: *First day attendance required; students registered for Section 02 of COMP 124 MUST register for Lab 2; ACTC students may register on April 29th 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: 09:40 am-11:10 am
  • Room: OLRI 256
  • Instructor: Bret Jackson

Notes: *First day attendance required; students registered for Lab 1 of COMP 124 MUST register for Section 01 of the course; ACTC students may register on April 29th 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: 01:20 pm-02:50 pm
  • Room: OLRI 256
  • Instructor: Bret Jackson

Notes: *First day attendance required; students registered for Lab 2 of COMP 124 MUST register for Section 02 of the course; ACTC students may register on April 29th 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 194-01

Discovering Computer Science by Tasting Raspberry Pi

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

Notes: *First Year Course only* Computing devices are ubiquitous today: small computers run most functions of modern cars, are built into garage door openers so that we can remotely open and close them, read our ID cards and allow us to access rooms or to pay for meals, control robots on factory floors -- the examples go on and on. This ubiquity of computing devices, many of which are embedded inside common appliances, has given rise to the phrase the “Internet of Things”, or IoT. This computer science course, which will count for the major and take the place of COMP 123, will emphasize exploration and discovery of the breadth of computer science through the use of a microcomputer called the Raspberry Pi (RPi for short). The processor in a Raspberry Pi is found in many types of devices, such that learning how to program using it will give students an appreciation for how to design applications for devices on embedded computers. At the same time, the RPi is a fully functioning computer, and programming with it is the same as programming for any laptop. Students will have full-time, 24/7 use of the computer and its peripherals, which can be stowed in a small toolbox, for the entire semester. We will begin by learning to use the linux operating system, continue with basic introductory programming, gradually learn to operate external devices such as LED lights and sensors, and culminate with a project that uses the RPi to control your choice of several external devices.

COMP 221-01

Algorithm Design and Analysis

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

Notes: *Any student who has Sophomore, Junior, or Senior status AND who is a declared COMP major AND who has the prerequisites, should be able to register without a signature of the instructor. Signature of Instructor required for all other students; First day attendance required; LINK: http://www.macalester.edu/academics/mscs/mscs-course-waitlists/; ACTC students may register on April 29th 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 240-01

Computer Systems Organization

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

Notes: *Any student who has Sophomore, Junior, or Senior status AND who is a declared COMP major AND who has the prerequisites, should be able to register without a signature of the instructor. Signature of Instructor required for all other students; first day attendance required; LINK: http://www.macalester.edu/academics/mscs/mscs-course-waitlists/; ACTC students may register on April 29th 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: OLRI 245
  • Instructor: Elizabeth Shoop

Notes: *Any student who has Sophomore, Junior, or Senior status AND who is a declared COMP major AND who has the prerequisites, should be able to register without a signature of the instructor. Signature of Instructor required for all other students; first day attendance required; LINK: http://www.macalester.edu/academics/mscs/mscs-course-waitlists/; ACTC students may register on April 29th 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: 02:20 pm-03:20 pm
  • Room: OLRI 256
  • Instructor: Elizabeth Jensen

Notes: *Any student who has Sophomore, Junior, or Senior status AND who is a declared COMP major AND who has the prerequisites, should be able to register without a signature of the instructor. Signature of Instructor required for all other students; first day attendance required; LINK: http://www.macalester.edu/academics/mscs/mscs-course-waitlists/; ACTC students may register on April 29th 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: 02:20 pm-03:20 pm
  • Room: OLRI 241
  • Instructor: Susan Fox

Notes: *Any Sophomore, Junior, or Senior who is a declared Mathematics or AMS major, and has the prereqs, should be able to register without instructor signature; cross-listed with MATH 361-01; first day attendance required; LINK: http://www.macalester.edu/academics/mscs/mscs-course-waitlists/; ACTC students may register on April 29th 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 346-01

Internet Computing

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

Notes: *Declared COMP majors (with the prereqs) should be able to register, signature of instructor required for all others; first day attendance required; LINK: http://www.macalester.edu/academics/mscs/mscs-course-waitlists/; ACTC students may register on April 29th with permission of 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 484-01

Introduction to Artificial Intelligence

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

Notes: *Signature of Instructor required for all, to ensure a balance of COMP and NEUR majors; Cross-listed with NEUR 484-01; first day attendance required; LINK: http://www.macalester.edu/academics/mscs/mscs-course-waitlists/; ACTC students may register on April 29th 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.