| COMP 5-01 |
Computational Methods for the HumanitiesIntroduction to computational methods as applied to Humanities data. Data preparation, natural language processing, probability and statistics, visualization, machine learning, and prediction. Datasets for demonstrations and projects include texts, geographical, archaeological, and numerical data. Lab session and report each week and requires hands-on computing. The class will focus on Classical studies problems when taught by a Classics faculty member and on other areas of the Humanities when taught by others. Graduate students will demonstrate originality in their research by acquiring and preparing their own data and executing thorough cross-checking and assessment of their results. Graduate students taking the class as part of the MA in Digital Tools for PreModern Studies will need to integrate a language component to their research by operating on Latin, Greek, or other texts in an approved language. Cross-listed as CLS 160 |
MW 8:05a-9:20 Room To Be Announced |
| COMP 5-01 |
Computational Methods for the HumanitiesIntroduction to computational methods as applied to Humanities data. Data preparation, natural language processing, probability and statistics, visualization, machine learning, and prediction. Datasets for demonstrations and projects include texts, geographical, archaeological, and numerical data. Lab session and report each week and requires hands-on computing. The class will focus on Classical studies problems when taught by a Classics faculty member and on other areas of the Humanities when taught by others. Graduate students will demonstrate originality in their research by acquiring and preparing their own data and executing thorough cross-checking and assessment of their results. Graduate students taking the class as part of the MA in Digital Tools for PreModern Studies will need to integrate a language component to their research by operating on Latin, Greek, or other texts in an approved language. Cross-listed as CLS 160 |
|
| COMP 5-01 |
Computational Methods for the HumanitiesIntroduction to computational methods as applied to Humanities data. Data preparation, natural language processing, probability and statistics, visualization, machine learning, and prediction. Datasets for demonstrations and projects include texts, geographical, archaeological, and numerical data. Lab session and report each week and requires hands-on computing. The class will focus on Classical studies problems when taught by a Classics faculty member and on other areas of the Humanities when taught by others. Graduate students will demonstrate originality in their research by acquiring and preparing their own data and executing thorough cross-checking and assessment of their results. Graduate students taking the class as part of the MA in Digital Tools for PreModern Studies will need to integrate a language component to their research by operating on Latin, Greek, or other texts in an approved language. Cross-listed as CLS 160 |
MW 8:05a-9:20 Eaton Hall 333 |
| 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. |
T 3:00-4:15 Halligan Hall 108 |
| 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.
|
TR 9:00-10:15 Room To Be Announced |
| 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 Robinson Hall 253 |
| 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 Braker Hall 001 |
| 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 Aidekman Complex 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 Aidekman Complex Cohen Auditorium |
| 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 Anderson Hall 112 |
| 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. |
TR 1:30-2:45 Cabot Auditorium |
| COMP 50-01 |
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 3:00-4:15 Halligan Hall 108 |
| COMP 50-02 |
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 Halligan Hall 111A |
| 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. |
TRF 12:00-1:15 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. |
MWF 10:30-11:20 Pearson 106 |
| 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. |
TR 1:30-2:20 F 2:30-3:20 Anderson Hall 112 |
| 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 87-01 |
Senior Capstone Project in Data Science IApplication of data science and analytic principles to the solution of a real-world problem in a group setting. Requirements analysis, review of available data sources, and proposal of a solution strategy to the problem. Prerequisite: Senior standing |
TR 3:00-4:15 Terrace Room, Paige Hall |
| 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 Terrace Room, Paige Hall |
| 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 Crane Room, Paige Hall |
| 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 Anderson Hall 212 |
| 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 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 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 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. |
TR 9:00-10:15 Anderson Hall 211 |
| COMP 150-01 |
Working with CorporaCross-listed as CLS 191
|
M 6:00p-9:00p Eaton Hall 124 |
| COMP 150-02 |
Program Analysis, Verification, and SynthesisThe idea of software—the interchangeable instructions that control general-purpose computing devices—is one of the major breakthroughs of Computer Science. While we often think of software as human-generated text, in fact from the earliest days of computing, when compiler technology was first developed, researchers have been exploring ways to manipulate and reason about software algorithmically. In this class, we will study three closely related topics that arose out of this research. We will begin with program analysis, which initially was developed to enable compilers to perform optimization. Today, program analyses are also used to solve a range of software engineering problems, including finding bugs and security vulnerabilities. Next, we will study program verification, which aims to prove that programs are correct. In recent years, researchers have built verified compilers, operating systems, cryptography libraries, and others. Finally, we will study program synthesis, which searches for a program satisfying a specification. Researchers have demonstrated synthesis of synchronization for high-performance parallel code, program inverses, fast Fourier transforms, and more. Program synthesis even underlies the Flash Fill feature of Microsoft Excel. Each of these topics could be a course on its own, so the goal of this class is to give students a broad overview of these areas and the relationships between them. Throughout the course, students will design an implement basic program analysis, verification, and synthesis tools, and study the theory behind them. Prerequisite: COMP 105, graduate standing, or instructor consent. |
MW 3:00-4:15 Halligan Hall 111A |
| 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. Prerequisite: COMP 135 (Introduction to Machine Learning) or COMP 136 (Statistical Pattern Recognition) or permission of the instructor |
TR 3:00-4:15 Halligan Hall 111A |
| COMP 150-04 |
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)
|
TR 1:30-2:45 Halligan Hall 108 |
| COMP 150-06 |
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 |
W 1:20-4:20 Halligan Hall 102 |
| COMP 150-07 |
Computational Models in Cognitive ScienceThis course will provide an overview of different computational models and modeling techniques in cognitive science. Students will work with different kinds of computer simulation to develop models and study their properties. A term project will require students to develop and implement their own model for a task of their choice. Prerequisite: COMP15, COMP/MATH 22 or 61 |
TR 10:30-11:45 Halligan Hall 111A |
| COMP 150-08 |
Cyberlaw and CyberpolicyThis course is an introduction to the legal issues of cyberspace. Legal issues in this domain are complex. Technology has been evolving faster than the law's ability to handle the changes, so partially this course will be an education in the legislating and policy making of moving targets. It will also be an education in jurisdiction, privacy, surveillance, and copyright as it relates to the Internet. The perspective will be from US law and jurisprudence, although there will be periodic forays into international issues. Topics covered will include cyberlaw and cybergovernance, the Digital Revolution and its impact on First, Fourth, and Fifth Amendment issues, copyright in the Digital Age, and the Computer Fraud and Abuse Act. |
MW 3:00-4:15 Science and Technology 135 |
| COMP 150-09 |
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 |
TR 6:00p-7:15p Halligan Hall 108 |
| 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 Pearson 104 |
| COMP 160-03 |
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 Robinson Hall 253 |
| COMP 163-01 |
Computational Geometry(Cross-listed as MATH 163.)Design and analysis of algorithms for geometric problems. Topics include proof of lower bounds, convex hulls, searching and point location, plane sweep and arrangements of lines, Voronoi diagrams, intersection problems, decomposition and partitioning, farthest-pairs and closest-pairs, rectilinear computational geometry. Prerequisite: COMP 160 or permission of the instructor |
T 9:00-11:30 Anderson Hall 312 |
| 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. |
R 6:30p-9:00p 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. |
TR 12:00-1:15 Robinson Hall 253 |
| 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 10:30-11:45 Halligan Hall 108 |
| 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 Halligan Hall 108 |
| 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 208 |
summer 2018