Computer Science

View courses in

  • CAS CS 101: Introduction to Computing
    The computer is presented as a tool that can assist in solving a broad spectrum of problems. This course provides a general introduction designed to dispel the mystery surrounding computers and introduces the fundamental ideas of programs and algorithms. Carries MCS divisional credit in CAS. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Digital/Multimedia Expression.
    • Quantitative Reasoning II
    • Digital/Multimedia Expression
  • CAS CS 103: Introduction to Internet Technologies and Web Programming
    Introduction to the basic architecture and protocols underlying the operation of the Internet with an emphasis on Web design, Web application programming, and algorithmic thinking. General familiarity with the Internet is assumed. Carries MCS divisional credit in CAS. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Digital/Multimedia Expression.
    • Quantitative Reasoning II
    • Digital/Multimedia Expression
  • CAS CS 105: Introduction to Databases and Data Mining
    General introduction to computational methods for processing collection of data. Topics include databases and data modeling; writing simple programs to process data; data mining and data visualization. Applications are drawn from business, the arts, the life sciences, and social sciences. Carries MCS divisional credit in CAS. Effective Fall 2018, this course fulfills a single unit in the following BU Hub area: Quantitative Reasoning II.
    • Quantitative Reasoning II
  • CAS CS 108: Introduction to Applications Programming
    Introduction to programming suitable for students not majoring in computer science. Topics include: application decomposition and abstraction; data manipulation and programming with databases; graphical user interfaces; debugging. Assignments include applications in science, commerce, games, the Web, and social networking. Carries MCS divisional credit in CAS. Effective Fall 2018, this course fulfills a single unit in the following BU Hub area: Quantitative Reasoning I.
    • Quantitative Reasoning I
  • CAS CS 111: Introduction to Computer Science 1
    The first course for computer science majors and anyone seeking a rigorous introduction. Develops computational problem-solving skills by programming in the Python language, and exposes students to variety of other topics from computer science and its applications. Carries MCS divisional credit in CAS. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Creativity/Innovation, Critical Thinking.
    • Quantitative Reasoning II
    • Critical Thinking
    • Creativity/Innovation
  • CAS CS 112: Introduction to Computer Science 2
    Undergraduate Prerequisites: CAS CS 111; or equivalent.
    Covers advanced programming techniques and data structures. Topics include recursion, algorithm analysis, linked lists, stacks, queues, trees, graphs, tables, searching, and sorting. Carries MCS divisional credit in CAS. Effective Fall 2018, this course fulfills a single unit in the following BU Hub areas: Quantitative Reasoning II, Creativity/Innovation, Critical Thinking.
    • Quantitative Reasoning II
    • Critical Thinking
    • Creativity/Innovation
  • CAS CS 131: Combinatoric Stuctures
    Representation, analysis, techniques, and principles for manipulation of basic combinatoric structures used in computer science. Rigorous reasoning is emphasized. Effective Fall 2018, this course fulfills a single unit in the following BU Hub area: Quantitative Reasoning II. Effective Fall 2019, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Critical Thinking.
    • Quantitative Reasoning II
    • Critical Thinking
  • CAS CS 132: Geometric Algorithms
    Undergraduate Prerequisites: CASCS111 and CASMA123 recommended.
    Basic concepts, data structures, and algorithms for geometric objects. Examples of topics: Cartesian geometry, transformations and their representation, queries and sampling, triangulations. Emphasis on rigorous reasoning and analysis, advancing algorithmic maturity and expertise in its application. Effective Fall 2019, this course fulfills a single unit in the following BU Hub areas: Quantitative Reasoning II, Digital/Multimedia Expression.
    • Quantitative Reasoning II
    • Digital/Multimedia Expression
  • CAS CS 210: Computer Systems
    Undergraduate Prerequisites: CAS CS 112.
    Fundamental concepts of computer systems and systems programming. Hardware fundamentals including digital logic, memory systems, processor design, buses, I/O subsystems, data representations, computer arithmetic, and instruction- set architecture. Software concepts including assembly language programming, operating systems, assemblers, linkers, and systems programming in C. Effective Fall 2018, this course fulfills a single unit in the following BU Hub area: Quantitative Reasoning II.
    • Quantitative Reasoning II
  • CAS CS 235: Algebraic Algorithms
    Undergraduate Corequisites: CASCS132 recommended.
    Basic concepts and algorithms for manipulation of algebraic objects, such as residues, matrices, polynomials; and applications to various CS areas, such as cryptography and fault-tolerance. Emphasis on rigorous reasoning and analysis. Effective Fall 2018, this course fulfills a single unit in the following BU Hub area: Quantitative Reasoning II.
    • Quantitative Reasoning II
  • CAS CS 237: Probability in Computing
    Undergraduate Prerequisites: CAS CS 131.
    Introduction to basic probabilistic concepts and methods used in computer science. Develops an understanding of the crucial role played by randomness in computing, both as a powerful tool and as a challenge to confront and analyze. Emphasis on rigorous reasoning, analysis, and algorithmic thinking. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Critical Thinking.
    • Quantitative Reasoning II
    • Critical Thinking
  • CAS CS 320: Concepts of Programming Languages
    Undergraduate Prerequisites: CAS CS 131 and CAS CS 210.
    Concepts involved in the design of programming languages. Bindings, argument transmission, and control structures. Environments: compile-time, load-time, and run-time. Interpreters. Effective Fall 2019, this course fulfills a single unit in the following BU Hub area: Creativity/Innovation.
    • Creativity/Innovation
  • CAS CS 330: Introduction to Analysis of Algorithms
    Undergraduate Prerequisites: CASCS112, CASCS131, and CASCS132; or CASCS235 or CASCS237
    Examines the basic principles of algorithm design and analysis; graph algorithms; greedy algorithms; dynamic programming; network flows; polynomial- time reductions; NP-hard and NP-complete problems; approximation algorithms; randomized algorithms. Effective Fall 2018, this course fulfills a single unit in each of the following BU Hub areas: Quantitative Reasoning II, Critical Thinking.
    • Quantitative Reasoning II
    • Critical Thinking
  • CAS CS 332: Elements of the Theory of Computation
    Undergraduate Prerequisites: CAS CS 330.
    The basic concepts of the theory of computation are studied. Topics include models of computation, polynomial time, Church's thesis; universal algorithms, undecidability and intractability; time and space complexity, nondeterminism, probabilistic computation and reductions of computational problems.
  • CAS CS 350: Fundamentals of Computing Systems
    Undergraduate Prerequisites: CAS CS 210 and CAS CS 237.
    Rigorous treatment of invariant concepts, algorithms, and performance evaluation methods underlying computing systems design. Topics include modeling and analysis of concurrent processing, computational resource scheduling and consumption, and performance evaluation techniques.
  • CAS CS 391: Topics in Computer Science
    Topics vary.
  • CAS CS 400: Topics in Computer Science
    Topics vary.
  • CAS CS 401: Senior Independent Work
    Undergraduate Prerequisites: approval of the Honors Committee.
  • CAS CS 402: Senior Independent Work
    Undergraduate Prerequisites: approval of the Honors Committee.
  • CAS CS 410: Advanced Software Systems
    Undergraduate Prerequisites: CAS CS 210.
    Systems programming including such topics as project management, tools, I/O networking, multiprocessing, exception handling, and system services. Other topics are explored using C and Perl under the UNIX operating system. Requires a working knowledge of the C programming language and experience with UNIX as a user, or equivalent.