Boston UniversityWebsiteAcademic Catalog
Department of Computer ScienceDepartment Website
BA Degree in Linguistics and Computer Sciencesource 1
CS Courses
- Introduction to Computer Science 1CS 111 (4)introCS 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.
- Introduction to Computer Science 2CS 112 (4)introCS 112: Introduction to Computer Science 2
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.
- Geometric AlgorithmsCS 132 (4)algsCS 132: Geometric Algorithms
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.
- Computer SystemsCS 210 (4)sysCS 210: Computer Systems
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.
- Probability in ComputingCS 237 (4)mathCS 237: Probability in Computing
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.
- Introduction to Analysis of AlgorithmsCS 330 (4)algsCS 330: Introduction to Analysis of Algorithms
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.
- Introduction to Natural Language ProcessingorCS 505 (4)aiCS 505: Introduction to Natural Language Processing
Natural language processing (NLP) is a field of AI which aims to equip computers with the ability to intelligently process natural (human) language. This course explores statistical and machine learning techniques for the automatic analysis of natural language data.
- Principles of Machine LearningorLX 400-levelCS 542 (4)aiCS 542: Principles of Machine Learning
Introduction to modern machine learning concepts, techniques, and algorithms. Topics include regression, kernels, support vector machines, feature selection, boosting, clustering, hidden Markov models, and Bayesian networks. Programming assignments emphasize taking theory into practice, through applications on real-world data sets.
Other Courses
Linguistics and Computing
- An understanding of the fundamental questions that drive modern linguistic research, along with foundational knowledge in the core areas of linguistic theory.
- The ability to identify and describe with precision the empirical patterns found in sets of language data and to construct well-reasoned linguistic analyses by formulating, testing, and refining hypotheses about these patterns.
- The ability to understand and evaluate the organization, design, and construction of hardware and software systems for computing.
- The ability to analyze problems that require computation to answer and to design and implement appropriate problem solutions that are efficient and effective.
- The ability to use computational tools, particularly those involving statistical and machine-learning techniques, for language-related applications.