CIS Homeline

Embedded Systems

  Seminars and colloquia

Descriptions and prerequisites
Time and room roster
Penn in Touch
Written Preliminary Exam I


Fall Course Schedule
Spring Course Schedule
Summer Course Schedule

  Procedures and forms
Graduate handbook
Administrative resources
Other resources
  For women
For international students
English language courses
Recent graduates
Penn and Philadelphia
General Resources
arrow Employment


CIS Home divider Penn Engineering divider PENN   spacer

  Department of Computer & Information Science Spring 2014 Graduate Course Schedule Course  






CIS 505/001

Software Systems

CIS 505 will NOT meet on Thurs. 1/16; the first class meeting will be Tues. 1/21.

Blaze TR 1:30-3

Berger Auditorium

Skircanich Hall

CIS 511/001

Theory of Computation Gallier TR noon-1:30

Wu & Chen Auditorium

Levine Hall

CIS 518/401 Topics in Logic Weinstein MWF 1-2

Williams Hall 205

CIS 521/001 Fundamentals of AI Marcus TR 10:30-noon Towne 313
CIS 526/001 Machine Translation Callison-Burch TR 4:30-6

Towne 303

CIS 535/401 Introduction to Bioinformatics Master MW 10-11


CIS 535/402

Introduction to Bioinformatics Lab

Master F 10-11


CIS 537/401 Biomedical Image Analysis Yushkevich MW 3-4:30 Towne 303
CIS 540/001 Principles of Embedded Computation Alur MW 10:30-noon Moore 212
CIS 540/201

Principles of Embedded Computation Recitation

Alur F noon-1 Moore 212
CIS 542/001 Embedded Systems Programming Cohen TR 10:30-noon

Towne 303

CIS 551/401 Computer & Network Security


MW 1:30-3 Towne 311
CIS 552/001 Advanced Programming Pierce MW noon-1:30 Towne 315

CIS 555/401

Internet & Web Systems

(core course for CIS/MSE students)

Haeberlen MW 10:30-noon

Moore 216

CIS 558/401 Biological Signals & Systems Liberman W 9-11 TBA
CIS 563/001

Physically Based Animation

Kavan MW 1:30-3 Moore 212
CIS 564/001 Game Design & Development Lane MW 3-4:30 TOWNE 307
CIS 597/click here for faculty section numbers

Master's Student Thesis Research

CIS 599//click here for faculty section numbers Master's Student Independent Study TBD TBD n/a
CIS 601/001 Advanced Topics in Computer Architecture Devietti TR 10:30-noon Towne 307
CIS 630/301

Advanced Topics in Natural Language Processing

Nenkova M 3-6 Towne 305
CIS 640/001 Advanced Topics in Software Systems: Concurrent Programming Cohen TR 1:30-3 Towne 309
CIS 650/001 Advanced Topics in Databases Ives MW 3-4:30 Levine 512
CIS 660/301 Advanced Topics in Computer Graphics & Animation Lane MW 10:30-noon Towne 309
CIS 670/001 Advanced Topics in Programming Languages Zdancewic MW 3-4:30 Towne 309
CIS 677/001 Advanced Topics in Algorithms & Complexity: Complexity Theory Kannan MW 4:30-6 Towne 321
CIS 700/002 Special Topic: Differential Privacy in Game Theory and Mechanism Design Roth F noon-3 Towne 311
CIS 700/003 Special Topic: Real-Time Rendering Cozzi M 6-9 SIG Center

CIS 800/001

Doctoral Special Topic Lee W noon-3 Precise Center
CIS 800/002 Doctoral Special Topic Boon cancelled  
CIS 800/004

Doctoral Special Topic: Graphics Reading Group

This course is for .5 credit

Badler TBA SIG Center
CIS 800/005

Doctoral Special Topic: Architecture & Compilers Reading Group

This course is for .5 credit

Devietti TBA TBA
CIS 800/006 Doctoral Special Topic: Crowd Data Sourcing: a Database Perspective Davidson MW noon-1:30 Moore 212
CIS 800/007 Doctoral Special Topic Smith TBA DSL Conference Room
CIS 895/001 Teaching Practicum Credit TBD TBD n/a
CIS 899/click here for faculty section numbers Doctoral Student Independent Study TBD TBD n/a
CIS 999/click here for faculty section numbers Doctoral Student Thesis/Dissertation Research TBD TBD n/a
CIS 995/001 Dissertation TBD TBD n/a
CIT 594/001 Programming Languages & Techniques II Matuszek TR 4:30-6 Towne 311
CIT 595/001 Digital Systems Organization & Design Murphy MW 1:30-3 Towne 313
CIT 595/201

Digital Systems Organization & Design Recitation

Murphy R 10:30-noon

Towne 315

CIT 596/001 Theory of Computation Bhusnurmath TR 1:30-3 Moore 216
CIT 596/201

Theory of Computation Recitation

Bhusnurmath F 11-noon Towne 321

CIS Core Courses

CIT Core Courses

Enrollment for the above CIS & CIT classes is restricted to CIS, MCIT, CGGT, EMBS, & Robotics students.   Other students who wished to enroll in CIS or CIT courses are requested to complete & submit the waitinglist information; the waitinglist is closed and students will be advised as soon as possible.Thank you.

CIT 590/001

Programming Languages & Techniques

For non-MCIT students

Students registering for CIT 590 should register for one of the two recitations listed below:

Bhusnurmath MW 1:30-3 David Rittenhouse Lab A2

CIT 590/201

CIT 590/202

Programming Languages & Techniques Recitation


F 10:30-noon

F 1:30-3

Moore 207

Moore 207

EAS 590/001 Commercializing Software Isakowitz M 6-9 Towne 321

EAS 510/001

EAS 510/002

Technical Communication & Academic Writing for Non-Native Speakers of English Westervelt

TR 10:30-noon

MW noon-1:30

Towne 305

Towne 307

CIS 599 Master's Independent Study & CIS 597 Master's Thesis Research section numbers
CIS 599 & CIS 597 Approval Form
CIS 899 Doctoral Independent Study & CIS 999 Doctoral Thesis Research section numbers
CIS 899 & CIS 999 Approval Form
Course registration instruction/procedures
Approved non-CIS graduate courses   
Information about classroom/buildings
All course listings, schedules                
Payment Information
Estimated tuition/fees                           
Student Financial Services                   

Billing information & billing schedule   

The University begins billing shortly after registration and late fees may be incurred.
Wednesday, January 15
Classes begin.
Monday, January 20
Martin Luther King Jr. Day, no classes
Monday, February 3


Saturday, March 8 - Sunday, March 16
Spring break.
Wednesday, April 30
Classes end.
Thursday, May 1 - Friday, May 2
Reading days.
Monday, May 5 - Tuesday, May 13
SEAS graduate commencement info -
University commencement info -
University Academic Calendar

CIS 526/001 Machine Translation

Google translate can instantly translate between any pair of over fifty human languages (for instance, from French to English). How does it do that? Why does it make the errors that it does? And how can you build something better? Modern translation systems like Google Translate and Bing Translator learn how to translate by reading millions of words of already translated text, and this course will show you how they work. The course covers a diverse set of fundamental building blocks from linguistics, machine learning, algorithms, data structures, and formal language theory, along with their application to a real and difficult problem in artificial intelligence.

CIS 526 may be used towards fulfilling the CIS doctoral student seminar requirement. 

CIS 800/006 Doctoral Special Topic: Crowd Data Sourcing: a Database Perspective

Instructor Prof. Susan B. Davidson (566 Levine, 898-3490), office hours W 4-5 or by appointment.

Administrative Assistant Cheryl Hickey (502 Levine North, 898-3538)

Course Goals Crowd-based data sourcing is a new and powerful data procurement paradigm that engages Web users to collectively contribute data, analyze information and share opinions. We will study database issues associated with crowd data sourcing, in particular those being studied within five projects: MoDaS, CrowdSearcher , CrowdDB, SCoOP and Qurk.

Course Requirements Students enrolled in the course will be expected too choose a paper or papers to present, and do enough background research to to present the ideas of the paper well. They will also be expected to do a project, which can be either an implementation or a research project. The course grade will be based on the paper presentation, class participation/interaction, and the project.

Online Discussion Forum We'll be using Piazza for online discussion this term. Piazza is a question-and-answer platform designed to get you answers fast, and supports LaTeX, code formatting, embedding of images, and attaching of files.

Papers (tentative, subject to change) MoDaS

  1. H. Kaplan, I. Lotosh, T. Milo, S. Novgorodov. 2013. Answering Planning Queries with the Crowd. In VLDB'13, August 2013. (See associated demo - I. Lotosh, T. Milo, S. Novgorodov. 2013. CrowdPlanr: Planning Made Easy with Crowd (demo). In ICDE'13, April 2013).
  2. Y. Amsterdamer, Y. Grossman, T. Milo, P.Senellart. 2013. Crowd Mining. In SIGMOD'13, April 2013. (See associated demo- Y. Amsterdamer, Y. Grossman, T. Milo, P.Senellart. CrowdMiner: Mining association rules from the crowd (demo). In VLDB'13, August 2013)
  3. D. Deutch, T. Milo. Mob Data Sourcing. In SIGMOD'12, May 2012 (Tutorial).
  4. Antoine Amarilli, Yael Amsterdamer, Tova Milo. On the Complexity of Taxonomy-Based Crowd Mining. In ICDT 2014 (to appear). (See sort-of associated demo - R. Boim, O. Greenshpan, T. Milo, S. Novgorodov, N. Polyzotis, W. C. Tan. Asking the Right Questions in Crowd Data Sourcing (demo). In ICDE'12, April 2012.)
  5. D. Deutch, O. Greenshpan, B. Kostenko, T. Milo. Declarative Platform for Data Sourcing Games. In WWW'12, April 2012.
  1. Alessandro Bozzon, Marco Brambilla, Stefano Ceri, Andrea Mauri. 2013. Reactive Crowdsourcing. In Proceedings of the 22nd International Conference on World Wide Web (WWW 2013).
  2. Alessandro Bozzon, Marco Brambilla, Stefano Ceri, Matteo Silvestri, Giuliano Vesci. 2013. Choosing the right crowd: expert finding in social networks. In Proceedings of 16th International Conference on Extending Database Technology (EDBT 2013). ACM, USA, 637-648.
  3. Alessandro Bozzon, Marco Brambilla, and Stefano Ceri. 2012. Answering search queries with CrowdSearcher. In Proceedings of the 21st international conference on World Wide Web (WWW '12). ACM, New York, NY, USA, 1009-1018.
  4. Alessandro Bozzon, Marco Brambilla, Andrea Mauri. 2012. A Model-Driven Approach for Crowdsourcing Search. In Proceedings of the 1st Workshop on Crowdsourcing Web Search (CrowdSearch 2012). 31-35.
  1. Michael Franklin, Donald Kossmann, Tim Kraska, Sukriti Ramesh, and Reynold Xin. CrowdDB: Answering Queries with Crowdsourcing . SIGMOD 2011.
  2. Daniel Haas, Matthew Greenstein, Kainar Kamalov, Adam Marcus, Marek Olszewski, and Marc Piette. Reducing Error in Context-Sensitive Crowdsourced Tasks, HCOMP 2013
  3. Jiannan Wang, Guoliang Li, Tim Kraska, Michael Franklin, and Jianhua Feng. Leveraging Transitive Relations for Crowdsourced Joins. SIGMOD 2013.
  4. Beth Trushkowsky, Tim Kraska, Michael Franklin, and Purna Sarkar. Crowdsourced Enumeration Queries. ICDE 2013.
  5. Jiannan Wang, Tim Kraska, Michael Franklin, and Jianhua Feng. CrowdER: Crowdsourcing Entity Resolution. Proceedings of the VLDB Endowment 2012, Vol. 5, No. 10, Aug. 2012.
  6. AnHai Doan, Michael Franklin, Donald Kossmann, and Tim Kraska. Crowdsourcing Applications and Platforms: A Data Management Perspective (Tutorial). VLDB 2011, Sep. 2011.
  7. Gianluca Demartini, Beth Trushkowsky, Tim Kraska, and Michael Franklin. CrowdQ: Crowdsourced Query Understanding. CIDR 2013.
Crowd Powered Data Management
  1. Parameswaran, Aditya and Teh, Ming Han and Garcia-Molina, Hector and Widom, Jennifer. DataSift: An Expressive and Accurate Crowd-Powered Search Toolkit. 1st Conf. on Human Computation and Crowdsourcing (HCOMP), Palm Springs, USA, Nov 2013.
  2. Anish Das Sarma, Aditya Parameswaran, Hector Garcia-Molina and Alon Halevy. Crowd-Powered Find Algorithms. 30th International Conf. on Data Engineering (ICDE), Chicago, USA, Apr 2014.
  3. Aditya Parameswaran, Hyunjung Park, Hector Garcia-Molina, Neoklis Polyzotis and Jennifer Widom. Deco: Declarative Crowdsourcing. 21th International Conf. on Information and Knowledge Management (CIKM), Maui, Hawaii, USA, Nov 2012. See also An Overview of the Deco System: Data Model and Query Language; Query Processing and Optimization (SIGMOD Record, Volume 41, Dec 2012), and Deco: A System for Declarative Crowdsourcing (Demo), VLDB 2012.
  4. Manas Joglekar, Hector Garcia-Molina and Aditya Parameswaran. Evaluating the Crowd with Confidence. 19th International Conf. on Knowledge Discovery and Data Mining (KDD), Chicago, USA, Aug 2013.
  5. Kedar Bellare, Suresh Iyengar, Aditya Parameswaran and Vibhor Rastogi. Active Sampling for Entity Matching. 18th International Conf. on Knowledge Discovery and Data Mining (KDD), Aug 2012.
  6. Stephen Guo, Aditya Parameswaran and Hector Garcia-Molina. So Who Won? Dynamic Max Discovery with the Crowd. SIGMOD International Conf. on Management of Data, Jun 2012.
  7. Aditya Parameswaran, Hector Garcia-Molina, Hyunjung Park, Neoklis Polyzotis, Aditya Ramesh and Jennifer Widom. CrowdScreen: Algorithms for Filtering Data with Humans. SIGMOD International Conf. on Management of Data, Jun 2012.
  8. Aditya Parameswaran, Anish Das Sarma, Hector Garcia-Molina, Neoklis Polyzotis and Jennifer Widom. Human-assisted Graph Search: It's Okay to Ask Questions. 37th International Conf. on Very Large Data Bases (VLDB), Sep 2011
  1. Adam Marcus, Eugene Wu, David R. Karger, Samuel Madden, and Robert C. Miller. Crowdsourced Databases: Query Processing with People. CIDR 2011. See also Demonstration of Qurk: A Query Processor for Human Operators, SIGMOD 2011.
  2. Adam Marcus, Eugene Wu, David Karger, Samuel Madden, and Robert Miller. Human-powered Sorts and Joins. VLDB 2012.
  3. Barzan Mozafari, Purnamrita Sarkar, Michael J. Franklin, Michael I. Jordan, and Samuel Madden. Active Learning for Crowd-Sourced Databases. CoRR abs/1209.3686 (2012).


CIS 677 Advanced Topics in Algorithms & Complexity: Complexity Theory

Reference Books: We will start with the last part of Michael Sipser's book on Theory of Computation and continue with selected topics from the book by Sanjeev Arora and Boaz Barak on Complexity Theory.

Description: The course will cover various models of resource-bounded computation and the complexity classes that arise from these models. Models covered include Turing Machines with time and space bounds, Probabilistic Turing Machines, Uniform and Non-uniform Circuit Families, and Communicating Turing Machines. In each model we will study examples of problems that lie in some (robust) complexity classes, ask whether there are complete problems for these classes and what these complete problems are, and what the relationships are between these complexity classes. When studying communicating Turing Machines we will introduce the notions of Communication Complexity and Information Complexity and also study the notions of Interactive Proofs, Zero-Knowledge Proofs, and Probabilistically Checkable Proofs (PCPs).  We will examine some of the implications of the PCP Theorem for the approximability of some NP-hard problems. We will then define complexity-theoretic notions such as One-Way Functions and Trapdoor Functions and examine the connections between such notions and modern Public-Key Cryptography. If time permits we will look at the complexity of counting and uniform generation problems and how these are related to decision complexity.

The exact order of topics will be determined based on student interest.

Prerequisites: The course is open to both graduate students and mathematically-minded undergraduates. Graduate students should have had either CIS 502 or CIS 511 or the equivalent of one of these courses. Undergraduates should have had either CIS 320 or CIS 262.

CIS 542 Embedded System Programming

This course is the first of two required programming courses for students in the Penn EMBS program (the second being ESE 519).
The main goal of this course is to get you thinking like serious programmers (or at least, the way that we think that such programmers ought to think). To foster this, we will spend most of our class time working our way through programming problems, ranging from standard algorithms and data structures to device drivers and system controllers.

Throughout the course, we emphasize assertional reasoning about correctness, so rather than scanning/testing programs looking for things that could go wrong, you will learn to think (and document your programs) in terms of why things are guaranteed to go right. We use these arguments to drive software and documentation structure as well. By treating the system which the software is embedded as a collection of concurrent objects, we use the same kind of reasoning to understand combined hardware-software systems. 

Except for expecting incoming students to be reasonably fluent in C, I'll try to make this course self-contained. Because many EMBS students have had limited programming experience, I'll try to cover (at a high level) some parts of computer science that every professional embedded programmer needs to know, such as details of how C/C++ programs are executed (so that you can understand the performance implications of your design decisions) and fundamental algorithms and data structures your are likely to need.

Unlike previous offerings of 542, this course is not primarily project-based, and we will not be spending time talking about platform APIs. However, programming is not a spectator sport, so you will be expected to do substantial programming outside of class, and to check in code to a depot where I can look at it. There may also be some more specific programming labs; check here for details.

CIS 601 Advanced Topics in Computer Architecture

Prerequisite: Graduate Computer Architecture (CIS 501) or strong performance in undergraduate Digital Systems Organization and Design (CIS 371).
This course will focus on research topics in computer architecture, and include reading and presenting research papers and an optional project. The content will differ with each offering, covering topics such as multicore programmability, datacenter and warehouse-scale computing, security, energy-efficient architectures, etc.


Questions? Mike Felker

CIS Home divider Penn Engineering divider PENN   spacer