Spring '14
JavaScript CIS197
pre-reqs:
CIS120
-
This course provides an introduction to modern web development frameworks, techniques, and practices used to deliver robust client side applications on the web. The emphasis will be on developing JavaScript programs that run in the browser, not server-side applications in traditional languages like Java, Python, or Ruby.
This course is most useful for students who have some programming and web development experience and want to develop moderate JavaScript skills to be able to build complex, interactive applications in the browser.
Introduction to Algorithms CIS320
-
How do you optimally encode a text file? How do you find shortest paths in a map? How do you desgin a communication network? How do you route data in a network? What are the limits of efficient computation? This course gives a comprehensive introduction to design and analysis of algorithms, and answers along the way to these and many other interesting computational questions. You will learn about problem-solving; advanced data structures such as universal hashing and red-black trees; advanced design and analysis techniques such as dynamic programming and amortized analysis; graph algorithms such as minimum spanning trees and network flos; NP-completeness theory; and approximation algorithms.
Introduction to Networks and Security CIS331
pre-reqs:
CIS121
-
This course introduces principles and practices of computer and network security. We will cover basic concepts, threat models, and the security mindset; an introduction to cryptography and cryptographic protocols including encryption, authentication, message authentication codes, hash functions, public-key cryptography, and secure channels; an introduction to networks and network security including IP, TCP, routing, network protcols, web architecture, attacks, firewalls, and intrusion detection systems; an introduction to software security including defensive programming, memory protection, buffer overflows, and malware; and discuss broader issues and case studies such as privacy, security and the law, digital rights management, denial of service, and ethics.
Forensic Science NURS332
pre-reqs:
none
-
This course discusses the interface of law and science. Forensic science is theapplication of scientific principles in the legal arena. This course examines the contribution of forensic science to criminal and civil investigation. Crime sceanalysis is accomplished via disciplines within forensic science. The role of tmedical examiner, the structure and function of crime laboratories, death investigation and the role of health care personnel in forensic cases is discused.
Intermediate Spanish II SPAN140
pre-reqs:
SPAN130
-
Spanish 140, the continuation of Spanish 130, is a fourth-semester language course that offers students the opportunity to acquire communicative skills (reading, writing, listening and speaking) while developing their awareness and appreciation of the Spanish-speaking world. Topics studied may include the environment, the arts, social relations, and conflict and violence.
Fall '13
Introduction to Cognitive Science CIS140
pre-reqs:
none
-
How do minds work? This course surveys a wide range of answers to this question from disciplines ranging from philosophy to neuroscience. The course devotes special attention to the use of simple computational and mathematical models. Topics include perception, learning, memory, decision making, emotion and consciousness.
Art, Design and Digital Culture FNAR264
pre-reqs:
none
-
This course is an introduction to the fundamental perception, representation, aesthetics, and design that shape today's visual culture. It addresses the way artists and designers create images; design with analog and digital tools; communicate, exchange, and express meaning over broad range of media; and find their voices within the fabric of contemporary art, design, and visual culture. Emphasis is placed on building an extended form of visual literacy by studying and making images using a variety of representation techniques; learning to organize and structure two-dimensional and three-dimensional space, and designing with time-based and procedural media. Students learn to develop an individual style of idea-generation, experimentation, iteration, and critique as part of their creative and critical responses to visual culture.
Decision Processes OPIM290
pre-reqs:
none
-
This course is an intensive introduction to various scientific perspectives on the processes through which people make decisions. Perspectives covered include cognitive psychology of human problem-solving, judgment and choice, theories of rational judgment and decision, and the mathematical theory of games. Much of the material is technically rigorous. Prior or current enrollment in STAT 101 or the equivalent, although not required, is strongly recommended.
Epistemology PHIL231
pre-reqs:
none
-
Two basic assumptions of academic research are that there are truths and we can know them. In this introduction to metaphysics and epistemology, we will ask hard questions about the nature of reality and knowledge. On the metaphysics side, we'll ask what makes objects and people the same objects and people over time, and we'll explore how people can have free will. Depending on class interest, we may also explore some topics of contemporary metaphysics research, including the nature of truth itself and the basis of necessity and possibility. On the epistemology side, we will consider skeptical arguments, which purport to show that we can never know what's true, and we'll ask what's required for a belief to be justified, even if it fails to be knowledge. We may also explore other issues in contemorary epistemology, possibly including the role of probability in belief and formal epistemology, social aspects of belief-formation, and feminist epistemology. No philosophy background is required for the course but having taken another philosophy course may prove helpful.
Summer '13
King Arthur: Inventing the Past ENGL021
pre-reqs:
none
-
From the Middle Ages to the present, stories about King Arthur, the brave deeds of the knights of the Round Table, and Merlin's mysterious prophecies have mesmerized readers and audiences. In this course we will study nearly 1000 years of literature about King Arthur, beginning with Geoffrey of Monmouth's twelfth-century History of the Kings of Britain, and Sir Gawain and the Green Knight, and ending with Mark Twain, Alfred Lord Tennyson, and the fantasy fiction classic, The Once and Future King. Throughout the course, we will think about what legends about Arthur mean to the way we write history and the ways in which we view our collective pasts (and futures). Assignments will include response papers, an oral presentation, and a final exam.
Copyright and Culture ENGL105
pre-reqs:
none
-
In this course, we will look at the history of copyright law in Britain and the US, and we will explore the ways that copyright has both responded to new media and driven art and entertainment. How, for example, is a new medium (printed books, photography, recorded music, film, and the internet) defined in relation to existing media? How does the law accommodate shifting ideas and circumstances of authorship? What are the limits of fair use (US) and fair dealing (UK)? And how have writers, artists, engineers, and creative industries responded to various changes in copyright law? A major focus of the course will be the lessons of history for the current copyright debates over such issues as file sharing, the public domain, and new technologies. Making use of our surroundings, we will visit the sites where copyright began and was first practiced in eighteenth century London. And we will hear from experts in the field.
Spring '13
Great Discoveries in Archaeology ANTH127
pre-reqs:
none
-
Archaeology is a young and exciting scientific discipline created around 150 years ago as a way to discover and interpret the material remains of our human past. Many archaeological sites are world-famous: Pompeii, Troy, the pyramids of Egypt, the Parthenon of Athens, the Taj Mahal, and the temple complex at Angkor Wat, to name a few. In this course, we will examine many important archaeological sites in the "Old World" of the Mediterranean, Near East, and Asia. Using a thematic and comparative approach, we will delve deeper to explore the societies that produced these wonders, and examine cultural similarities and differences across the Old World. This course is a non-technical introduction for students interested in archaeology, history, art history, anthropology, or related subjects.
Software Design and Engineering CIS350
pre-reqs:
CIS240
Skills
-
Large systems versus small programs. Problems of scale. Software life-cycle: design phase, implementation phase, testing, maintenance. Software re-use. Tools/Toolkits/Libraries. Programming as a group activity. Support tools, e.g., SCCS and RCS. Standards. Software readability and structure. Reading code. Style sheets. Software Testing: role in process, test cases, testers. Documentation. Embedded documentation and external documentation.
Internet and Web Systems CIS455
pre-reqs:
familiarity with threads and concurrency
strong Java programming skills
Skills
-
This course focuses on the challenges encountered in building Internet and web systems: scalability, interoperability (of data and code), security and fault tolerance, consistency models, and location of resources, services, and data. We will examine how XML standards enable information exchange; how web services support cross-platform interoperability (and what their limitations are); how to build high-performance application servers; how "cloud computing" services work; how to perform Akamai-like content distribution; and how to provide transaction support in distributed environments. We will study techniques for locating machines, resources, and data (including directory systems, information retrieval indexing, ranking, and web search); and we will investigate how different architectures support scalability (and the issues they face). We will also examine ideas that have been proposed for tomorrow's Web, and we will see some of the challenges, research directions, and potential pitfalls. An important goal of the course is not simply to discuss issues and solutions, but to provide hands-on experience with a substantial implementation project. This semester's project will be a peer-to-peer implementation of a Googe-style search engine, including distributed, scalable crawling; indexing with ranking; and even PageRank. As a side-effect of the material of this course you will learn about some aspects of large-scale software development assimilating large APIs.
Criminology CRIM100
pre-reqs:
none
-
This introductory course examines the multi-disciplinary science of law-making, law-breaking, and law-enforcing. It reviews theories and data predicting where, when, by whom and against whom crimes happen. It also addresses the prevention of different offense types by different kinds of offenders against different kinds of people. Police, courts, prisons, and other institutions are critically examined as both preventing and causing crime. This course meets the general distribution requirement.
Fall '12
Asian American Literature ASAM002
pre-reqs:
none
-
An overview of Asian American literature from its beginnings at the turn of the twentieth century to the present. This course covers a wide range of Asian American novels, plays, and poems, situating them in the contexts of American history and minority communities and considering the variety of formal strategies these different texts take.
C++ Programming CIS190
-
This course will provide an introduction to programming in C++ and is intended for students who already have some exposure to programming in another language such as Java. C++ provides the programmer with a greater level of control over machine resources and are commonly used in situations where low level access performance are important. This course will illuminate the issues associated with programming at this level and will cover issues such as explicit memory management, pointers, the compilation process and debugging. The course will involve several programming projects which will provide students with the experience they need to program effectively in these languages.
Ruby on Rails Web Development CIS196
pre-reqs:
CIS120
Skills
-
This course will teach the fundamentals of developing web applications using Ruby on Rails, a rapid-development web framework developed by 37signals. The topics covered will start with Ruby, the language that powers Rails, and include all topics required to develop and deploy production-ready web applications with Rails. During the entire course, students will be working on a project of their own choosing which will develop as they learn additional concepts. Upon completion of the course this application will be deployed and accessible to the public. Students will be encouraged to continue building their applications even after the course given support from the Philadelphia Ruby community.
Operating Systems CIS380
pre-reqs:
CIS240
Skills
-
This course surveys methods and algorithms used in operating systems. Concurrent distributed operation is emphasized. The main topics covered are as follows: process synchronization; interprocess communications; concurrent/distributed programming languages; resource allocation and deadlock; virtual memory; protection and security; distributed operation; distributed data; performance evaluation.
Artificial Intelligence CIS391
pre-reqs:
CIS121
Skills
-
Artificial Intelligence is considered from the point of view of a resource--limited knowledge-based agent who must reason and act in the world. Topics include logic, automatic theorem proving, search, knowledge representation and reasoning, natural language processing, probabilistic reasoning, and machine learning. Programming assignments in Python.
Engineering Statistics ENM321
pre-reqs:
none
-
This course covers the topics in probability and statistics with an emphasize on the application of probability theories and statistical techniques to practical engineering problems. Mathematical derivations of theorems will be presented whenever it is necessary to illustrate the concepts involved, however.
Spring '12
Brain and Behavior BIBB109
pre-reqs:
none
-
Introduction to the structure and function of the vertebrate nervous system. We begin with the cellular basis of neuronal activities, then discuss the physiological bases of motor control, sensory systems, motivated behaviors, and higher mental processes. This course is intended for students interested in the neurobiology of behavior, ranging from animal behaviors to clinical disorders.
Design Principles of Information Systems CIS330
-
Introduction to database management systems and principles of design. The Entity-Relationship model as a modeling tool. The relational model: formal languages, the industry standard SQL, relational design theory, query optimization. Storing and querying XML data. Recursive queries. Views and data integration. Overview of system level issues: physical dataganization, indexing techniques, and transactions. Connecting databases to the Web. Course work requires programming in several different query languages, several written homeworks and a team project.
Computer Organization and Design CIS371
pre-reqs:
CIS240
Skills
-
This is the second computerganization course and focuses on computer hardware design. Topics covered are: (1) basic digital system design including finite state machines, (2) instruction set design and simple RISC assembly programming, (3) quantitative evaluation of computer performance, (4) circuits for integer and floating-point arithmetic, (5) datapath and control, (6) micro-programming, (7) pipelining, (8) storage hierarchy and virtual memory, (9) input/output, (10) different forms of parallelism including instruction level parallelism, data-level parallelism using both vectors and message-passing multi-processors, and thread-level parallelism using shared memory multiprocessors. Basic cache coherence and synchronization.
History of Modern Philosophy PHIL004
pre-reqs:
none
-
The explosion of scientific knowledge in early modern Europe cast doubt not only on the medieval worldview but also on its assumption of a theological guarantee for the possibility of human knowledge. Thus modern philosophers had to begin the project of establishing standards and foundations for human knowledge without a divine guarantee. The Reformation and the growth of secular states in the sixteenth and seventeenth centuries presented a similar challenge for modern moral and political philosophy, which thus faced the challenge of establishing norms for human conduct and their foundation without divine commands. We shall examine how the leading philosophers of modern times confronted these challenges, focusing primarily on the challenge for modern theories of knowledge but also considering at least some of the parallel developments in modern moral philosophy. Readings will include selections from Descartes, Leibniz, Locke, Berkeley, Hume, Kant, and in the nineteenth century, the great American philosopher Charles Sanders Peirce.
Fall '11
Networked Life CIS112 (MKSE112)
pre-reqs:
none
-
What kind of science is appropriate for understanding the Facebook? How does Google find what you're looking for... and exactly how do they make money doing so? What properties might we expect any social network to reliably have, and are there simple explanations for them? How does your position in an economic network (dis)advantage you? How are individual and collective behavior related in complex networks? What might we mean by the economics of spam? What do game theory and the Paris subway have to do with Internet routing? Networked Life looks at how our world is connected -- socially, economically, strategically and technologically -- and why it matters.
Computer Systems CIS240
pre-reqs:
none
Skills
-
You know how to program, but do you know how computers really work? How do millions of transistors come together to form a complete computing system? This bottom-up course begins with transistors and simple computer hardware structures, continues with low-level programming using primitive machine instructions, and finishes with an introduction to the C programming language. This course is a broad introduction to all aspects of computer systems architecture and serves as the foundation for subsequent computer systems courses, such as Digital Systemsganization and Design (CIS 371), Computer Operating Systems (CIS 380), and Compilers and Interpreters (CIS 341).
Automata, Computability, and Complexity CIS262
pre-reqs:
CIS160
-
This course explores questions fundamental to computer science such as which problems cannot be solved by computers, can we formalize computing as a mathematical concept without relying upon the specifics of programming languages and computing platforms, and which problems can be solved efficiently. The topics include finite automata and regular languages, context-free grammars and pushdown automata, Turing machines and undecidability, tractability and NP-completeness. The course emphasizes rigorous mathematical reasoning as well as connections to practical computing problems such as text processing, parsing, XML query languages, and program verification.
Experimental Psychology PSYC001
pre-reqs:
none
-
Introduction to the basic topics of psychology, including learning, motivation, cognition, development, abnormal, physiological, social, and personality.
Spring '11
Programming Languages and Techniques II CIS121
-
This is a course about Algorithms and Data Structures using the JAVA programming language. We introduce the basic concepts about complexity of an algorithm and methods on how to compute the running time of algorithms. Then, we describe data structures like stacks, queues, maps, trees, and graphs, and we construct efficient algorithms based on these representations. The course builds upon existing implementations of basic data structures in JAVA and extends them for the structures like trees, studying the performance of operations on such structures, and their efficiency when used in real-world applications. A large project introducing students to the challenges of software engineering concludes the course.
Python Programming CIS192
pre-reqs:
CIS120
Skills
-
Python is an elegant, concise, and powerful language that is useful for tasks large and small. Python has quickly become a popular language for getting things done efficiently in many in all domains: scripting, systems programming, research tools, and web development. This course will provide an introduction to this modern high-level language using hands-on experience through programming assignments and a collaborative final application development project.
Legal Studies LGST101
pre-reqs:
none
-
This course presents law as an evolving social institution, with special emphasis on the legal regulation of business. It considers basic concepts of law and legal process, in the U.S. and other legal systems, and introduces the fundamentals of rigorous legal analysis. An in-depth examination of contract law is included.
Calculus IV MATH241
pre-reqs:
MATH240
-
Sturm-Liouville problems,thogonal functions, Fourier series, and partial differential equations including solutions of the wave, heat and Laplace equations, Fourier transforms. Introduction to complex analysis. Use of symbolic manipulation and graphics software.
Modern Physics PHYS240
pre-reqs:
PHYS151
-
Special relativity, an introduction to the principles of quantum mechanics, properties of electrons, protons, neutrons, and the elements of atomic structure and nuclear structure. Electromagnetic radiation and photons; interaction of photons with electrons, atoms, and nuclei.
Fall '10
Archaeology ANTH001
pre-reqs:
none
-
An introduction to the history, concepts, and methods of the anthropological study of ancient peoples using archaeological illustrations to indicate the relationships of archaeological interpretations with cultural and physical anthropology.
Programming Languages and Techniques I CIS120
pre-reqs:
CIS110
prior programming
Skills
-
A fast-paced introduction to the fundamental concepts of programming and software design. This course assumes some previous programming experience, at the level of a high school computer science class CIS110. (If you got at least 4 in the AP Computer Science A AB exam, you will do great.) No specific programming language background is assumed: basic experience with any language (for instance Java, C, C++, VB, Python, Perl, Scheme) is fine. If you have never programmed before, you should take CIS 110 first.
Calculus III MATH240
pre-reqs:
MATH114
-
Linear algebra: vectors, matrices, systems of linear equations, eigenvalues and eigenvectors. Vector calculus: functions of several variables, vector fields, line and surface integrals, Green's, Stokes' and divergence theorems. Series solutions ofdinary differential equations, Laplace transforms and systems ofdinary differential equations. Use of symbolic manipulation and graphics software.
Intermediate Spanish I SPAN130
pre-reqs:
SPAN120
-
Spanish 130 is a first-semester intermediate-level language course that emphasizes the development of the four basic skills (reading, writing, listening and speaking skills) within a culturally based context. Class time will focus on communicative activities that combine grammatical concepts, relevant vocabulary, and cultural themes. Students will participate in pair, smallgroup and whole-class activities to practice linguistics skills in meaningful contexts. Major course goals include: the acquisition of intermediate-level vocabulary, the controlled use of the past tense, and the development of writing skills at a paragraph level with transitions.
Summer '10
Mathematical Foundations in Computer Science CIS160
pre-reqs:
none
-
What are the basic mathematical concepts and techniques needed in computer science? This course provides an introduction to proof principles and logics, functions and relations, induction principles, combinatorics and graph theory, as well as a rigorous grounding in writing and reading mathematical proofs.
Spring '10
Computer Programming CIS110
pre-reqs:
none
Skills
-
How do you program computers to accomplish complex tasks? How do you break down a complex task into simpler ones? CIS 110 is a Java lite" course that covers the fundamentals of object-oriented programming such as objects
Linux and Unix CIS191
pre-reqs:
CIS110
equivalent
Skills
-
Unix, in its many forms, runs much of the world's computer infrastructure, from cable modems and cellphones to the giant clusters that power Google and Amazon. This half-credit course provides a thorough introduction to Unix and Linux. Topics will range from critical basic skills such as examining and editing files, compiling programs and writing shell scripts, to higher level topics such as the architecture of Unix and its programming model. The material learned is applicable to many classes, including CIS 240, CIS 331, CIS 341, CIS 371/372, and CIS 380.
Calculus II MATH114
pre-reqs:
MATH104
-
Functions of several variables, vector-valued functions, partial derivatives and applications, double and triple integrals, conic sections, polar coordinates, vectors and analytic geometry, first and secondderdinary differential equations. Applications to physical sciences. Use of symbolic manipulation and graphics software in calculus.
Principles II PHYS151
pre-reqs:
PHYS170
-
Electric and magnetic fields; Coulomb's, Ampere's, and Faraday's laws; Maxwell's equations; emission, propagation, and absorption of electromagnetic radiation; interference, reflection, refraction, scattering, and diffraction phenomena.
Elementary Spanish II SPAN120
pre-reqs:
SPAN110
-
The continuation of Spanish 110, Spanish 120 is a second-semester elementary language course. See the description of Spanish 110.
Fall '09
Calculus I MATH104
pre-reqs:
none
-
Brief review of High School calculus, applications of integrals, transcendental functions, methods of integration, infinite series, Taylor's theorem. Use of symbolic manipulation and graphics software in calculus
Honors Physics I PHYS170
pre-reqs:
none
-
This course parallels and extends the content of PHYS 150, at a significantly higher mathematical level. Recommended for wellprepared students in engineering and the physical sciences, and particularly for those planning to major in physics. Classical laws of motion: interaction between particles; conservation laws and symmetry principles; rigid body motion; noninertial reference frames; oscillations.
Elementary Spanish I SPAN110
pre-reqs:
none
-
Spanish 110 is a first-semester elementary language course designed for students who have not previously studied Spanish. This course emphasizes the development of foundational reading, writing, listening, and speaking skills while exploring the rich cultural mosaic of the Spanish-speaking world. Students will participate in pair, small-group and whole-class activities that focus on meaningful and accurate communication skills in the target language.
The Novelist and The Neuroscientist WRIT077
pre-reqs:
none
-
The Arts and Sciences perform an intricate dance, each inspiring the other to reach new heights. Periodically, ideas formed in artistic expression prove scientifically sound. Such is the case with recent advances in neuroscience. For example, Walt Whitman promoted the idea of the body and soul being as one 130 years prior to the seminal work on emotions by Antonio Damasio. George Elliot wrote on the possibilities of freedom long before Elizabeth Gould provided evidence of adult neurogenesis. Jonah Lehrer's book Proust Was a Neuroscientist is an excellent example of critical writing and will serve as our base as we explore the intimate connection between art and science. Literary works, paintings, musical scores and scientific journal articles will be used as motivation for student writing. Students will draft and revise written work to create a mid-term and final portfolio, participate in group discussions and complete in-class writing assignments.