[Cs-affiliates] CS 591 topics course descriptions - Fall 2017
Devits, Christopher R
cdevits at bu.edu
Fri Apr 7 08:47:50 EDT 2017
Dear CS students,
As many of you know, registration opens for 3rd and 4th year students this Sunday April 9. Below you will find expanded descriptions of the Computer Science Topics courses (those listed as CS 591) to be offered in Fall 2017. Please review the descriptions, and if you have further questions feel free to reach out to the instructors. Note there is one addition to this list since my last email.
A couple of important reminders:
· You should always register for 4.0 credits when registering for these courses. You may see that they are listed as variable credit. All CS591 courses are 4.0 credit courses.
· You can register for more than one CS 591 class, so long as they are different sections and you are not repeating a topic you have already taken.
Waiting Lists – to get on a wait list email cs at bu.edu<mailto:cs at bu.edu> and send us your UID Number, class year and major, and course(s) you want to be wait listed for including lab preferences if you have one.
As many of you know from experience, the wait lists are crucial in making sure CS students are given priority as seats become available. But they also let us know how much unmet demand there is for our courses so we can adjust and plan accordingly.
CAS CS 591 C1
Theory of Compressive Sensing in the Age of Big Data
Course Description: One of the most exciting developments in this age of big data, along with our deeper understanding of signal processing, machine learning, data fusion, etc., is our deeper understanding of sparsity. Indeed, sparsity has become a very important concept in recent years with the key idea being that many classes of natural signals can be described by only a small number of significant degrees of freedom. This course offers a complete coverage of the recently emerged field of compressed sensing, which asserts that, if the true signal is sparse to begin with, accurate, robust, and even perfect signal recovery can be achieved from just a few randomized measurements. This idea has resulted in novel devices such as single-pixel camera, better MRI scanner, more accurate face object recognition algorithms, more efficient communication protocols, etc. The focus is on describing the novel ideas that have emerged in sparse recovery with emphasis on theoretical foundations, practical numerical algorithms, and various related applications in image recovery, machine learning, neural signal reconstruction, etc. Students from diverse background (ECE, BME, MechE, Medical School, etc) who are either interested in the subject or want to apply this new theory for their research are encouraged to attend.
Instructor: Peter Chin
CAS CS 591 C2
Philosophy of Computing (meets with CAS PH486 and GRS PH686)
Course Description: What are the logical and philosophical origins and applications of the Turing Machine? What, from a philosophical point of view, is computation? This course will discuss some of the logico-philosophical aspects of Turing’s work and examine foundational issues surrounding its future extensions and applications. Issues to be discussed include the backdrop to Turing’s famed resolution of Hilbert’s Entscheidungsproblem in philosophy, logic and foundations of mathematics at the dawn of the theory of computability; undecideability and incompleteness; Wittgenstein’s discussions with Turing; the question of AI; Searle’s Chinese Room argument; neuroplasticity and computing with the brain; the imitation game; Turing’s conception of intelligence; runaway AI; mind uploading; Turing’s ‘child machines’; and anthropomorphism and AI (can a robot smile?).
Instructor: Jack Copeland, Visiting Professor of Philosophy (with some lectures by Professor Juliet Floyd, Philosophy)
CAS CS 591 E1
Mobile Application Development
Course Description: Students will utilize agile software engineering practices in this hands-on course to design and implement mobile applications using Java and the Android SDK. Students will initially implement several small mobile applications utilizing core android technologies, after which students will be grouped into small groups, collaborating on a larger final project. Topics will include UI development, action bars, multi-touch, gestures, database and file I/O. Students will also learn to make rich applications by consuming location and sensor information from device hardware. No previous mobile application development experience is required, but a strong understanding of object-oriented programming and database development (from CS 112 and CS 460 or equivalent) is necessary.
Instructor: Shereif El-Sheikh
CAS CS 591 L1
Data Mechanics for Pervasive Systems and Urban Applications
Course Description: This course is about how data can move through institutions and computational infrastructures to inform decisions and operations (often in real time) within large systems such as cities that contain a variety of widely distributed, embedded sensors and devices (e.g., sensor networks and smart power grids). The course covers and teaches students to apply some of the tools and methods that computer science and computational thinking provide for facilitating data collection, retrieval, integration, and interpretation in application areas like urban informatics and distributed systems. Students will learn how to use the relational and MapReduce paradigms to assemble analysis, optimization, and decision-making algorithms that can scale up to handle large amounts of static or streaming data. Formal techniques for modeling and ensuring predictable, reliable, and correct behavior of such algorithms, as well as techniques for tracking data provenance, will also be presented. Other potential topics include crowdsourcing, socio-adaptive systems, and modern tools for building offline and online visualizations. Students will apply the tools and methods presented to build platforms and applications that work with real data sets dealing with aspects of urban environments such as mobility (e.g., walkability), employment, traffic and parking, emissions, energy consumption, public safety, and others.
Instructor: Andrei Lapets
CAS CS 591 V1
Secure Multi-Party Computation at Scale
Course Description: The ubiquity of big data along with modern distributed and cloud computing infrastructures makes it possible to leverage data assets from a variety of sources in order to compute large-scale analytics that serve decision-makers and the public good. A major hurdle to unleashing this potential is the need to trust the entity that gathers the data. Secure Multi-Party Computation (MPC) relies on cryptographic constructs to overcome this hurdle by allowing computation to be performed in a way that reveals only the output result, and reveals nothing about the input or intermediate values used in the computation other than what can be derived from the output. Secure MPC has been an active area of research for over 30 years, with many theoretical results and software artifacts. While fast enough to use today on small-scale data, MPC faces three key challenges that inhibit adoption at scale: the high learning curve of developing private analytics, the challenge of connecting private analytics to existing data stacks, and the inability to balance the privacy and performance provided by the analytic.
This team-taught course aims to prepare/recruit students interested in pursuing research that tackle these challenges by focusing on the deployment of state-of-the-art MPC technologies toward applications with important economic and social justice benefits, such as pay equity, economic stability of the banking system, market diversity to detect monopolies, and distributed network anomaly detection. The course leverages active research and real systems developed at BU by the team of instructors and their students.
We will first review in a lecture/reading group format the mathematical and algorithmic foundations of different MPC frameworks and systems. Next, we will also review some real-world instances of MPC deployment and the associated challenges. Finally, we will break up into project-oriented teams who will set up and deploy MPC systems by applying them to real-world or real-world-inspired data analysis problems. In particular, students will be expected to develop expertise in the use of one or more of the existing MPC libraries/APIs/systems that have been developed over the last few years, leading each student or small groups of students to a course project that will either use these existing MPC capabilities to tackle a large-scale big-data analytics problem, or else integrate these capabilities into the backend of popular big-data analytics platforms. As examples, last year students successfully optimized MPC for graph processing and convex geometry, analyzed the economic incentives that influence participation, and designed an Android application for MPC. Project ideas from students that complement and/or augment those proposed by the instructors are welcome!
Prerequisites: Required: Basics of number theory, abstract algebra, and probability theory for CS applications (covered in CS235 and CS237). Required: Experience with building non-trivial multi-module applications in a modern programming language (such as Python, C, Java, and so on). Not required, but good to have: Familiarity with or interest in distributed/cloud systems (covered in CS350 or CS451) and basics of cryptography and net security (covered in CS538 or CS558).
Instructors: Mayank Varia (Crypto Applications), Andrei Lapets (formal systems and programming languages), Ran Canetti (crypto foundations), Azer Bestavros (networking and cloud computing)
111 Cummington Mall
Boston, MA 02215
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Cs-affiliates