| COMP 5-02 |
Teaching Computer ScienceThis course will prepare undergraduates to function effectively and efficiently as undergraduate teaching assistants. Through this course, students will learn pedagogical techniques that match learner needs; discuss ethical and social concerns that UTAs face in the course of a semester; and problem solve together issues that arise as teaching assistants. This course is designed in a learner centered model requiring your active and engaged participation. Through your willingness to share your experiences and expertise and your collaboration with your fellow UTA we will together construct meaningful solutions to difficulty situations. Faculty from Computer Science will participate in some of the sessions as co-facilitators. Students will be expected to complete short readings; keep a reflective blog of your learning as a teacher; give a short final presentation on a topic of interest that you want to explore in more depth to help you in your TA class. |
R 4:30-7:30p Halligan Hall 111A |
| COMP 7-01 |
BioinformaticsA hands-on introductory course in bioinformatics for students with little or no computer science background. Basic programming skills for data manipulation and analysis.Methods and applications of online tools for sequence alignment, molecular phylogeny, gene expression data analysis, and linking molecular variation to disease. Prerequisite: Biology 41 or BME 62 or equivalent |
TR 1:30-2:45 Halligan Hall 111B |
| COMP 10-01 |
Computer Science for AllComputers are indispensable tools for research. This does not only hold for more technical fields such as physics or chemistry but also for the Humanities and the Social Sciences. While most students are competent users of standard software such as word processing or spreadsheets, the real power of the computer is unleashed when we are able to program it ourselves and make it do exactly what we want it to do.
|
TR 10:30-11:45 Crane Room, Paige Hall |
| COMP 11-01 |
Introduction to Computer ScienceThe study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary. |
TR 3:00-4:15 Pearson 104 |
| COMP 11-02 |
Introduction to Computer ScienceThe study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language -- namely C++-- and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. (Additional 2 hr weekly lab time scheduled at first class meeting.) Recommendations: High school algebra. No prior programming experience is necessary. |
TR 4:30-5:45p Robinson Hall 253 |
| COMP 15-01 |
Data StructuresA second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion. Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit. |
MW 1:30-2:45 Cohen Auditorium |
| COMP 15-02 |
Data StructuresA second course in computer science. Data structures and algorithms are studied through major programming projects in the C++ programming language. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion. Prerequisite: COMP 11 or consent. This course and COMP 50-01 (COMP 50-PSS) may not both be taken for credit. |
MW 3:00-4:15 Braker Hall 001 |
| COMP 20-01 |
Web ProgrammingAn introduction to techniques, principles, and practices of writing computer programs for the World Wide Web. Server and browser capabilities and limits. Media types, handlers, and limitations. Web programming languages and techniques. Web security, privacy, and commerce. Lectures augmented with programming projects illustrating concepts and current practice. Prerequisite: COMP 11; or COMP 10 and consent. |
TR 12:00-1:15 Tisch Library 304 |
| COMP 23-01 |
Game DevelopmentPrinciples, design, and development of games. Game structure, engineering, physics, testing, 2D and 3D rendering, user interfaces, sound, and animation. Security of online games. Applications of Economics, Music, and Psychology in crafting games. Projects include writing game design documents, developing an interactive fiction game, and building a functional game in a team. Prerequisite: Recommended: Comp 15. |
T 6:00p-9:00p Halligan Hall 102 |
| COMP 40-01 |
Machine Structure & Assembly-Language ProgrammingStructure and function of the main components of computer systems: processors, main memory, and disk storage devices. Processor design, including instruction set design and interpretation. Assembly language programming. Implementation issues for high-level languages. Mandatory lab will be held Fridays: sign up in SIS. Prerequisite: COMP 15. |
TRF 12:00-1:15 Barnum/Dana Hall 008 |
| COMP 50-02 |
Concurrent ProgrammingWhen we learn to program, we specify problem solutions as a single sequence of computations in a fixed, determined order. But the world isn’t like that. Deer run into the woods, people talk on their phones, it rains. Nothing forces these things to happen one at a time, in a fixed order. They happen concurrently. We want to write concurrent programs, because we want to model the real world, because our computer systems actually have concurrent activities, and also to improve the performance or usability of our programs. The ubiquity of distributed applications and modern, multicore processors makes concurrent programming an essential skill. This course explores different models of concurrent programming: students will gain competence in conventional shared-memory threads programming, and at least one natively concurrent programming model (actors or CSP). Time permitting, we may look at other models. We’ll look at classic problems (like deadlock) and synchronization mechanisms (semaphores, locks, barriers). Students will complete a substantial team programming project using these tools and techniques, and they will present their work to the class. Prerequisite: Comp 15 |
MW 6:00p-7:15p Halligan Hall 102 |
| COMP 55-01 |
CS for Future Presidents |
TR 10:30-11:45 Halligan Hall 108 |
| COMP 55-03 |
Ethics and Artificial Intelligence |
T 12:00-12:50 Miner Hall 225 |
| COMP 61-01 |
Discrete Mathematics(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Prerequisite: Math 32 or Computer Science 11 or permission of instructor. |
TR 1:30-2:45 Bromfield-Pearson 002 |
| COMP 61-02 |
Discrete Mathematics(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Prerequisite: Math 32 or Computer Science 11 or permission of instructor. |
MWF 10:30-11:20 Eaton Hall 206 |
| COMP 61-03 |
Discrete Mathematics(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Prerequisite: Math 32 or Computer Science 11 or permission of instructor. |
MWF 1:30-2:20 Terrace Room, Paige Hall |
| COMP 86-01 |
Object-Oriented Programming for Graphical User Interfaces (formerly Comp 106)Object-oriented programming (OOP) and design, using the Java language. General OOP concepts (classes and instances, methods, inheritance) plus specifics of programming in Java, with emphasis on application to graphical user interfaces (GUIs). Design and programming projects using Java and toolkits. Prerequisite: Comp 15 or permission of the instructor. |
MW 1:30-2:45 Halligan Hall 111A |
| COMP 97-01 |
Senior Capstone Project IRequirements analysis and design of a senior capstone project. Requirements analysis and elicitation methods, and prototyping. Design principles and methods, including designing for usability, security, testability, performance, and scaling. Project management and planning, including cost and effort estimation. Writing effective documentation. Prerequisite: COMP40 and Senior Standing. |
TR 3:00-4:15 Anderson Hall 206 |
| COMP 105-01 |
Programming LanguagesPrinciples and application of computer programming languages. Emphasizes ideas and techniques most relevant to practitioners, but includes foundations crucial for intellectual rigor: abstract syntax, lambda calculus, type systems, dynamic semantics. Case studies, reinforced by programming exercises. Grounding sufficient to read professional literature. Prerequisite: COMP 15 (Data Structures) and one semester of Discrete Mathematics (COMP/MATH 22 or 61). |
MW 3:00-4:15 Robinson Hall 253 |
| COMP 111-01 |
Operating Systems(Crosslisted as EE 128). Fundamental issues in operating system design. Concurrent processes: synchronization, sharing, deadlock, scheduling. Relevant hardware properties of uniprocessor and multiprocessor computer systems. Prerequisite: Recommendations: COMP 15 and either COMP 40 OR EE 14. |
MW 4:30-5:45p Anderson Hall 206 |
| COMP 115-01 |
Database SystemsFundamental concepts of database management systems. Topics include: data models (relational, object-oriented, and others); the SQL query language; implementation techniques of database management systems (storage and index structures, concurrency control, recovery, and query processing); management of unstructured and semistructured data; and scientific data collections. Prerequisite: COMP 15. |
MW 4:30-5:45p Science and Technology 136 |
| COMP 116-01 |
Introduction to Computer SecurityA systems perspective on host-based and network-based computer security. Current vulnerabilities and measures for protecting hosts and networks. Firewalls and intrusion detection systems. Principles illustrated through hands-on programming projects. Prerequisite: Comp 40. |
TR 4:30-5:45p Anderson Hall 112 |
| COMP 117-01 |
Internet-Scale Distributed Systems: Lessons from the World Wide WebPlease note that this course was formerly numbered COMP 150-IDS. The World Wide Web, one of the most important developments of our time, is a unique and in many ways innovative distributed system. This course will explore the design decisions that enabled the Web's success, and from those will derive important and sometimes surprising principles for the design of other modern distributed systems. We will introduce and draw comparisons with more traditional distributed system designs, including distributed objects, client/server, pub/sub, reliable queuing, etc. We will also study a few (easily understood) research papers and some of the core specifications of the Web. Specific topics to be covered include: global uniform naming; location-independence; layering and leaky abstractions; end-to-end arguments and decentralized innovation; Metcalfe's law and network effects; extensibility and evolution of distributed systems; declarative vs. procedural languages; Postel's law; caching; and HTML/XML/JSON document-based computing vs. RPC. The purpose of this course is not to teach Web site development, but rather to explore lessons in system design that can be applied to any complex software system. More detailed course information can be found at http://www.cs.tufts.edu/comp/150IDS/shouldItakeit Prerequisite: Comp 40 or permission of the instructor. |
TR 4:30-5:45p Halligan Hall 108 |
| COMP 119-01 |
Big Data "Big Data" deals with techniques for collecting, processing, analyzing and acting on data at internet scale: unprecedented speed, scale, and complexity.
|
TR 6:00p-7:15p Halligan Hall 111B |
| COMP 131-01 |
Artificial IntelligenceHistory, theory, and computational methods of artificial intelligence. Basic concepts include representation of knowledge and computational methods for reasoning. One or two application areas will be studied, to be selected from expert systems, robotics, computer vision, natural language understanding, and planning. Prerequisite: Comp 15 and either COMP/MATH 22 or 61 or familiarity with both symbolic logic and basic probability theory. |
MW 6:00p-7:15p Anderson Hall 206 |
| COMP 135-01 |
Introduction to Machine LearningAn overview of methods whereby computers can learn from data or experience and make decisions accordingly. Topics include supervised learning, unsupervised learning, reinforcement learning, and knowledge extraction from large databases with applications to science, engineering, and medicine. Prerequisite: Comp 15 and COMP/MATH 22 or 61 or consent of instructor. (Comp 160 is highly recommended). |
MW 4:30-5:45p Robinson Hall 253 |
| COMP 146-01 |
Computer Engineering with Lab(Cross-listed w/ EE 126.) This course teaches advanced concepts of modern computer architecture, starting from the basic 5-stage pipelines and progressing to out-of-order superscalar processors. This course introduces the techniques used to maximize single-thread performance within the constraints of memory technology, power consumption, and the inherent instruction-level parallelism of applications. Students will also gain hands on hardware experience by implementing a 5-stage MIPS processor in VHDL. Recommendations: EE 14 or COMP 40; and ES4. Prerequisite: ES4 and either EE14 or COMP 40 with a ‘C’ or better This course assumes that undergraduate students have taken an undergraduate-level introduction to assembly programming (EE14 or COMP40) and are also proficient in digital logic design (ES4 recommended). In addition, this course (EE 126/COMP 46) will be required to take Advanced Computer Architecture (EE 156 and COMP 140) which is typically offered in the spring semester. |
MW 3:00-4:15 Halligan Hall 108 |
| COMP 149-01 |
Information TheoryInformation theory as a systematic framework to address fundamental laws and limits of data compression and digital communication. Source coding/data compression; information measures on discrete memory-less sources; practical schemes and algorithms for lossless data compression such as Huffman coding, arithmetic coding, Lempel-Ziv Coding; channel coding for reliable communication and rate distortion for lossy source compression. Advanced topics such as information theoretic cryptography. Prerequisite: Recommendations: Undergraduate Probability OR EE 104 OR Permission of instructor. |
TR 12:00-1:15 Halligan Hall 108 |
| COMP 150-02 |
Machine Learning for Graph Data AnalyticsGraph and network data are ubiquitous and often in large scale. Graph data are generally characterized by the graph structure and data attached to graph nodes or edges. Machine learning is an important approach to automated information extraction from graph data. As most learning models (e.g. neural networks) only accept vectors as the input, graph data need special model designs. Existing models generally fall into two categories: 1) models that learn vector representations of graph data, and 2) models that take graphs as the input. In this course, we will start with a shallow introduction of graph theory and then discuss a series of learning methods for graphs. The topics include graph embedding, generative models, graph neural networks, kernel methods, and a few applications. The course work consists of 2 to 3 projects and a final project. Approved as a category 2 elective in Data Science (analysis and interfaces). |
TR 10:30-11:45 Collaborative Learning and Innovation Complex 316 |
| COMP 150-03 |
Bayesian Deep LearningThe emerging research area of Bayesian Deep Learning seeks to combine the benefits of modern deep learning (scalable gradient-based training of flexible neural networks for regression and classification) with the benefits of modern Bayesian statistical methods to estimate probabilities and make decisions under uncertainty. The goal of this course is to bring students to the forefront of knowledge in this area through coding exercises, student-led discussion of recent literature, and an in-depth project. Covered topics include key modeling innovations (e.g. function approximation and deep generative models), learning paradigms (e.g. variational inference), and implementation using modern automatic differentiation frameworks. By completing a 2-month self-designed research project, students will gain experience with designing, implementing, and evaluating new contributions in this exciting research space. Approved as a category 2 elective in Data Science (analysis and interfaces). Prerequisite: COMP 135 (Introduction to Machine Learning) or COMP 136 (Statistical Pattern Recognition) or permission of the instructor |
MW 1:30-2:45 Halligan Hall 108 |
| COMP 150-04 |
Visual AnalyticsApproved as a category 2 elective in Data Science (analysis and interfaces). |
TR 1:30-2:45 Halligan Hall 111A |
| COMP 150-05 |
Computing for Developing RegionsThe course will cover a series of case studies on the use of computing to solve important problems in the developing regions, such as healthcare, education, and governance. The course will involve a semester long hands-on project which will focus on one of the above challenges. Prerequisite: Completion of COMP 15 or graduate standing |
TR 4:30-5:45p Collaborative Learning and Innovation Complex 404 |
| COMP 150-06 |
Reinforcement Learning"Reinforcement learning problems involve learning what to do — how to map situations to actions — so as to maximize a numerical reward signal." - Sutton and Barto ("Reinforcement Learning: An Introduction", course textbook)
Approved as a category 2 elective in Data Science (analysis and interfaces). Prerequisite: Students are expected to be proficient programmers in at least one of the following languages: C++, Java, or Python. Prior coursework (or experience) in Artificial Intelligence and/or Machine Learning is highly recommended, but not required. |
TR 1:30-2:45 Barnum/Dana Hall 208 |
| COMP 150-07 |
Network ScienceMathematical foundations of the study of graphs and networks that arise as social, biological and Internet networks. Random graph models, community structure and inference problems, network dynamics, cascading. Example networks drawn from the application domains will be case studies as a companion to the general mathematical theory. Approved as a category 2 elective in Data Science (analysis and interfaces). Prerequisite: Prerequisites: Comp 15 and either Math 61 or any mathematics class numbered 100 or higher, or graduate standing. |
MW 10:30-11:45 Halligan Hall 111A |
| COMP 150-08 |
Working with CorporaCross-listed as CLS 191
Approved as a category 2 elective in Data Science (analysis and interfaces). Prerequisite: COMP 10, COMP 11, or instruction permission. |
M 6:00p-9:00p Halligan Hall 108 |
| COMP 150-10 |
Human-Robot InteractionThis course will provide an overview of the up and coming field of human-robot interaction (HRI) which is located squarely in the intersection of psychology, human factors engineering, computer science, and robotics. HRI has become a major research focus recently with the NSF's National Robotics Initiative and the push countries around the globe to develop robots for various societal tasks, from new flexible and adaptive robots for industrial manufacturing, to socially assistive robots for eldercare. In this course, we will examine this field from an interdisciplinary perspective, reading key papers in HRI that intersect computer science, robotics, cognitive and social psychology (since there is no suitable textbook yet, all reading materials will be made available). Students will give short presentations on HRI studies and designs and work in interdisciplinary groups on a term project which will require them to design and conduct an HRI study. |
MW 10:30-11:45 Halligan Hall 111B |
| COMP 150-11 |
Graph TheoryIntroduction to graph theory, including trees, matchings, colorings, planar graphs. This class does not require programming, but there are applications in computational geometry, computational biology, and algorithms. Students may select either an implementation or a theoretical final project. Prerequisite: COMP 160 OR COMP 170 OR any math course numbered 100 or above. |
R 6:00p-9:00p Bromfield-Pearson 002 |
| COMP 150-12 |
Programming Language DesignCreating a new programming language requires designers to draw on a wide range of skills: theory to ensure their creation has a well-defined semantics, engineering to ensure they produce an efficient implementation, and aesthetics to ensure the whole is coherent and pleasing to programmers. In this class, we will study the principles and tools that underlie programming language design. We will consider both general-purpose languages, which are languages intended for almost any programming task, and domain-specific languages, which are languages focused on specific tasks. The class will be a combination of lectures and seminar-style discussions about selected academic papers. Students will use the knowledge they acquire to design and implement their own domain-specific programming language. Prerequisite: Comp 40 and Comp 105. |
MW 9:00-10:15 Halligan Hall 108 |
| COMP 150-13 |
Debugging Cloud ComputingCloud computing, which is the practice of renting software and hardware services from providers who run large-scale data centers, has become critical to modern society. We rely on software running within cloud data centers when shopping (e.g., at Amazon), when conducting financial transactions (e.g., at an online broker), when collaborating at work (e.g., using Google Docs), and even when playing games (e.g., Fortnite). Failures or performance problems within these data centers or the software running on them can have widespread effects and be devastating. In this course, we will examine failures in cloud environments and discuss important research on tools that use systems knowledge, machine learning, and statistics to help engineers diagnose them. To provide students with necessary background, we will start with a brief introduction to cloud computing and the software systems that make cloud computing possible. The course will involve reading research papers, homework assignments, and coding-based projects. It is recommended for graduate students and advanced upper-level undergraduates. Prerequisite: Comp 15 and Comp 40 or graduate standing required; Comp 111 recommended. |
MW 1:30-2:45 Fine Arts House |
| COMP 150-14 |
Social Assistive RoboticsThis course will provide an introduction to the state-of-the-art in socially intelligent assistive robotics. This exciting new area of research combines assistive robotics, in which robots provide help or assistance to human users, especially users with disabilities, with social robotics, in which robots interact with people in socially appropriate ways. A major area of focus for the course will be socially assistive robotics, in which robots provide assistance with health, wellness, and education-related goals through hands-off social interaction alone, but the course will also touch on recent work on incorporating socially intelligent behavior into more traditional assistive robotic technologies such as wheelchair-mounted arms and mobile manipulators. Students completing this course will become familiar with the technical, experimental, and ethical challenges of research in this area through readings from robotics, computer science, and disability studies. Students will be expected to read and discuss papers, give short presentations, and complete an individual or small group project in which they develop a research or design project from conception to final evaluation. Cross listed as ME-0149-SIR |
MW 3:00-4:15 Collaborative Learning and Innovation Complex 401 |
| COMP 156-01 |
Software EngineeringSoftware engineering is an engineered discipline in which the aim is the production of software products, delivered on time and within a set budget, that satisfies the client’s needs. It covers all aspects of software production ranging from the early stage of product concept to design and implementation to post-delivery maintenance. This course covers the major concepts and techniques of software engineering including understanding system requirements, finding appropriate engineering compromises, effective methods of design, coding, and testing, team software development, and the application of engineering tools so that students can prepare for their future careers as software engineers. The course will combine a strong technical focus with a project providing the opportunity to obtain hands-on experiences on entire phases and workflow of the software process. Prerequisite: COMP 40, graduate standing, or instructor consent. |
TR 6:00p-7:15p Room To Be Announced |
| COMP 160-01 |
AlgorithmsIntroduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems. Prerequisite: COMP 15 and COMP/MATH 22 or 61. |
TR 4:30-5:45a Barnum/Dana Hall 104 |
| COMP 160-02 |
AlgorithmsIntroduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems. Prerequisite: COMP 15 and COMP/MATH 22 or 61. |
TR 6:00p-7:15p Barnum/Dana Hall 104 |
| COMP 170-01 |
Computation TheoryModels of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages including context-free languages and regular sets. Important problems including the halting problem and language equivalence theorems. Prerequisite: COMP 15 and COMP/MATH 22 or 61. |
TR 1:30-2:45 Pearson 104 |
| COMP 205-01 |
Principles of Data Science in PythonFundamentals of python programming for data analysis. Common python data structures and algorithms. Design of python programs. Coding standards and practices. Use and creation of software libraries. Examples drawn from data preparation and transformation, statistical data analysis, machine learning, deep learning, and deep data science including recommendation systems and trend analysis. Labs utilizing iPython and the Jupyter data analysis workflow framework. |
MWF 10:30-11:45 Room To Be Announced |
| COMP 250-01 |
Seminar in Computer ScienceThis course is used to fulfill the doctoral student community/residence requirement. This requirement may be satisfied over any four semesters and concurrently with the other requirements. Comp 250 may be taken up to four times for credit. (1 SHU) Prerequisite: Prerequisite: Open to PhD and MS-PhD students only. |
R 3:00-4:15 Room To Be Announced |
| COMP 250-02 |
Linear Algebra for Data ScienceTBD |
MW 6:00p-7:15p Bromfield-Pearson 005 |
| EN 1-01 |
Intro to Computational DesignCan we be inspired by caterpillars to design useful robots? Can we use computers to deduce the neuro-mechanical commands that make a caterpillar move forward? What do caterpillars and soft-tissue robots have in common? This class brings such interdisciplinary research experiences to first-year Engineering students through the lens of computational design. We learn in this course about computational modeling, the meaning of computational design and how it can help engineers in making best design decisions. The course will use MATLAB as a computational platform, and cover fundamentals such as a solution space, design decision variables, constraints, optimal points within the space and searching the design space using efficient algorithms, exhaustive enumeration, and approximate algorithms. |
MW 1:30-2:45 Room To Be Announced |
| EN 1-04 |
Simple RoboticsIntroduction to robot construction, programming, computer vision, event-based programming, artificial intelligence, and elementary controls. Basic principles of robotics for students with minimal or no prior programming/building background. In-class competition-based laboratories and hands-on group projects using the LEGO MINDSTORMS platform. |
MW 3:00-4:15 Anderson Hall 312 |
summer 2019