| COMP 5- |
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. |
|
| COMP 5-01 |
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. |
|
| COMP 5-01 |
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. |
|
| COMP 10-01 |
Computer Science for AllThese days computers are indispensable tools for research. This does not only hold for “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 to perform useful tasks that are tailored to what we want it to do for us.
|
MW 10:30-11:45 Anderson Hall 309 |
| 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 1:30-2:45 Barnum/Dana Hall 08 |
| 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 3:00-4:15 Barnum/Dana Hall 08 |
| 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 3:00-4:15 Robinson Hall 253 |
| 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 4:30-5:45p Robinson Hall 253 |
| 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 1:30-2:45 Anderson Hall Nelson Aud. |
| 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. |
MW 4:30-5:45p Robinson Hall 253 |
| COMP 50-01 |
Autonomous Intelligent RobotsWhat is intelligence and how can it be implemented in a physical robot? If this question sparks your curiosity, then this course is for you. We will cover algorithms and representations that allow robots to operate autonomously and intelligently in the real world. Topics include mapping and localization, 2D and 3D visual perception for robots, planning and control, machine learning for robots, and human-robot interaction. Through the course, you will learn to program robot applications using the Robot Operating System (ROS), the largest and most popular open-source framework for autonomous robots (http://www.ros.org/). Assignments will include several small C++ programming projects aimed at learning ROS, followed by a team final project on a topic of your choosing. For the assignments and final projects, you will use the TurtleBot2 mobile robots (http://www.turtlebot.com/turtlebot2). At the end of the course, 1) you will have been exposed to the state-of-the-art in autonomous robotics; 2) you will have an understanding of the current research areas, challenges, and open problems; and 3) you will be able to write applications and software modules for robots using ROS. |
MW 3:00-4:15 Halligan Hall 111A |
| COMP 50-02 |
Methods of Data ScienceIntroduction to techniques utilized on a daily basis by a Data Scientist. Modeling techniques for recommendation and search engines, collaborative filtering, text analytics, visualization, and visual analytics. Implications of big data and scalability in data analysis. Laboratory exercises will give practical experience in applying these techniques to real world data in Python and/or R. |
MW 6:00p-7:15p Room To Be Announced |
| COMP 50-04 |
Game DesignGame Development provides a rich opportunity to learn about software development methodologies such as managing teamwork, project scope, and user experience. In this course students will learn to develop fun and meaningful interactive experiences using paper and digital prototyping, including the use of programming, art, and audio production software. Comp 15 recommended. Upon successful completion of this team-based course students will be able to use computer programs and both paper and computer production pipelines to bring a game from design and planning through production to a final playable product. Prerequisite: COMP 15. |
T 6:00p-9:00p Bromfield-Pearson 02 |
| 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 06 |
| 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 3:00-3:50 F 3:30-4:20 Bromfield-Pearson 05 |
| 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. |
MW 3:00-4:15 Barnum/Dana Hall 08 |
| 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 Anderson Hall 312 |
| 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 112-01 |
Networks & ProtocolsDesign and implementation of computer communication networks, protocols, and applications, with an emphasis on the Internet protocol suite. Network architectures and programming interfaces. Data link, transport, and routing protocols. Congestion sources and remedies. Addressing and naming in local area and wide area networks. Network security and network management. |
MW 10:30-11:45 Halligan Hall 111A |
| 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. |
TR 6:00p-7:15p Pearson 106 |
| 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 Nelson Aud. |
| 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 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 6:00p-7:15p Halligan Hall 111A |
| 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 Halligan Hall 111A |
| COMP 140-01 |
Advanced Computer ArchitectureThis course teaches advanced concepts of modern computer architecture, starting from the basic 5-stage pipelines and progressing to out-of-order superscalar processors, multicore processors, and power-aware computing. 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. In addition, this course describes the current challenges faced by computer architects. These challenges include: power consumption, transistor variability, parallelism, and processor heterogeneity. Prerequisite: EE 126 or COMP 40 |
MW 1:30-2:45 Halligan Hall 111B |
| COMP 150-02 |
Computational Systems BiologyThis course will provide an overview of computational systems biology focusing on select topics such as Flux Balance Analysis, Modularity Analysis, and Metabolomics analysis. Students will explore these concepts by using example cases and writing their own software to collect and analyze data from various biological databases. A term project will require students to define a computational challenge in systems biology and implement and evaluate a solution. |
F 9:30-12:00 Halligan Hall 111A |
| COMP 150-03 |
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 Collaborative Learning and Innovation Complex 401 |
| COMP 150-04 |
Mobile Medical Devices and AppsTeam-based projects to design, build, and present a working medical device prototype. Devices are constructed using Android, iOS, and Arduino based components, using appropriate software for designated functionality and user-interface requirements. Project specification with imposed requirements and constraints, sensor/data acquisition, software architecture, hardware integration, working prototype demonstration, final presentation, and project report are course assignments. Prerequisite: ES03, ES04, COMP11, COMP 15, junior or higher standing, and permission of instructor. This is an elective for the ECE and CS programs only. To apply for consideration to take this course, please put your information on the sign-up sheet in the CS front office. |
TR 12:00-1:15 Halligan Hall 111A |
| COMP 150-05 |
Natural Language ProcessingNatural language processing toolkits such as NLTK, Apache OpenNLP, and Stanford CoreNLP are in wide use as opaque boxes that mysteriously transform text into presumably useful data structures for working with text. In this course we will study the mathematics and algorithms behind these and other NLP toolkits to better understand how they do what they do. We will meet the Singular Value Decomposition and Conditional Random Fields, among other bits of mathematics. We will code several topic modeling and tagging algorithms that use these bits of math--from scratch--applying what we learn in hands-on projects. We will come away with a deeper understanding of how text is processed by a computer. Prerequisite: Linear algebra (MATH 0070, MATH 0072 or equivalent). Statistics (ES 56 or equivalent). Computer programming. Or consent of instructor. |
MW 6:00p-7:15p Halligan Hall 108 |
| COMP 150-06 |
Ethics for AI, Robotics, and Human Robot InteractionThis course will provide an overview of the ethical problems and challenges prompted by current and future technological advances in AI, robotics, and human-robot interaction. It will start by reviewing the philosophical foundations of the main ethical theories (virtue ethics, deontology, utilitarianism) and link them to different algorithmic approaches in artificial agents (rule-based, utility-based, behavior-based, etc.). Explicating and contrasting the assumptions underlying each algorithmic approach (e.g., policy-based decision-making vs. rule-based reasoning), functional tradeoffs and implications for autonomous robots and AI systems will be discussed. The scope will then be widened to moral psychology and human-robot/human-technology interaction to move beyond individual autonomous systems into the realm of social interactions between humans and autonomous systems, discussing the societal implications of AI and robot technology. Social, economical, legal, and military ramifications will be considered, with the aim of exposing the unique challenges AI and robot technology pose for humanity, compared to other disruptive technologies, but also they unique opportunities these technologies enable for current and future generations. |
M 9:30-12:00 Halligan Hall 108 |
| COMP 150-07 |
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 3:00-4:15 Halligan Hall 111A |
| COMP 150-08 |
Cyber in the Civil SectorThere is a myth that the Internet erases borders. But as Internet companies' ability to place localized ads show, that's false. What's more accurate is that the Internet complicates a nation's ability to control of the flow of information within its borders. (This is not a new challenge for sovereign nations; consider the telegraph.) This fluidity has created great economic opportunity and simplified trans-border access, the latter potentially threatening security and other basic state functions. With bits increasingly controlling the world around us, the Digital Revolution poses a highly disruptive threat. In this course, well explore cyber clashes in the civilian sector: from jurisdictional issues and the challenges posed by new technologies to criminal activities and impacts on civil infrastructures. While several of the topics are also covered in International Cyber Conflict: An Introduction to Power and Conflict in Cyberspace, DHP P249, the intersection between the two courses will be relatively minimal. Cyber in the Civilian Sector will have a greater focus on technology and, naturally enough, on the civilian, as opposed to national-security, side of the house.
|
MW 11:05-12:20 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 10:30-11:45 Cohen Auditorium |
| 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 9:00-10:15 Braker Hall 01 |
| 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 Collaborative Learning and Innovation Complex 401 |
| COMP 175-01 |
Computer GraphicsThis course explores the fundamentals of computer graphics, including representing digital images, 2D rasterization and anti-aliasing, 3D rendering via ray casting, ray tracing and radiosity, viewing transformations, 3D shape representation, and an introduction to modeling and computer animation. Assignments and projects require a good working knowledge of the C programming language. |
MW 3:00-4:15 Anderson Hall 206 |
| COMP 177-01 |
VisualizationVisualization as a tool for data analysis, recall, inference, and decision-making. Tools for visual description and presentation. Principles of effective visualization, including data-visual mapping, interaction techniques, color theory, cognitive and perceptual psychology, and human factors of visual depictions of data. Prerequisite: Comp15 and Comp61, or permission of instructor. |
TR 1:30-2:45 Halligan Hall 111A |
| COMP 250-01 |
Privacy in the Digital AgeThis module will provide an introduction to the threats to and protections for privacy in the digital age, examining public and private sector threats, and looking at issues from an international point of view. Topics to be covered include privacy threat models, location tracking and first and third party collection by private parties, government threats to privacy, and privacy protective technologies. No programming background needed, but a willingness and interest to play with digital tools is required.
|
T 3:20-5:20p Room To Be Announced |
| COMP 260-01 |
Advanced AlgorithmsIf you loved your algorithms class and can't wait for more, this is the class for you. In this pleasant and fun class, we will look at some more modern algorithms, some beautiful algorithms gems, and some areas of current research in algorithms. Topics will include using randomness in the design and analysis of algorithms, approximation algorithms, and online algorithms. Prerequisite: Comp 160 or permission of the instructor. |
T 6:30p-9:00p Halligan Hall 108 |
fall 2017