| 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 Barnum/Dana Hall 008 |
| 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 Barnum/Dana Hall 008 |
| 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. |
TR 1:30-2:45 Braker Hall 001 |
| 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. |
TR 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 Cabot Auditorium |
| 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: 1:30-2:45 PM or 3-4:15 PM. Sign up during the first week of class. Prerequisite: COMP 15. |
MW 4:30-5:45p Pearson 104 |
| COMP 50-01 |
Cyber Security and Cyber WarfareInterdisciplinary analysis of cybersecurity in the United States and other countries, intended to introduce engineering students to policymaking and intelligence aspects of cybersecurity and liberal arts students to the technical constraints of computer networks and software. Hands-on activities including packet analysis, exploiting a vulnerable system, password cracking, social engineering, reconnaissance, and malware analysis. Examination of state and non-state actors engaged in cyber-espionage, counterintelligence, deterrence, and offensive cyber operations. Guest speakers from private sector, civil liberties groups, and intelligence community. Prerequisite: PS 61: Introduction to International Relations (for PS and IR majors) or COMP 15: Data Structures (for CS majors in A&S or SOE) |
TR 3:00-4:15 Crane Room, Paige Hall |
| COMP 50-07 |
Introduction to VLSI CAD AlgorithmsIntroduction to VLSI CAD Algorithms will be a class to learn the challenges and algorithms of CAD for VLSI – i.e., learn to use algorithms from computer science to automatically create and validate VLSI circuits. We will use techniques such as DFS and BFS search, dynamic programming, and branch & bound to solve problems in VLSI timing, logic/layout synthesis and post-silicon test. Depending on student interest, we may also apply the same algorithms to other fields. This class will not use commercial CAD tools (though we will have guest lectures from people in the local CAD industry). Prerequisites are COMP160, or graduate standing, or consent of the instructor. Prerequisite: Completion of COMP 160 recommended. |
TR 4:30-5:45p Halligan Hall 108 |
| COMP 61-01 |
Discrete Mathematics (formerly Comp 22)(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Prerequisite: Math 11 or 32 or Computer Science 11 or permission of instructor. |
M 9:30-10:20 TR 10:30-11:20 Bromfield-Pearson 006 |
| COMP 61-02 |
Discrete Mathematics (formerly Comp 22)(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Prerequisite: Math 11 or 32 or Computer Science 11 or permission of instructor. |
MW 10:30-11:45 Bromfield-Pearson 005 |
| COMP 61-03 |
Discrete Mathematics (formerly Comp 22)(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Prerequisite: Math 11 or 32 or Computer Science 11 or permission of instructor. |
TR 10:30-11:45 Halligan Hall 111A |
| COMP 61-04 |
Discrete Mathematics (formerly Comp 22)(Cross-listed as Mathematics 61.) Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Prerequisite: Math 11 or 32 or Computer Science 11 or permission of instructor. |
MW 3:00-4:15 Anderson Hall Nelson Auditorium |
| COMP 98-01 |
Senior Capstone Project IIImplementation and testing of the project designed in COMP97. Implementation tools, strategies, and platforms. Testing and debugging methodologies. Maintenance and release management. Legal, ethical, and social impacts of computing. Prerequisite: COMP97. |
TR 12:00-1:15 Halligan Hall 111A |
| 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 1:30-2:45 Barnum/Dana Hall 008 |
| 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 Anderson Hall 206 |
| 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 111B |
| COMP 120-01 |
Web EngineeringWeb applications are complex systems that deliver a plethora of functionality to a large number of users, and also exhibit unique behaviors and demands in terms of performance, scalability, usability, and security. Web engineering is an emerging and multidisciplinary process that is used to create quality web applications. This course will discuss the limits of current web technologies, the similarities and differences between web and software engineering, design, information and service architectures, content management, and testing disciplines. Frameworks such as Rails, Spring, and Symfony will be emphasized and used. Projects will involve search, cloud computing, location-based services, and mobile web development. Prerequisite: Comp 15 and Comp 20, or Consent of Instructor. |
TR 4:30-5:45p Anderson Hall Nelson Auditorium |
| COMP 128-01 |
Numerical Linear AlgebraThe two basic computation problems of linear algebra; solution of linear systems and computation of eigenvalues and eigenvectors. (Cross Listed as MATH 128 Numerical Linear Algebra) Prerequisite: Math 46 and Comp 11. |
TR 3:00-4:15 Bromfield-Pearson 101 |
| 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. |
TR 10:30-11:45 Anderson Hall 312 |
| 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 6:00p-7:15p Halligan Hall 111A |
| COMP 150-01 |
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 |
T 6:00p-9:00p Halligan Hall 111A |
| COMP 150-02 |
Deep Learning for Computer VisionThis course investigates current research topics in data-driven object detection, scene recognition, and image-based graphics. We will examine large-scale datasets, convolutional neural networks, and several algorithms useful for understanding and manipulating visual data. These topics will be pursued through independent reading, discussions, student presentations, and projects involving current research problems. Students will train deep networks from scratch and fine-tune popular pre-trained networks. Students will gain experience with commonly used deep learning packages and learn practical techniques for network training. In the final project, students will implement and test their own improvements to state of the art networks. Prerequisite: At least one of COMP 135 or COMP 136 or COMP 150-NLP. |
TR 7:30p-8:45p Halligan Hall 111B |
| COMP 150-03 |
Experimental Methods for Computer ScientistsMany computer scientists will at some time in their career have to perform experiments, e.g. for usability testing or evaluating human-machine interaction. Although the principles behind it are simple, experimentation is a skill that needs to be learned. This course introduces the basic background knowledge and skills for conducting a proper experiment. It will address the philosophical background, design, planning, execution, statistical analysis, and reporting of experiments involving noisy data sources like humans. Towards the end of the course, the students will perform a small experiment themselves. |
TR 10:30-11:45 Barnum/Dana Hall 114 |
| COMP 150-04 |
Hot Topics in NetworkingThis course will cover some hot topics in networking, including software-defined networking, network function virtualization, scheduling and resource management for cloud systems, and network support for Internet of Things (IoT). Course will involve reading and presenting research papers, and a semester long research project. Prerequisite: Completion of COMP 112. |
W 6:30p-9:00p Halligan Hall 108 |
| COMP 150-05 |
Entrepreneurship for Computer Scientists(Cross listed with ELS 194-02) 150 ECS is an introductory entrepreneurship course for Computer Science students. The course provides an overview of entrepreneurship, develops an entrepreneurial perspective, and provides a framework for learning the fundamentals of the essential elements of entrepreneurial ventures, specifically directed toward software-related industries and products. Students learn how to develop their technical ideas into potential business opportunities, and to explore their likelihood of becoming viable businesses. They learn how to do market research, to develop go-to-market strategies, value propositions and to differentiate their products or services from actual or potential competitors. The course consists of a balance of lectures, projects, case studies and interaction with entrepreneurs and computer scientists who participate in entrepreneurial organizations. |
T 6:00p-9:00p Halligan Hall 108 |
| COMP 150-07 |
Introduction to VLSI CAD AlgorithmsIntroduction to VLSI CAD Algorithms will be a class to learn the challenges and algorithms of CAD for VLSI – i.e., learn to use algorithms from computer science to automatically create and validate VLSI circuits. We will use techniques such as DFS and BFS search, dynamic programming, and branch & bound to solve problems in VLSI timing, logic/layout synthesis and post-silicon test. Depending on student interest, we may also apply the same algorithms to other fields. This class will not use commercial CAD tools (though we will have guest lectures from people in the local CAD industry). Prerequisites are COMP160, or graduate standing, or consent of the instructor. Prerequisite: Completion of COMP 160 or graduate standing. |
TR 4:30-5:45p Halligan Hall 108 |
| COMP 150-08 |
Algorithms and Data StructuresThis course offers an opportunity to expand your knowledge on various topics involving algorithms, data structures and graphs. Often these topics are intertwined; e.g., to create efficient algorithms, it may be useful to design data structures or use existing ones. We will cover a range of topics, such as network and path approximation, all-pairs shortest paths, near-planarity, string matching, linear programming, Fibonacci heaps, balanced trees (Splay, WAVL, Suffix), skip lists, fractional cascading, high-dimensional range counting, etc. These are topics that are useful to know, as one prepares for advanced interviews and/or further graduate work. As an elective, this course will aim to let each student focus more on topics that they are interested in. Evaluation will be primarily based on participation and a project. Prerequisite: Completion of COMP 160 |
TR 6:00p-7:15p Braker Hall 001 |
| COMP 150-09 |
The Engineering Method of Technical WritingThis course is for graduate and undergraduate students who want to improve their technical writing or who want to learn to write more easily. The course is a full-year, half-credit course, which means that it meets only once per week, and over the course of the year you will earn one full credit. Participants will read, analyze, and revise their own work, each others' work, and published papers in computer science. The workload is expected to start at 4 to 5 hours per week; as your skills improve, the workload should decline steadily. Grades will be based on in-class exercises and on a portfolio of work done outside of class. The syllabus and methods for the course are explained at length in my short monograph Learning Technical Writing Using the Engineering Method (http://www.cs.tufts.edu/~nr/pubs/learn.pdf). The books by Williams and Boice will be required. Prerequisite: This course involves small-group instruction and enrollment is limited; to take the course you must have the consent of the instructor. To obtain the instructor's consent, please send the following information:
|
F 1:30-2:45 Halligan Hall 111B |
| 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:45p Braker Hall 001 |
| COMP 167-01 |
Computational BiologyComputational challenges in molecular biology, including sequence alignment and comparison, genomic annotation, micro array data analysis, and proteomics. Underlying computational techniques such as dynamic programming, hidden Markov models, statistical analyses, and search and optimization procedures. Prerequisites: Comp15 and at least one CS course numbered 100 or higher. Prerequisite: Comp15 and at least one CS course numbered 100 or higher. |
MW 10:30-11:45 Halligan Hall 111A |
| 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. |
MW 9:00-10:15 Cabot Auditorium |
| COMP 171-01 |
Human-Computer InteractionIntroduction to human-computer interaction, or how computers communicate with people. Methodology for designing and testing user interfaces, interaction styles (command line, menus, graphical user interfaces, virtual reality), interaction techniques (including use of voice, gesture, eye movement), design guidelines, and user interface management software system. Students will design a small user interface, program a prototype, and test the result for usability. Prerequisite: COMP 15 |
MW 1:30-2:45 Anderson Hall Nelson Auditorium |
fall 2016