2013-2014 University Catalog 
    
    May 24, 2024  
2013-2014 University Catalog archived

Computer Science (CSCI)


Honors: An Honors Program in computer science is offered for qualified students; see the department head for details.

Department Head: Kenneth A. Lambert

Faculty

First date is the year in which the faculty member began service as regular faculty at the University. Second date is the year of appointment to the present rank.

Kenneth A. Lambert, Ph.D.—(1985)-1997
Professor of Computer Science
Ph.D., Rutgers University

Simon D. Levy, Ph.D.—(2002)-2008
Associate Professor of Computer Science
Ph.D., Brandeis University

Sara E. Sprenkle, Ph.D.—(2007)-2013
Associate Professor of Computer Science
Ph.D., University of Delaware

Joshua V. Stough, Ph.D.—(2009)-2009
Assistant Professor of Computer Science
Ph.D., University of North Carolina

Degrees/Majors/Minors

Major

Minor

Courses

  • CSCI 101 - Survey of Computer Science


    FDR: FM
    Credits: 4
    Planned Offering: Fall, Winter

    Not open to students with previous credit in computer science. An overview of the discipline of computer science achieved through an introductory-level survey of a number of major areas of computer science. Topics include algorithms used for computer solutions of important practical problems, computer programming, digital logic applied to computer circuitry, computer architecture, data representation and organization, Web page basics, computer networks, and theoretical limits of computation. Lectures and formal laboratories. Staff.



  • CSCI 102 - Introduction to Computational Modeling


    FDR: FM
    Credits: 4
    This course provides a hands-on understanding of the computational methods that support science and technology now and that will be essential for success in the science, engineering, and business worlds of the near future. The central theme of the course is building computational models of the processes that surround us every day, from the effects of drugs on the body to the formation of galaxies in the universe to the interactions of nations in the global economy. Classroom lectures and textbook readings are supplemented with lab exercises implementing the models using state-of-the-art software tools. Levy.



  • CSCI 111 - Fundamentals of Programming I


    FDR: FM
    Credits: 4
    Planned Offering: Fall, Winter

    A disciplined approach to programming with Python. Emphasis is on problem-solving methods, algorithm development, and object-oriented concepts. Lectures and formal laboratories. Staff.



  • CSCI 112 - Fundamentals of Programming II


    FDR: SC
    Credits: 4
    Planned Offering: Fall, Winter

    Prerequisite: CSCI 111. A continuation of CSCI 111. Emphasis is on the use and implementation of data structures, introductory algorithm analysis, and object-oriented design and programming with Python. Laboratory course. Staff.



  • CSCI 121 - Scientific Computing


    FDR: FM
    Credits: 4
    Planned Offering: Winter

    Not open to students who have taken CSCI 211 or higher. An introduction to computer programming for scientific applications and a survey of the main methodological areas of scientific computation. The course provides the tools needed for students to use computers effectively in scientific work, whether in physics, chemistry, mathematics, economics, biology, psychology, or any field involving quantitative work. Programming in Matlab, a scientific-computing software package, with a focus on topics relevant to students’ major fields of study. Lectures and formal labs. Levy.



  • CSCI 180 - FS: First-Year Seminar


    Credits: 3
    Planned Offering: Offered occasionally. Each first-year seminar topic is approved by the Dean of The College and the Committee on Courses and Degrees. Applicability to FDRs and other requirements varies.

    First-year seminar. Prerequisite: First-year standing. . Staff.



  • CSCI 209 - Software Development


    Credits: 3
    Planned Offering: Fall

    Prerequisite: CSCI 112. An examination of the theories and design techniques used in software development. Topics include the software life cycle, design patterns, the Unified Modeling Language, unit testing, refactoring, rapid prototyping, and program documentation. Sprenkle.



  • CSCI 210 - Computer Organization


    Credits: 3
    Planned Offering: Winter

    Prerequisite: CSCI 111. Multilevel machine organization studied at the levels of digital logic, microprogramming, conventional machine, operating system, and assembly language. Staff.



  • CSCI 211 - Algorithm Design and Analysis


    Credits: 3
    Planned Offering: Winter

    Prerequisites: CSCI 112 and MATH 121 or MATH 301. Methods for designing efficient algorithms, including divide-and-conquer, dynamic programming, and greedy algorithms. Analysis of algorithms for correctness and estimating running time and space requirements. Topics include advanced data structures, graph theory, network flow, and computational intractability. Staff.



  • CSCI 250 - Introduction to Robotics


    FDR: SC
    Credits: 4
    Planned Offering: Spring 2013 and alternate years

    Prerequisite: CSCI 111 or CSCI 121 or instructor consent. This course combines readings from the contemporary robotics literature with hands-on lab experience building robots with the popular Lego Mindstorms NXT toolkit (provided). The lab experience culminates with a peer-judged competition of robot projects proposed and built during the second half of the term. Levy.



  • CSCI 251 - iPhone Application Programming


    FDR: SC
    Credits: 4
    Planned Offering: Spring 2014 and alternate years

    Prerequisite: CSCI 209 or equivalent programming background approved by the instructor. In this course, students learn how to develop programs for the iPhone / iPad / iPod Touch, the most popular smart-phone platform in use today. Classroom lectures on the Objective-C language and CocoaTouch development environment are supplemented by extensive hands-on programming assignments, leading to an independent application project of the student’s devising. Williams School faculty guest lecture on the issues surrounding the iPhone App Store’s novel business model. The course culminates with a presentation of each student’s application, and an optional upload to the iPhone App Store to see how well the application sells. Lambert.



  • CSCI 252 - Neural Networks and Graphical Models


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: CSCI 112. A survey of the major developments in neural and belief networks, from the early perception models of the 1940s through the probabilistic Bayesian networks that are a “hot topic” in artificial intelligence today. Topics include the back-propagation algorithm, simple recurrent networks, Hopfield nets, Kohonen’s Self-Organizing Map, learning in Bayesian networks, and Dynamic Bayesian Networks, with readings from both popular textbooks and the scholarly literature. A major focus of the course is on writing programs to implement and apply these algorithms. Levy.



  • CSCI 253 - Genetic Algorithms


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: CSCI 112. A survey of the major developments in genetic/evolutionary algorithms, from the Simple Genetic Algorithm through modern multiobjective optimization methods. Topics include fitness landscapes, the Schema and Building Block Hypotheses, learning and the Baldwin Effect, and genetic programming, with readings from both popular textbooks and the scholarly literature. A major focus of the course is on writing programs to implement and apply these algorithms. Levy.



  • CSCI 295 - Language Laboratory


    Credits: 1-3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: Instructor consent. Introduction to a computer language, which will be chosen according to needs of students and of other computer science courses. Typical languages include Smalltalk, LISP, PROLOG. May be repeated once for degree credit if the languages are different. May only be used once toward the major requirements. Staff.



  • CSCI 297 - Topics in Computer Science


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: Instructor consent. Readings and conferences for a student or students on topics agreed upon by the directing staff. May be repeated for degree credit if the topics are different. A maximum of six credits may be used toward the major requirements. Staff.



  • CSCI 312 - Programming Language Design


    Credits: 3
    Planned Offering: Fall

    Prerequisites: CSCI 112 and 210, MATH 121 or 301. Formal language description tools, semantic concepts and syntactic constructs appropriate to diverse applications. Comparison of several high-level languages, such as Scheme, Java, ML, and PROLOG, and their implementations of these syntactic and semantic elements. Students learn the Scheme programming language and how to use it to write interpreters for other programming paradigms (object-oriented, logic-oriented, and type-inferencing). Staff.



  • CSCI 313 - Theory of Computation


    Credits: 3
    Planned Offering: Winter

    Prerequisites: MATH 121 or MATH 301 or instructor consent. A study of the principles of computer science embodied in formal languages, automata, computability, and computational complexity. Topics include context-free grammars, Turing machines, and the halting problem. Levy.



  • CSCI 315 - Artificial Intelligence


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: CSCI 209. Basic concepts of heuristic search, game playing, natural language processing, and intelligent systems, with a focus on writing programs in these areas. Course combines a discussion of philosophical issues with hands-on problem solving. Levy.



  • CSCI 317 - Database Management


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: CSCI 209. Database design with the entity-relationship model, the relational database model including normal forms and functional dependencies, SQL database query language, server-side scripting for Web access to databases. A major project to design and implement a database using a commercial package. Whaley.



  • CSCI 320 - Parallel Computing


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisites: CSCI 209 and 210. A survey of parallel computing including hardware, parallel algorithms, and parallel programming. The programming projects emphasize the message-passing paradigm. Staff.



  • CSCI 321 - Computer Networks


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: CSCI 209. Intended as a first course in communication networks for upper-level students. Covers concepts and protocols underlying modern computer networks. Topics include network architecture and layering, routing and switching, the TCP/IP protocol and network applications. Theory and programming. Staff.



  • CSCI 325 - Distributed Systems


    Credits: 4
    Planned Offering: Spring 2013 and alternate years.

    Prerequisite: CSCI 209 or instructor consent. In this course, students learn to design and develop distributed systems, i.e., collections of independent networked computers that function as single coherent systems. The concepts of communication, synchronization, consistency, replication, fault tolerance, and security are covered. In addition, case studies of real-world distributed systems (e.g., the Internet, distributed file systems, grid computing) are analyzed. Sprenkle.



  • CSCI 330 - Operating Systems


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisites: CSCI 209 and 210. Procedure initiation, environment construction, reentrancy, kernel functions, resource management, input/output, file structures, security, process control, semaphores and deadlock, and recovery procedures. The laboratory includes the opportunity to examine and modify the internals of an operating system. Staff.



  • CSCI 332 - Compiler Construction


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisites: CSCI 210, 211, 312, and 313. Lexical analysis, parsing, context dependence, translation techniques, optimization. Students are expected to produce a compiler for a suitably restricted language. Staff.



  • CSCI 335 - Software Engineering through Web Applications


    Credits: 4
    Planned Offering: Offered when interest is expressed and departmental resources permit

    Prerequisite: CSCI 209 or permission of instructor. In this course, students learn to develop high-performance software for Web applications using advanced software engineering techniques. The concepts of client-server computing, theories of usable graphical user interfaces, models for Web-based information retrieval and processing, and iterative development are covered. Sprenkle.



  • CSCI 340 - Interactive Computer Graphics


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: CSCI 209. In this course we develop, step by step, a reasonably complete 3D computer-graphics system with the ability to generate a photo-realistic image given a specification of shapes, poses, lighting, textures, and material properties, and camera parameters and perspective. Final projects consist of using your system to produce your own computer-animated short. The necessary mathematical background is developed during the course. Stough.



  • CSCI 341 - Digital Image Processing


    FDR: SC
    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit

    Prerequisite: CSCI 209. A survey of topics in the acquisition, processing and analysis of digital images, with much of the necessary mathematical background developed in the course. Topics in image processing include image enhancement and restoration, compression, and registration/alignment. Topics in image analysis include classification, segmentation, and more generally statistical pattern recognition. Throughout the course, human vision and perception motivate the techniques discussed. Stough.



  • CSCI 395 - Seminar


    Credits: 1
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: Instructor consent. Readings and conferences for a student or students on topics agreed upon with the directing staff. May be repeated for degree credit if the topics are different. A maximum of six credits may be used toward the major requirements. Staff.



  • CSCI 396 - Seminar


    Credits: 2
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: Instructor consent. Readings and conferences for a student or students on topics agreed upon with the directing staff. May be repeated for degree credit if the topics are different. A maximum of six credits may be used toward the major requirements. Staff.



  • CSCI 397 - Seminar


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: Instructor consent. Readings and conferences for a student or students on topics agreed upon with the directing staff. May be repeated for degree credit if the topics are different. A maximum of six credits may be used toward the major requirements. Staff.



  • CSCI 401 - Directed Individual Study


    Credits: 1
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: Permission of the department. Individual conferences. May be repeated for degree credit if the topics are different. Staff.



  • CSCI 402 - Directed Individual Study


    Credits: 2
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: Permission of the department. Individual conferences. May be repeated for degree credit if the topics are different. Staff.



  • CSCI 403 - Directed Individual Study


    Credits: 3
    Planned Offering: Offered when interest is expressed and departmental resources permit.

    Prerequisite: Permission of the department. Individual conferences. May be repeated for degree credit if the topics are different. Staff.



  • CSCI 493 - Honors Thesis


    Credits: 3-3
    Planned Offering: Fall-Winter

    Honors Thesis. Staff.





  •