新利18吧提款被禁用|新利体育18怎么样

编辑

Washington University in St. Louis > About > Bulletin WebSTAC | Site Map | wustl.edu | Print  Washington University in St. Louis Bulletin Bulletin > Engineering > Computer Science and Engineering Bulletin --> --> Computer Science and Engineering Overview Faculty Majors Minors Courses This is an archived copy of the 2014-15 bulletin. To access the most recent version of the bulletin, please visit http://bulletin.wustl.edu About Computer Science and Engineering The field of Computer Science and Engineering studies the design, analysis, implementation and application of computation and computer technology. Computing plays an important role in virtually all fields, including science and medicine, music and art, business, law, and human communication; hence the study of Computer Science and Engineering can be interdisciplinary in nature. Whether a student’s goal is to become a computing professional or to take a few courses to develop a basic understanding of computing for application to another field, the Department of Computer Science and Engineering at Washington University is committed to helping students gain the background they need. People are attracted to the study of computing for a variety of reasons. Consequently, the department offers a wide variety of academic programs, including a five-course minor, a second major, several undergraduate degrees, combined undergraduate and graduate programs, as well as undergraduate research opportunities and an undergraduate honors program. Each academic program can be tailored to a student’s individual needs. The breadth of Computer Science and Engineering may be best understood in terms of the general areas of software systems, hardware, theory and applications. Software Systems are collections of interacting software components that work together to support the needs of computer applications. Courses in this area help students gain a solid understanding of how software systems are designed and implemented. Examples include operating systems, which manage computational resources; network protocols, which are responsible for the delivery of information; programming languages, which support the construction of software systems and applications; and compilers, which translate computer programs into executable form. Hardware is the term used to describe the physical and mechanical components of a computer system. Courses in this area provide background in logic circuits, which carry out basic computations; computer architecture, which defines the organization of functional components in a computer system, and peripheral devices such as disks and robot arms that are controlled by the computer system. Theory is the study of the fundamental capabilities and limitations of computer systems. A background in theory helps students choose among competing design alternatives on the basis of their relative efficiency and helps them to verify that their implementations are correct. Theory courses provide background in algorithms, which describe how a computation is to be carried out; data structures, which specify how information is to be organized within the computer; analytical techniques to characterize the time or space requirements of an algorithm or data structure; and verification techniques to prove that solutions are correct. Applications are the ways in which computer technology is applied to solve problems, often in other disciplines. Most applications courses provide background not only in the applications themselves but also in how the applications are designed and implemented. Examples of application areas include artificial intelligence, computer graphics and robotics. A well-rounded study of computing includes training in each of these areas. However, depending on a student’s educational goals, he or she may prefer to concentrate on certain areas for greater depth of knowledge. To help students balance their elective courses, most upper-level departmental courses are numbered with a designation in one of these categories: S for software systems, M for machines (hardware), T for theory and A for applications. If a student’s interests are concentrated in the first two areas, a Computer Engineering degree might be best. If a student’s interests are concentrated in the second two, a Computer Science degree might be best. Students are encouraged to meet with a faculty adviser in the Department of Computer Science and Engineering to discuss their options and develop a plan consistent with their goals.    Undergraduate Programs These pages introduce the wide variety of undergraduate programs offered by the Department of Computer Science and Engineering and help as a starting point for students interested in studying computer science or computer engineering. We describe the Minor in Computer Science, the second major, the pre-medical option, the BS degree, the BSCS degree, the BS in Computer Engineering (see Majors and Minors tabs), combined undergraduate and graduate programs, the Undergraduate Research Opportunities Program, and the Cooperative Education Program. Additional information can be found at cse.wustl.edu , and our department’s faculty can offer further guidance and information about our programs. The Majors page contains some sample schedules for several of the Computer Science and Engineering degree options. These schedules demonstrate some of the many course schedules that can be selected in completing a computer science or computer engineering degree. All students in our programs are assigned an adviser, who can help design an individualized program, monitor a student’s progress, and consult about curriculum and career options. Many nonmajors take a CSE course to broaden their education. CSE 104 Web Development, CSE 131 Computer Science I, and CSE 200 Engineering and Scientific Computing do not require any computer science background. Dual Degree An alternative to the second major is the dual-degree program that leads to two undergraduate degrees, one in the School of Engineering & Applied Science and one from another school. For this option a student must complete all requirements (including distribution requirements) for both degrees. If Arts & Sciences is the other school, 150 credits are required for two degrees. (Only 120 credits are required for the second major because a single degree is earned.) See the Engineering Student Services Office (Lopata Hall, Room 303, 314/935-6100) for details. Pre-medical Option within Computer Science Students may pursue a pre-medicine curriculum in conjunction with either the BS degree or second major in computer science programs. Students interested in the pre-medical option should refer to the School of Engineering Bulletin section for details. Combined Undergraduate and Graduate Study The Department of Computer Science and Engineering offers in-depth graduate study in many areas. Students entering the graduate programs require a background in computer science fundamentals equivalent to at least the minor in computer science. Washington University undergraduates seeking admission to the graduate degree program to obtain a master’s degree in computer science or computer engineering do not need to take the Graduate Record Examination (GRE). For more information, contact the department office at 314/935-6160 or the associate chair at [email protected] . The Joint BS–MS This five-year program that leads to both the bachelor’s and master’s degrees offers the student an excellent opportunity to combine undergraduate and graduate studies in an integrated curriculum. The combination of the two programs extends the flexibility of the undergraduate curriculum to more advanced studies, thereby enabling students to plan their entire spectrum of computing studies in a more comprehensive educational framework. Consistent with the general requirements defined by the School of Engineering, a minimum of 150 units is required for completion of the BS–MS program. Provided that the 150-unit requirement is satisfied, up to 6 units of course work acceptable for the MS can be counted toward both the BS and MS requirement. Students in the BS–MS program can take advantage of the program’s flexibility by taking graduate courses toward the graduate degree while still completing the undergraduate degree requirements. Normal 0 false false false EN-US X-NONE X-NONE The BS–MS program offers early admission to the graduate programs in computer science and computer engineering in the junior year and allows a student to complete the master’s degree typically in only one additional year of study (instead of the usual three semesters). Undergraduate financial support is not extended for the additional semesters to complete the master’s degree requirements; however, scholarship support based upon a student’s major GPA, calculated at the end of the junior year, will be awarded automatically in the student’s final year of study. Students are classified as graduate students in their final year of study, and their tuition charges are at the graduate student rate. For information regarding scholarship amounts, please visit engineering.wustl.edu/ess/bsms-program.aspx . If students plan to apply to this program, it is recommended that they complete at least an undergraduate minor in computer science, three additional computer science courses at the 400-level, and one at the 500-level during their first four years. Students must apply to this program by September 1 of their senior year, and a minimum GPA of 3.0 is required of all applicants. BS–MBA Program The growing importance of computer-based information systems in the business environment has produced a sustained high demand for graduates with master’s degrees in business administration and undergraduate majors in computer science and engineering. Students should apply to this joint program by February 1 of their junior year. The application for admission to the Olin Business School is available through the business school . Applicants are judged on undergraduate performance, GMAT scores, summer and/or co-op work experience, recommendations and a personal interview. Research and Industry Experience If a student wants to become involved in computer science or computer engineering research or gain experience in industry while he or she is an undergraduate, there are many opportunities to do so. A few of these are listed below. Co-op: The Cooperative Education Program allows a student to get valuable experience working in industry while an undergraduate. Doing a Co-op can help give students another perspective on their education and may lead to full-time employment. Numerous companies participate in this program. More information is available from the Engineering Co-op and Internship Program that is part of the Career Center in the Danforth University Center, Suite 110. Research: Participating in an undergraduate research project is a great way to learn a lot about a specific area and find out what research is all about. Research projects are available either for pay or for credit through CSE 400E Independent Study. Visit our website for details. Honors Program: If a student maintains a 3.5 GPA and completes a thesis describing research that he or she has performed while an undergraduate, then the student will graduate “with distinction” and the thesis title will appear on the student’s transcript. Besides being a valuable experience, completing a thesis can be advantageous if the student applies to graduate school. When selecting this option, the student should register for CSE 499 Undergraduate Honors Thesis. Students in the Honors Program are encouraged to take several graduate-level courses and to serve as undergraduate teaching assistants for upper-level undergraduate courses. Computing Facilities The School of Engineering & Applied Science has numerous undergraduate laboratories that are accessible to all students regardless of their majors. In addition, the Department of Computer Science and Engineering maintains specialized instructional laboratories such as those in support of computer engineering classes. The department actively promotes a culture of strong undergraduate participation in research. Many undergraduates work in research labs with state-of-the-art equipment that provides them the opportunity to take part in computer science and computer engineering research. Sensor networks, high-speed routers, specialized FPGA hardware, wireless devices, RF tags, digital cameras, robots, large displays and multiprocessors are just a few of the hardware devices undergraduates often use in their projects. Opportunities for exploring modern software development techniques and specialized software systems further enrich the range of research options and help undergraduates sharpen their design and programming skills. Advanced Placement/Proficiency Students receiving a 4 or 5 on the AP Computer Science A exam are awarded credit for CSE 131 Computer Science I if they pass the CSE 131 proficiency exam. Any student can take the CSE 131 proficiency exam, and a suitable score will waive CSE 131 as a requirement. Upon request, the computer science department will evaluate a student for proficiency for any of our introductory courses. If a student is determined to be proficient in a given course, that course will be waived (without awarding credit) in the student’s degree requirements, and the student will be offered guidance in selecting a more advanced course. Questions should be directed to the associate chair at [email protected] . Undergraduate Courses Course requirements for the minor and majors may be fulfilled by CSE 131 Computer Science I, CSE 132 Computer Science II, CSE 240 Logic and Discrete Mathematics, CSE 241 Algorithms and Data Structures, and CSE courses with a letter suffix in any of the categories: software systems (S), hardware (M), theory (T) and applications (A). In addition, with approval of the instructor, up to 6 units of CSE 400E Independent Study can be used toward the CSE electives of any CSE degree. Other CSE courses provide credit toward graduation but not toward the CSE elective requirements for the second major, BSCS, BSCoE, or BS with a major in Computer Science. Undergraduates are encouraged to consider 500-level courses. If a student is interested in taking a course but is not sure if he or she has the needed prerequisites, the student should contact the instructor. Phone:314/935-6160 Departmental website:http://cse.wustl.edu/undergraduateprograms/Pages/default.aspx Chair Roch Guérin Harold B. and Adelaide G. Welge Professor of Computer Science PhD, California Institute of Technology Computer networks and communication systems Endowed Professor Michael R. Brent Henry Edwin Sever Professor of Engineering PhD, Massachusetts Institute of Technology Systems biology, computational and experimental genomics, mathematical modeling, algorithms for computational biology, bioinformatics Professors Jeremy Buhler PhD, Washington University Computational biology, genomics, algorithms for comparing and annotating large biosequences Roger D. Chamberlain DSc, Washington University Computer engineering, parallel computation, computer architecture, multiprocessor systems Ron K. Cytron PhD, University of Illinois at Urbana–Champaign Programming languages, middleware, real-time systems Christopher D. Gill DSc, Washington University Distributed real-time embedded systems, middleware, formal models and analysis of concurrency and timing Raj Jain PhD, Harvard University Wireless networks, network security, next generation Internet, sensor networks, telecommunications networks, performance analysis, traffic management, quality of service Chenyang Lu PhD, University of Virginia Real-time and embedded systems, wireless sensor networks, mobile computing Robert Pless PhD, University of Maryland Computer vision, medical imaging, sensor network algorithms, citizen science Weixiong Zhang PhD, University of California–Los Angeles Computational biology, genomics, machine learning and data mining, and combinatorial optimization Associate Professors Yixin Chen PhD, University of Illinois at Urbana–Champaign Mathematical optimization, artificial intelligence, planning and scheduling, data mining, learning data warehousing, operations research, data security Patrick Crowley PhD, University of Washington Computer and network systems, network security Sanmay Das PhD, Massachusetts Institute of Technology Design of algorithms for complex environments, computational social science, machine learning Viktor Gruev PhD, Johns Hopkins University Low power integrated sensory systems, integrated polarization imaging, focal plane spatiotemporal image sensors, current mode image sensors, sensory systems in 3-D fabrication technology, micro/nano fabrication, micro fluidics, and low power analog/digital integrated circuits Tao Ju PhD, Rice University Computer graphics, visualization, mesh processing, medical imaging and modeling Caitlin Kelleher PhD, Carnegie Mellon University Human-computer interaction, programming environments, and learning environments William D. Richard PhD, University of Missouri–Rolla Ultrasonic imaging, medical instrumentation, computer engineering Kilian Weinberger PhD, University of Pennsylvania Multi-task learning, convex optimization, metric learning, dimensionality reduction, manifold learning and machine learned ranking Assistant Professors Kunal Agrawal PhD, Massachusetts Institute of Technology Scheduling, resource allocation, transactional memory, cache-aware and cache-oblivious streaming Yasutaka Furukawa PhD, University of Illinois at Urbana-Champaign Computer vision and computer graphics Roman Garnett PhD, University of Oxford Active learning (especially with atypical objectives), Bayesian optimization, and Bayesian nonparametric analysis Brendan Juba PhD, Massachusetts Institute of Technology Theoretical approaches to artificial intelligence founded on computational complexity theory and theoretical computer science more broadly construed Angelina Lee PhD, Massachusetts Institute of Technology Designing linguistics for parallel programming, developing runtime system support for multithreaded software, and building novel mechanisms in operating systems and hardware to efficiently support parallel abstractions Benjamin Moseley PhD, University of Illinois at Urbana-Champaign Design and analysis of algorithms, online and approximation algorithms, parallel computing, large data analysis, green computing and algorithmic applications Research Faculty Sharlee Climer PhD, Washington University Computational biology, artificial intelligence, mathematical modeling, combinatorial optimization, pattern recognition Principal Lecturer Anne Bracy PhD, University of Pennsylvania Computer architecture, microarchitecture, performance modeling, instruction fusion Lecturers David Lu PhD, Washington University Robot navigation and human robot interaction Douglas Shook MS, Washington Univeristy Imaging sensor design, compiler design and optimization Todd Sproull PhD, Washington University Computer networking and mobile application development Senior Professors Jerome R. Cox Jr. ScD, Massachusetts Institute of Technology Computer system design, computer networking, biomedical computing Mark A. Franklin Hugo F. and Ina Champ Urbauer Professor of Engineering PhD, Carnegie Mellon University Computer architecture, systems analysis and parallel processing, storage systems design Jonathan S. Turner PhD, Northwestern University Design and analysis of internet routers and switching systems, networking and communications, algorithms Professors Emeriti Takayuki D. Kimura PhD, University of Pennsylvania Communication and computation, visual programming Seymour V. Pollack MS, Brooklyn Polytechnic Institute Intellectual property, information systems Majors Bachelor of Science in Computer Science The Bachelor of Science in Computer Science (BSCS) is designed for students planning a career in computer science and desiring a degree with an engineering flavor. Students working toward a BSCS degree must meet all requirements for a professional degree . In addition, there are the following departmental course requirements: Common Studies Program Requirements: Math 131Calculus I3 Math 132Calculus II3 Math 233Calculus III3 Math 217Differential Equations3 Physics 117AGeneral Physics I4 or Physics 197 Physics I Physics 118AGeneral Physics II4 or Physics 198 Physics II Chem 111AGeneral Chemistry I3 Chem 151General Chemistry Laboratory I2 Engr 310Technical Writing3 Humanities and social sciences electives18 Upon completing a course in the calculus sequence (Math 131–Math 132–Math 233) with a grade of C– or better, the student may apply to receive credit for the preceding courses in the calculus sequence. Computer Science Core Requirements CSE 131Computer Science I3 CSE 132Computer Science II3 CSE 240Logic and Discrete Mathematics3 CSE 241Algorithms and Data Structures3 CSE 332SObject-Oriented Software Development Laboratory3 CSE 436SSoftware Engineering Workshop3 CSE 260MIntroduction to Digital Logic and Computer Design3 or CSE 361S Introduction to Systems Software CSE 422SOperating Systems Organization3 or CSE 425S Programming Systems and Languages or CSE 431S Translation of Computer Languages Each of these core courses must be passed with a grade of C– or better. Computer Science Elective Requirements: At least 18 additional units in computer science or computer science-related courses with an S, M, T or A suffix of which at least one must be a theory (T) course, at least one must be a systems (S) course, and at least one must be a machine (M) or application (A) course. Students may use up to 6 units of approved independent work (CSE 400E, CSE 497–CSE 499) as part of their computer science electives. Such independent work is not classified as S, M, T or A. Additional Departmental Requirements: Math 309Matrix Algebra3 or ESE 318 Engineering Mathematics A or ESE 319 Engineering Mathematics B ESE 326Probability and Statistics for Engineering3 All courses taken to meet the above requirements (with the exception of the humanities and social sciences electives) cannot be taken on a pass/fail basis. See a sample schedule for Computer Science Degree Options in this Bulletin. The Major in Computer Science The most flexible degree option in computer science is the Bachelor of Science in Applied Science (Computer Science), known informally as the Major in Computer Science. The BS degree is designed for students who want a solid background for a career in computer science, with additional flexibility to choose a well-rounded variety of courses. Because it has fewer specific course requirements than the BSCS and does not require the School of Engineering & Applied Science common studies (such as advanced mathematics, physics, chemistry, etc.), the BS degree program leaves room for students to select courses according to their particular needs and interests. Also, the BS works well if a student wants to complete another major along with computer science. This program is therefore well-suited for students planning to enter medical school or law school. Students working toward a BS degree must meet all requirements for a Bachelor of Science Degree (see School of Engineering requirements ) and the following course requirements: Computer Science Core Requirements CSE 131Computer Science I3 CSE 132Computer Science II3 CSE 240Logic and Discrete Mathematics3 CSE 241Algorithms and Data Structures3 CSE 332SObject-Oriented Software Development Laboratory3 CSE 422SOperating Systems Organization3 or CSE 431S Translation of Computer Languages or CSE 425S Programming Systems and Languages Each of these core courses must be passed with a grade of C– or better. Computer Science Electives: At least 24 units of computer science electives, selected from any computer science course with an S, M, T or A suffix. Students may use up to 6 units of approved independent work (CSE 400E, CSE 497-CSE 499) as part of their computer science electives. Math Requirement: Calculus (Math 131–Math 132–Math 233), Probability (ESE 326, Math 3200, or the sequence QBA 120 Managerial Statistics I–QBA 121 Managerial Statistics II). Upon completing a course in the calculus sequence (Math 131–Math 132–Math 233) with a grade of C– or better, a student may apply to receive credit for the preceding courses in the calculus sequence. Additional Requirements: 8 units in natural sciences or psychology (courses taken in the following departments will be counted: Chemistry, Earth and Planetary Sciences, Physics, Psychology, Biology, Philosophy–Neuroscience–Psychology), C+ or better in CWP 100 College Writing 1 (unless waived), Engr 310 Technical Writing (or comparable demonstration of technical writing ability), and the humanities and social sciences electives required of all engineering students. Computer science and math courses taken for the above requirements as well as CWP 100 and Engr 310 cannot be taken on a pass/fail basis. See a sample schedule for Computer Science Degree Options in this Bulletin. Bachelor of Science in Computer Engineering Computer Engineering encompasses studies of hardware, software and systems issues that arise in the design, development and application of computer systems. Computer Engineering students must choose between a more hardware-focused or a more software-focused degree program, each with slightly different requirements. Students working toward a BSCoE degree must meet all requirements for a professional degree . Required courses and technical electives cannot be taken on a pass/fail basis. In addition, there are the following departmental course requirements: Common Studies Program Requirements: Math 131Calculus I3 Math 132Calculus II3 Math 217Differential Equations3 Math 233Calculus III3 Physics 117AGeneral Physics I4 or Physics 197 Physics I Physics 118AGeneral Physics II4 or Physics 198 Physics II Chem 111AGeneral Chemistry I3 Chem 151General Chemistry Laboratory I2 Engr 310Technical Writing3 Humanities and social sciences electives18 Upon completing a course in the calculus sequence (Math 131–Math 132–Math 233) with a grade of C– or better, a student may apply to receive credit for the preceding courses in the calculus sequence. Computer Engineering Core Requirements: CSE 131Computer Science I3 CSE 132Computer Science II3 ESE 230Introduction to Electrical and Electronic Circuits4 ESE 232Introduction to Electronic Circuits3 CSE 240Logic and Discrete Mathematics3 CSE 241Algorithms and Data Structures3 CSE 260MIntroduction to Digital Logic and Computer Design3 ESE 326Probability and Statistics for Engineering3 CSE 361SIntroduction to Systems Software3 CSE 362MComputer Architecture3 Each of these core courses must be passed with a grade of C– or better. Computer Engineering Focus Area: Each student must satisfy the requirements of at least one focus area. Hardware Focus: CSE 462MComputer Systems Design3 and one of the following CSE 463MDigital Integrated Circuit Design and Architecture3 CSE 464MDigital Systems Engineering3 CSE 465MDigital Systems Laboratory3 Software Focus: CSE 422SOperating Systems Organization3 and one of the following CSE 431STranslation of Computer Languages3 CSE 467SEmbedded Computing Systems3 CSE 473SIntroduction to Computer Networks3 Computer Engineering Technical Electives: At least 21 units of technical electives, drawn from 300-level or higher CSE (with suffix S, M, T, or A) or ESE courses. These units are in addition to the 6 units needed to meet the focus area requirement described above. Computer Engineering Senior Project: Each student must complete a senior project (CSE 497, 3 credits), either individually or as part of a group under the direction of a CSE or ESE professor. See a sample schedule for Computer Engineering Degree Options in this Bulletin. The Second Major in Computer Science The second major provides an opportunity to combine computer science with another degree program. A second major in computer science can expand a student’s career options and enable interdisciplinary study in areas such as cognitive science, computational biology, chemistry, physics, philosophy and linguistics. The second major also is well suited for students planning careers in medicine, law, business, architecture and fine arts. The requirements are as follows. There are no additional distribution or unit requirements for the second major. Computer Science Core Requirements: CSE 131Computer Science I3 CSE 132Computer Science II3 CSE 240Logic and Discrete Mathematics3 or Math 310 Foundations for Higher Mathematics CSE 241Algorithms and Data Structures3 CSE 332SObject-Oriented Software Development Laboratory3 Each of these core courses must be passed with a grade of C– or better. Computer Science Electives:  At least 15 units of computer science electives, selected from any CSE courses with an S, M, T or A suffix. Math Requirement:  Calculus (Math 131) and Probability (ESE 326 or Math 3200, or the sequence QBA 120-QBA 121). Capstone:  An additional 6 units of course work (or independent study) at the 300-level or higher with a significant computational component. The capstone may be completed in any department and provides an opportunity for interdisciplinary study, such as a thesis that applies computer science to another field. A student’s CSE adviser must approve the capstone in advance. Minors The Minor in Computer Science If a student’s goal is a basic foundation in computer science for application to another field, but he or she is not planning a career as a practicing computer scientist, the Minor in Computer Science is a good choice. The minor consists of five CSE courses, including three core courses and two electives. The core courses provide an introduction to computer science concepts and problem-solving techniques. The electives offer flexibility to integrate computer science studies with a major area. Students select the courses that are most important to them, whether their interests are in fine arts, linguistics, psychology, philosophy, law, business, medicine, the natural sciences or anything else. Units required: 15 Required courses: CSE 131Computer Science I3 CSE 132Computer Science II3 CSE 241Algorithms and Data Structures3 Elective courses: Any two additional CSE courses selected among CSE 200 Engineering and Scientific Computing, CSE 240 Logic and Discrete Mathematics and any CSE course with a T, S, M or A suffix. Additional Information All courses used for the Computer Science minor must be taken for a grade, and the student must earn a C– or better. Should the student decide to go further in the field, all courses in the Computer Science minor, except CSE 200, can be used toward a second major in computer science or a degree in computer science or computer engineering. The Minor in Bioinformatics Mindful of the emerging opportunities at the interface of biology and computer science, the Department of Biology and Department of Computer Science and Engineering have fashioned a Bioinformatics Minor that serves students from both departments as well as other students from the natural sciences and engineering with an interest in this field. Units required: 23–24 units as described below Core courses: Biol 2960Principles of Biology I4 Biol 2970Principles of Biology II4 CSE 131Computer Science I3 CSE 241Algorithms and Data Structures3 Math 2200Elementary Probability and Statistics3 or Math 3200 Elementary to Intermediate Statistics and Data Analysis or ESE 326 Probability and Statistics for Engineering Advanced biology elective: Choose one of: Biol 3492Laboratory Experiments with Eukaryotic Microbes3 Biol 4181Population Genetics3 Biol 4342Research Explorations in Genomics4 Biol 437Laboratory on DNA Manipulation4 CSE elective: Choose one of: CSE 514AData Mining3 CSE 584AAlgorithms for Biosequence Comparison3 CSE 587AAlgorithms for Computational Biology3 Additional Information It is anticipated that for those students majoring in Biology or CSE, some portion of the introductory sequence will overlap with courses required for the major, and these courses will be applicable to both the major and the minor. Upper-level courses in Biology and CSE used to fulfill the minor may not be used to fulfill another major or minor in Arts & Sciences. A minimum grade of C– is required for all courses to count toward the minor. Courses   E81 CSE 104 Web Development This comprehensive course does not assume prior programming background or web design experience. Explores elementary principles that go into designing, creating and publishing an effective website. Topics include the production process, design metaphors, interface/information design, page layout concepts, graphics preparation, color theory, development tools, HTML, style sheets, basic scripting techniques, search engine optimization and site maintenance/marketing strategies.Credit 3 units. EN: DU, SU, TU E81 CSE 131 Computer Science I An introduction to software concepts and implementation, emphasizing problem solving through abstraction and decomposition. Introduces processes and algorithms, procedural abstraction, data abstraction, encapsulation and object-oriented programming. Recursion, iteration and simple data structures are covered. Concepts and skills are mastered through programming projects, many of which employ graphics to enhance conceptual understanding. Java, an object-oriented programming language, is the vehicle of exploration. Active-learning sessions are conducted in a studio setting in which students interact with each other and the professor to solve problems collaboratively. Prerequisites: comfort with algebra and geometry at the high school level is assumed. Patience, good planning and organization promote success. This course assumes no prior experience with programming.Credit 3 units. EN: DU, SU, TU E81 CSE 131R Seminar: Computer Science I A seminar and discussion session that complements the material studied in CSE 131. Provides background and breadth for the disciplines of computer science and computer engineering. Features guest lectures and highly interactive discussions of diverse computer science topics. Highly recommended for majors and for any student seeking a broader view of computer science or computer engineering. Pass/fail only. Credit 1 unit. E81 CSE 132 Computer Science II CSE 132 builds on CSE 131’s introduction to software systems as collections of communicating components. CSE 132 emphasizes more sophisticated uses of object-oriented concepts (inheritance, polymorphism, method overloading and multiple inheritance of interfaces) and techniques for managing communication among software components. An introduction to packages, file I/O, parsing, graphical user interfaces, exception handling, threads, concurrency, synchronization and network programming is provided. Algorithms and data structures are presented as needed to support discussion of these topics. Concepts and skills are mastered through software projects, many of which employ graphics to enhance conceptual understanding. Java, an object-oriented programming language, is the vehicle of exploration. Prerequisite: CSE 131 or equivalent.Credit 3 units. EN: DU, SU, TU E81 CSE 200 Engineering and Scientific Computing This course provides an introduction to numerical methods for scientific computation that are relevant to engineering problems. Topics addressed include interpolation, integration, linear systems, least-squares fitting, nonlinear equations and optimization and initial value problems. Basic procedural programming concepts (procedural and data abstraction, iteration, recursion) are covered using MATLAB. C is briefly covered so the students understand that the algorithms and programming concepts apply in both. Prerequisite: Math 132.Credit 3 units. EN: DU, SU, TU E81 CSE 220S Software Design and Development Studio This is a lab course that provides practical experience in designing, implementing, testing, documenting and supporting a medium-sized software application. Topics covered include application and user interface specification, module and API design, code re-use, code review, software maintenance and support, unit and integration testing, and debugging procedures. Students gain experience in the application of common algorithms, design patterns and data structures to novel problems. Students have a choice of working in Java or C++, and work both individually and in groups. Specific application areas vary by semester. Prerequisites: sophomore standing and CSE 132. CSE 241 is recommended.Credit 3 units. EN: DU, SU, TU E81 CSE 232 Programming Skills Workshop This course provides an overview of practical implementation skills. Topics include compilation and linking, memory management, pointers and references, using code libraries, testing and debugging. Prerequisites: CSE 132.Credit 1 unit. E81 CSE 240 Logic and Discrete Mathematics Introduces elements of logic and discrete mathematics that allow reasoning about computational structures and processes. Generally, the areas of discrete structures, proof techniques and computational models are covered. Topics typically include propositional and predicate logic; sets, relations, functions and graphs; proof by contradiction, induction and reduction; and finite state machines and regular languages. Prerequisite: CSE 131 or other introductory programming background.Credit 3 units. EN: DU, SU, TU E81 CSE 241 Algorithms and Data Structures Study of fundamental algorithms, data structures and their effective use in a variety of applications. Emphasizes importance of data structure choice and implementation for obtaining the most efficient algorithm for solving a given problem. A key component of this course is worst-case asymptotic analysis, which provides a quick and simple method for determining the scalability and effectiveness of an algorithm. Other topics covered generally include: divide-and-conquer algorithms, sorting algorithms, decision tree lower-bound technique, hashing, binary heaps, skip lists, B-trees, basic graph algorithms. Prerequisites: CSE 131, CSE 240 (or some basic discrete mathematics background) is strongly recommended.Credit 3 units. EN: DU, SU, TU E81 CSE 260M Introduction to Digital Logic and Computer Design Introduction to design methods for digital logic and fundamentals of computer architecture. Boolean algebra and logic minimization techniques; sources of delay in combinational circuits and effect on circuit performance; survey of common combinational circuit components; sequential circuit design and analysis; timing analysis of sequential circuits; use of computer-aided design tools for digital logic design (schematic capture, hardware description languages, simulation); design of simple processors and memory subsystems; program execution in simple processors; basic techniques for enhancing processor performance; configurable logic devices. Prerequisites: CSE 131 or comparable programming experience.Credit 3 units. EN: DU, SU, TU E81 CSE 316A Social Network Analysis This course looks at social networks and markets through the eyes of a computer scientist. We look at questions including, “Why are acquaintances rather than friends more likely to get us job opportunities?” and, “Why do the rich get richer?” We begin by studying graph theory (allowing us to study the structure) and game theory (allowing us to study the interactions) of social networks and market behavior at the introductory level. Among other topics, we study auctions, epidemics, and the structure of the Internet (including web searches). This course examines the intersection of computer science, economics, sociology, and applied mathematics. Prerequisites: CSE 241 and basic knowledge of probability and statistics. Credit 3 units. EN: SU, TU E81 CSE 320S Software Design and Development Studio This is a lab course that provides practical experience in designing, implementing, testing, documenting and supporting a medium-sized software application. Topics covered include application and user interface specification, module and API design, code re-use, code review, software maintenance and support, unit and integration testing, and debugging procedures. Students gain experience in the application of common algorithms, design patterns and data structures to novel problems. Students have a choice of working in Java or C++, and work both individually and in groups. Specific application areas vary by semester. Prerequisites: junior standing and CSE 132. CSE 241 is recommended.Same as CSE 220SCredit 3 units. EN: DU, SU, TU E81 CSE 330S Rapid Prototype Development and Creative Programming This course uses web development as a vehicle for developing skills in rapid prototyping. Students acquire the skills to build a Linux web server in Apache, to write a web site from scratch in PHP, to run an SQL database, to perform scripting in Python, to employ the Django web framework and to develop modern web applications in client-side and server-side Javascript. The course culminates with a creative project in which students are able to synthesize the course material into a project of their own interest. The course implements an interactive studio format: after a formal presentation of a topic, students develop a related project under the supervision of the instructor. Prerequisite: CSE 131 or an equivalent programming background. Credit 3 units. EN: DU, SU, TU E81 CSE 332S Object-Oriented Software Development Laboratory Intensive focus on practical aspects of designing, implementing and debugging object-oriented software. Topics covered include developing, documenting and testing representative applications using object-oriented and generic frameworks and C++. Design and implementation based on frameworks are central themes to enable the construction of reusable, extensible, efficient and maintainable software. Prerequisites: CSE 132 and 241.Credit 3 units. EN: DU, SU, TU E81 CSE 341T Parallel and Sequential Algorithms The course aims to teach how to design, analyze and implement parallel and sequential algorithms. The emphasis is on teaching fundamental principles and design techniques that easily transfer over to parallel programming. These techniques include divide and conquer, contraction, the greedy method, etc. The course does have a significant programming component using Cilk Plus, a parallel programming language. This is the first offering of this experimental course with limited class size. Prerequisite: CSE 240. CSE 241 is recommended, but the course can be taken without it with instructor permission. Credit 3 units. EN: DU, SU, TU E81 CSE 361S Introduction to Systems Software Introduction to the hardware and software foundations of computer processing systems. Examines the process whereby computer systems manage, interpret and execute applications. Covers fundamental algorithms for numerical computation, memory organization and access, storage allocation, and the sequencing and control of peripheral devices. Weekly laboratories, exercises and a final laboratory project. Prerequisite: CSE 131.Credit 3 units. EN: DU, SU, TU E81 CSE 362M Computer Architecture Study of interaction and design philosophy of hardware and software for digital computer systems. Processor architecture, instruction set architecture, assembly language, memory hierarchy design, I/O considerations. Comparison of computer architectures. Prerequisite: CSE 260M.Credit 3 units. EN: DU, SU, TU E81 CSE 365S Elements of Computing Systems All computers are made up of 0s and 1s. However, the conceptual gap between the 0s and 1s and the day to day operation of modern computers is enormously wide. This fast-paced course aims to bridge the divide by starting with simple logic gates and building up the levels of abstraction until one can create games like Tetris. There is no specific programming language requirement, but some experience with programming is needed. Prerequisite: CSE 131 or equivalent Credit 3 units. EN: SU, TU E81 CSE 400 Independent Study Investigation of a topic in computer science and engineering of mutual interest to the student and a mentor. Interested students are encouraged to approach and engage faculty to develop a topic of interest. A form declaring the agreement must be filed in the departmental office. This course carries university credit, but does not count toward a CSE major or minor. To arrange for CSE major or minor credit for independent study, a student must enroll in CSE 400E instead of CSE 400. See also: CSE 400E. Credit variable, maximum 6 units. E81 CSE 400E Independent Study Investigation of a topic in computer science and engineering of mutual interest to the student and a mentor. Interested students are encouraged to approach and engage faculty to develop a topic of interest. A form declaring the agreement must be filed in the departmental office. Credit earned for CSE 400E can be counted toward a student’s major or minor program, with the consent of the student’s adviser. See also: CSE 400. Credit variable, maximum 6 units. E81 CSE 422S Operating Systems Organization Exploration of operating systems as managers of shared resources. Using UNIX and Windows XP as experimental frameworks, students study algorithms and data structures that support essential operating systems services. Concepts are reinforced through programming exercises and comparative studies. Topics include: proportional sharing and real-time scheduling of processes and threads, I/O facilities, memory management, virtual memory, device management, concurrent programming, file system organization and distributed object computing. Prerequisites: CSE 332S and CSE 361S.Credit 3 units. EN: DU, SU, TU E81 CSE 425S Programming Systems and Languages A systematic study of the principles, concepts and mechanisms of computer programming languages: their syntax, semantics and pragmatics; the processing and interpretation of computer programs; programming paradigms; and language design. Illustrative examples are selected from a variety of programming language paradigms. Prerequisites: CSE 132, CSE 240 and CSE 241.Credit 3 units. EN: DU, SU, TU E81 CSE 431S Translation of Computer Languages The theory of language recognition and translation is introduced in support of compiler construction for modern programming languages. Topics include syntactic and semantic analysis, symbol table management, code generation and runtime libraries. A variety of parsing methods is covered, including top-down and bottom-up. Machine problems culminate in the course project, for which students construct a working compiler. Prerequisites: CSE 132, CSE 240 and CSE 241.Credit 3 units. EN: DU, SU, TU E81 CSE 432S Pattern-Oriented Software Design and Development Intensive focus on design and implementation of software using design patterns. Particular emphasis on successive refinement based on identification of unresolved design forces at each step of the design process, and on application of patterns to guide design refinement. Design implementations are conducted in Java and C++ in a team setting, with weekly presentations and critiques of design and implementation decisions and outcomes throughout the course. Prerequisites: CSE 332S or graduate standing, and proficiency in Java and C++ software development. Credit 3 units. EN: DU, TU E81 CSE 436S Software Engineering Workshop An introduction and exploration of concepts and issues related to large-scale software systems development. Areas of exploration include technical complexities, organization issues and communication techniques for large-scale development. Students participate through teams emulating industrial development. The projects cover the principal system development lifecycle phases from requirements analysis, to software design and to final implementation. Issues relating to real-time control systems, human factors, reliability, performance, operating costs, maintainability and others are addressed and resolved in a reasonable manner. Prerequisite: CSE 332S. Credit 3 units. EN: DU, SU, TU E81 CSE 441T Advanced Algorithms Provides a broad coverage of fundamental algorithm design techniques with the focus on developing efficient algorithms for solving combinatorial and optimization problems. The topics covered include: greedy algorithms, dynamic programming, linear programming, NP-completeness, approximation algorithms, lower-bound techniques and online algorithms. Throughout this course there is an emphasis on correctness proofs and the ability to apply the techniques taught to design efficient algorithms for problems from a wide variety of application areas. Prerequisite: CSE CSE 241. Credit 3 units. EN: DU, SU, TU E81 CSE 450A Video Game Programming This course teaches the core aspects of a video game developer’s toolkit. Students work in groups and with a large game software engine to make a full-featured video game. Students have the opportunity to work on topics in graphics, artificial intelligence, networking, physics, user interface design and other topics. Prerequisite: CSE 332S.Credit 3 units. EN: DU, SU, TU E81 CSE 452A Computer Graphics Introduction to computer graphics. Input, representation, manipulation and display of geometric information. Two-dimensional display of three-dimensional objects: perspective, hidden surface, shading, animation. Display and input devices. Issues in designing interactive graphics systems. Issues in building 3-dimensional renderers. Students develop interactive graphics programs with a standard graphics package and using various graphics input and output devices. Prerequisites: CSE 332S and basic knowledge in linear algebra. Credit 3 units. EN: DU, SU, TU E81 CSE 460T Switching Theory Advanced topics in switching theory as employed in the synthesis, analysis and design of information processing systems. Combinational techniques: minimization, multiple output networks, state identification and fault detection, hazards, testability and design for test are examined. Sequential techniques: synchronous circuits, machine minimization, optimal state assignment, asynchronous circuits and built-in self-test techniques. Prerequisite: CSE 260M or equivalent.Credit 3 units. EN: DU, SU, TU E81 CSE 462M Computer Systems Design Introduction to modern design practices, including the use of FPGA design methodologies. Students use a commercial CAE/CAD system for VHDL-based design and simulation while designing a selected computation system. Prerequisites: CSE 361S and CSE 362M. Credit 3 units. EN: DU, SU, TU E81 CSE 463M Digital Integrated Circuit Design and Architecture This is a project-oriented course on digital VLSI design. The course material focuses on bottom-up design of digital integrated circuits, starting from CMOS transistors, CMOS inverters, combinational circuits and sequential logic designs. Important design aspect of digital integrated circuits such as propagation delay, noise margins and power dissipation are covered in the class, as well as design challenges in submicron technology are addressed. The students design combinational and sequential circuits at various levels of abstraction using state-of-the-art CAD environment provided by Cadence Design Systems. The goal of the class is to design a microprocessor in 0.5-micron technology that can be fabricated by a semiconductor foundry. Prerequisites: CSE 260 and ESE 232.Credit 3 units. EN: DU, SU, TU E81 CSE 464M Digital Systems Engineering Design and characterization of digital circuits, reliable and predictable interconnection of digital devices, and information transfer over busses and other connections. Topics include: review of MOSFET operation; CMOS logic gate electrical characteristics; system and single-point noise margin and noise budgets; figures of merit for noise-margin and power-delay product, and trade-off between noise margin and propagation delay; transmission-line driving including reflection, termination, nonzero transition time, lumped and distributed capacitance loads, nonlinear terminations, and applicable conditions for lumped approximations; coupled transmission lines, forward and backward crosstalk, short line approximations, ground bounce, and simultaneous switching noise; timing, clocking and clock distribution for digital circuits; prediction of metastability error rates and design for acceptable probability of failure. Examples and design exercises using systems and interconnections selected from current Computer Engineering practice such as RAMBUS, PCI bus, GTL, LVDS and others. Prerequisites: ESE 232 and CSE 362M.Credit 3 units. EN: DU, SU, TU E81 CSE 465M Digital Systems Laboratory Procedures for reliable digital design, both combinational and sequential; understanding manufacturers specifications; use of special test equipment; characteristics of common SSI, MSI and LSI devices; assembling, testing and simulating design; construction procedures; maintaining signal integrity. Several single-period laboratory exercises, several design projects and application of a microprocessor in digital design. One lecture and one laboratory period a week. Prerequisites: CSE 260M and CSE 361S.Credit 3 units. EN: DU, SU, TU E81 CSE 467S Embedded Computing Systems Introduces the issues, challenges and methods for designing embedded computing systems — systems designed to serve a particular application, which incorporate the use of digital processing devices. Examples of embedded systems include PDAs, cellular phones, appliances, game consoles, automobiles and iPod. Emphasis is given to aspects of design that are distinct to embedded systems. The course examines hardware, software and system-level design. Hardware topics include microcontrollers, digital signal processors, memory hierarchy and I/O. Software issues include languages, run-time environments and program analysis. System-level topics include real-time operating systems, scheduling, power management and wireless sensor networks. Students perform a course project on a real wireless sensor network testbed. Prerequisite: CSE 361S. Credit 3 units. EN: DU, SU, TU E81 CSE 473S Introduction to Computer Networks A broad overview of computer networking. Topics include layered models of networking protocols, basics of physical layer, data link layer, flow control, error control; local area networks, e.g., Ethernet; wireless networks, IEEE 802.11 (WiFi), cellular wireless networks; Internet protocols, transport protocols, routing algorithms; network security, network management, ATM networks and protocols for networking applications, such as World Wide Web, email and file transfer. Prerequisite: CSE 241.Credit 3 units. EN: DU, SU, TU E81 CSE 497 Senior Project I Implementation of a substantive project on an individual basis, involving one or more major areas in computer science. Problems pursued under this framework may be predominantly analytical, involving exploration and extension of theoretical structures, or may pivot around the design/development of solutions for particular applications drawn from areas throughout the University and/or community. In either case, the project serves as a focal point for crystallizing the concepts, techniques and methodologies encountered throughout the curriculum. Students intending to take CSE 497-498 must submit a project proposal for approval by the department during the spring semester of the junior year. Prerequisite: senior standing. Credit 3 units. E81 CSE 498 Senior Project II Implementation of a substantive project on an individual basis, involving one or more major areas in computer science. Problems pursued under this framework may be predominantly analytical, involving exploration and extension of theoretical structures, or may pivot around the design/development of solutions for particular applications drawn from areas throughout the University and/or community. In either case, the project serves as a focal point for crystallizing the concepts, techniques and methodologies encountered throughout the curriculum. Students intending to take CSE 497-498 must submit a project proposal for approval by the department during the spring semester of the junior year. Prerequisite: senior standing.Credit 3 units. E81 CSE 499 Undergraduate Honors Thesis Working closely with a faculty member, the student investigates an original idea (algorithm, model technique, etc.), including a study of its possible implications, its potential application and its relationship to previous related work reported in the literature. Contributions and results from this investigation are synthesized and compiled into a publication-quality research paper presenting the new idea. Prerequisites: a strong academic record and permission of instructor.Credit 3 units. E81 CSE 500 Independent Study Credit variable, maximum 3 units. E81 CSE 501N Programming Concepts and Practice An introduction to software concepts and implementation, emphasizing problem solving through abstraction and decomposition. Introduces processes and algorithms, procedural abstraction, data abstraction, encapsulation and object-oriented programming. Recursion, iteration and simple data structures are covered. Concepts and skills are mastered through programming projects, many of which employ graphics to enhance conceptual understanding. Java, an object-oriented programming language, is the vehicle of exploration. Active-learning sessions are conducted in a studio setting in which students interact with each other and the professor to solve problems collaboratively. Prerequisites: comfort with algebra and geometry at the high school level is assumed. Patience, good planning and organization promotes success. This course assumes no prior experience with programming Same as CSE 131Credit 3 units. EN: DU, SU, TU E81 CSE 502N Fundamentals of Computer Science Study of fundamental algorithms, data structures and their effective use in a variety of applications. Emphasizes importance of data structure choice and implementation for obtaining the most efficient algorithm for solving a given problem. A key component of this course is worst-case asymptotic analysis, which provides a quick and simple method for determining the scalability and effectiveness of an algorithm. Other topics covered generally include: divide-and-conquer algorithms, sorting algorithms, decision tree lower bound technique, hashing, binary heaps, skip lists, B-trees, basic graph algorithms. Prerequisites: CSE 131, CSE 240 (or some basic discrete mathematics background) strongly recommended. Same as CSE 241Credit 3 units. EN: DU, SU, TU E81 CSE 503N Rapid Prototype Development and Creative Programming This course uses web development as a vehicle for developing skills in rapid prototyping. Students acquire the skills to build a Linux web server in Apache, to write a web site from scratch in PHP, to run an SQL database, to perform scripting in Python, to employ the Django web framework, and to develop modern web applications in client-side and server-side Javascript. The course culminates with a creative project in which students are able to synthesize the course material into a project of their own interest. The course implements an interactive studio format: after a formal presentation of a topic, students develop a related project under the supervision of the instructor. Prerequisite: CSE 131 or an equivalent programming background.Same as CSE 330SCredit 3 units. EN: DU, SU, TU E81 CSE 504N Object-Oriented Software Development Laboratory Intensive focus on practical aspects of designing, implementing and debugging object-oriented software. Topics covered include developing, documenting, and testing representative applications using object-oriented and generic frameworks and C++. Design and implementation based on frameworks are central themes to enable the construction of reusable, extensible, efficient, and maintainable software. Prerequisites: CSE 132 and 241.Same as CSE 332SCredit 3 units. EN: DU, SU, TU E81 CSE 506M Principle and Methods of Micro- and Nano-fabrication An introduction to the fundamentals of micro- and nano-fabrication processes with emphasis on cleanroom practices. The physical principles of optical lithography, electron-beam lithography, alternative nanolithography techniques, and thin film deposition and metrology methods. The physical and chemical processes of wet and dry etching. Cleanroom concepts and safety protocols. Sequential micro-fabrication processes involved in the manufacture of microelectronic and photonic devices. Imaging and characterization of micro- and nano-structures. Examples of practical existing and emerging micro- and nano-devices. Prerequisite: Chem 111A or consent from instructor.Credit 3 units. EN: DU, SU, TU E81 CSE 507A Technology Entrepreneurship This is a course for students who plan to be, or work with, entrepreneurs. An entrepreneurial mindset is needed to create or grow economically viable enterprises, be they new companies, new groups within companies, or new university laboratories. This course aims to cultivate an entrepreneurial perspective with particular emphasis on information technology-related activities. The course is jointly offered for business and CSE students, allowing for acculturation between these disciplines. In addition to an introductory treatment of business and technology fundamentals, course topics include: business ethics, opportunity assessment, team formation, financing, intellectual property and university technology transfer. The course features significant participant and guest instruction from experienced practitioners. Prerequisites: none. Credit 3 units. E81 CSE 511A Introduction to Artificial Intelligence The discipline of artificial intelligence (AI) is concerned with building systems that think and act like humans or rationally on some absolute scale. This course is an introduction to the field, with special emphasis on sound modern methods. The topics include knowledge representation, problem solving via search, game playing, logical and probabilistic reasoning, planning, machine learning (decision trees, neural nets, reinforcement learning, and genetic algorithms) and machine vision. Programming exercises concretize the key methods. The course targets graduate students and advanced undergraduates. Evaluation is based on written and programming assignments, a midterm exam and a final exam. Prerequisite: CSE 132, CSE 240 and CSE 241, or permission of the instructor. Credit 3 units. E81 CSE 512A Statistical Computing for Scientific Research Provides students a solid understanding of statical computing issues that concern empirical researchers in different sciences. Topics covered include: computer architecture, Monte Carlo simulation, bootstrapping and jackknifing, nonparametric smoothing, and Markov chain Monte Carlo methods. Prerequisite: basic statistics or permission of the instructor. Students are assumed to be familiar with: basic calculus, probability, regression, MLE theory and simple programming.Credit 3 units. E81 CSE 514A Data Mining Many scientific computing problems are, by nature, statistical. Such problems appear in many domains, such as text analysis, data mining on the web, computational biology and various medical applications. Another source of the statistical nature of such problems is the lack of sufficient information of the problem domains as well as the specific problems at hand. What is available for a typical application is usually a set of data from observation or experiments. The main objective of this course is to gain experience of dealing with statistical data analysis problems by studying various statistical methods that can be used to make sense out of data, by reading and reviewing literature as well as by working on a specific statistical problem in a selected application domain. Prerequisites: CSE 241 and ESE 326 (or Math 3200) or their equivalent, or permission of the instructor. Credit 3 units. EN: DU, SU, TU E81 CSE 516A Multi-Agent Systems This course introduces the fundamental techniques and concepts needed to study multi-agent systems, in which multiple autonomous entities with different information sets and goals interact. We will study algorithmic, mathematical, and game-theoretic foundations, and how these foundations can help us understand and design systems ranging from robot teams to online markets to social computing platforms. Topics covered may include game theory, distributed optimization, multi-agent learning and decision-making, preference elicitation and aggregation, mechanism design, and incentives in social computing systems. Prerequisites: CSE 240 and 241 and ESE 326 (or Math 320) or equivalents, or permission of instructor. Some prior exposure to artificial intelligence, machine learning, game theory, and microeconomics may be helpful, but is not required.Credit 3 units. EN: SU, TU E81 CSE 517A Machine Learning The field of machine learning is concerned with the question of how to construct computer programs that automatically improve with experience. Recently, many successful machine learning applications have been developed, ranging from data-mining programs that learn to detect fraudulent credit card transactions, to information-filtering systems that learn users’ reading preferences, to autonomous vehicles that learn to drive. There have also been important advances in the theory and algorithms that form the foundation of this field. This course will provide a broad introduction to the field of machine learning. Prerequisites: CSE 241 and sufficient mathematical maturity (Matrix Algebra, probability theory/statistics, multivariate calculus). There is no enrollment limit, but the instructor will hold a take-home placement exam (on basic mathematical knowledge) that is due on the first day of class. Only students who pass the placement exam will be enrolled in the course. Students interested in preparing for the exam are advised to work through the first three weeks of Andrew Ng’s online course on machine learning (https://www.coursera.org/course/ml). Credit 3 units. EN: DU, SU, TU E81 CSE 519T Advanced Machine Learning This course provides a close look at advanced machine learning algorithms —their theoretical guarantees (computational learning theory) and tricks to make them work in practice. In addition, this course focuses on more specialized learning settings, including unsupervised learning, semi-supervised learning, domain adaptation, multitask learning, structured prediction, metric learning and learning of data representations. Learning approaches may include graphical models, nonparametric Bayesian statistics, and technical topics such as sampling, approximate inference and nonlinear function optimization. Mathematical maturity and general familiarity of machine learning is required. Prerequisites: CSE 517A or 511A or 7100 and approval by instructor.Credit 3 units. E81 CSE 520S Real-Time Systems This course covers software technologies for real-time systems and networking such as distributed multimedia, telecommunication management, automobiles, avionics and smart manufacturing. Topics include real-time scheduling, distributed embedded middleware, adaptive performance management and real-time wireless sensor networks. Prior knowledge on embedded and real-time systems is not required. Prerequisite: CSE 422S or equivalent.Credit 3 units. EN: DU, SU, TU E81 CSE 521S Wireless Sensor Networks Dense collections of smart sensors networked to form self-configuring pervasive computing systems provide a basis for a new computing paradigm that challenges many classical approaches to distributed computing. Naming, wireless networking protocols, data management and approaches to dependability, real-time, security and middleware services all fundamentally change when confronted with this new environment. Embedded sensor networks and pervasive computing are among the most exciting research areas with many open research questions. This class studies a large number of research papers that deal with various aspects of wireless sensor networks. Students perform a project on a real wireless sensor network comprised of tiny devices each consisted of sensors, a radio transceiver and a microcontroller. Prerequisite: CSE 422S.Credit 3 units. EN: DU, SU, TU E81 CSE 522S Advanced Operating Systems This course explores the core OS abstractions, mechanisms and policies and how they impact support for general purpose, embedded and real-time operating environments. Resource management is covered in detail including CPU scheduling, I/O scheduling, interprocess communication models (message passing, remote procedure call and shared memory); virtualization models and techniques; synchronization models and techniques; and resource allocation strategies. Prerequisites: CSE 422S and significant C/C++ programming experience. Credit 3 units. EN: DU, SU, TU E81 CSE 528S Software Project Management An introduction to the issues and basic methods used in managing software development projects. The course includes factors affecting software projects, lifecycle models, project scheduling, size and staffing, progress tracking, software metrics, managing people, and crisis management. The course includes lectures, hands-on training in selected project management tools, and case studies. In addition, each student plans and manages a simulated software project. The course is designed to familiarize software engineers and computer scientists to the issues and problems involved in managing software projects. Prerequisite: CSE 436S, significant industrial software development, or permission of instructor.Credit 3 units. E81 CSE 530A Database Management Systems A study of data models and the database management systems that support these data models. The design theory for databases is developed and various tools are utilized to apply the theory. General query languages are studied and techniques for query optimization are investigated. Integrity and security requirements are studied in the context of concurrent operations on a database, where the database may be distributed over one or more locations. The unique requirements for engineering design databases, image databases and long transaction systems are analyzed. Prerequisite: CSE 241.Credit 3 units. E81 CSE 531S Theory of Compiling and Language Translation Algorithms and intermediate representations for automatic program analysis are examined, with an emphasis on practical methods and efficient engineering of program optimization and transformations. The course includes a thorough treatment of monotone data flow frameworks: a mathematical model in which most optimization problems can be specified and solved. The course primarily covers optimizations that are applicable to any target architecture; however, optimizations specific to parallel, distributed and storage-hierarchical systems also are discussed. Prerequisite: CSE 431S or CSE 425S.Credit 3 units. EN: DU, SU, TU E81 CSE 532S Advanced Multiparadigm Software Development Intensive focus on advanced design and implementation of distributed object computing (DOC) software. Topics covered include reuse of design patterns and software architectures, and developing representative applications using object-oriented and generic frameworks in C++. Design and implementation based on design patterns and frameworks are central themes to enable the construction of reusable, extensible, efficient and maintainable DOC software. Prerequisites: CSE 332S or graduate standing; familiarity with C++, CSE 432S, and CSE 422S or CSE 522S.Credit 3 units. EN: DU, SU, TU E81 CSE 535T Programming Language Theory This course presents the theoretical foundations of programming languages, using formal techniques. We study how to define programming languages in a formal way, and how to prove meta-theoretic properties about them. Type theory, including powerful typing constructs such as polymorphic and recursive types, receives particular attention. The work for the course includes theoretical exercises as well as a project in which students implement selected aspects of advanced programming languages. Prerequisites: CSE 240 and CSE 241.Credit 3 units. E81 CSE 536S Distributed System Design: Models and Languages Modern computing environments are highly distributed. This has been the result of major advances in networking technology and their rapid assimilation by a society that functions in a highly distributed and decentralized manner. The goal of this course is to familiarize students with basic concepts, models and languages that shaped recent developments in distributed computing. The focus is on exploring new ways of thinking about computing and communication that made the development of distributed software systems possible. Competing concepts and design strategies are examined both from a theoretical and a practical perspective. Prerequisite: CSE 240 and CSE 241.Credit 3 units. EN: DU, SU, TU E81 CSE 538S Modeling and Performance Evaluation of Interconnected Computer Systems The increasing pervasiveness of networks, from chip-level to Internet-scale, means that modern computer systems are designed and built from interconnected components. Understanding the design trade-offs this involves and predicting performance under different operating conditions calls for rapidly and effectively evaluating the performance of multiple design combinations. The course reviews a number of analytical tools of relevance in this context (from queueing theory, to algorithms, to optimization, and possibly game theory if time permits). It explores their use in modeling resources sharing in interconnected systems, and estimating various performance metrics of relevance. Pre-requisite: Basic knowledge of probability theory. Credit 3 units. EN: SU, TU E81 CSE 541T Advanced Algorithms Provides a broad coverage of fundamental algorithm design techniques with the focus on developing efficient algorithms for solving combinatorial and optimization problems. The topics covered include: greedy algorithms, dynamic programming, linear programming, NP-completeness, approximation algorithms, lower bound techniques, and on-line algorithms. Throughout this course there is an emphasis on correctness proofs and the ability to apply the techniques taught to design efficient algorithms for problems from a wide variety of application areas. Prerequisite: CSE 241. Same as CSE 441TCredit 3 units. EN: DU, SU, TU E81 CSE 542T Advanced Data Structures and Algorithms This course is concerned with the design and analysis of efficient algorithms, focusing principally on algorithms for combinatorial optimization problems. A key element in the course is the role of data structures in algorithm design and the use of amortized complexity analysis to determine how data structures affect performance. The course is organized around a set of core problems and algorithms, including the classical network optimization algorithms, as well as newer and more efficient algorithms. This core is supplemented by algorithms selected from the recent technical literature. Prerequisite: CSE 241.Credit 3 units. E81 CSE 543T Algorithms for Nonlinear Optimization The course provides an in-depth coverage of modern algorithms for the numerical solution of multidimensional optimization problems. Unconstrained optimization techniques including gradient methods, Newton’s methods, Quasi-Newton methods and conjugate methods are introduced. The emphasis is on constrained optimization techniques: Lagrange theory, Lagrangian methods, penalty methods, sequential quadratic programming, primal-dual methods, duality theory, nondifferentiable dual methods and decomposition methods. The course also discusses applications in engineering systems and use of state-of-the-art computer codes. Special topics may include large-scale systems, parallel optimization and convex optimization. Credit 3 units. E81 CSE 544T Special Topics in Computer Science Theory Cake-cutting algorithms consider the division of resources among a set of participants such that the recipients believe they have been treated fairly. In some cases, a given resource can be divided without loss of value, while in other cases, dividing a resource may lessen its value, perhaps significantly. Notions of fairness include proportionality, envy-freeness and equitability. This course is organized around a rich set of fair-division problems, studying the correctness, complexity, and applicability of algorithms for solving such problems. The problems and algorithms studied span millennia and include recent technical literature.Credit 3 units. E81 CSE 546T Computational Geometry Computational geometry is the algorithmic study of problems that involve geometric shapes such as points, lines and polygons. Such problems appear in computer graphics, vision, robotics, animation, visualization, molecular biology and geographic information systems. This course covers data structures that are unique to geometric computing, such as convex hull, Voronoi diagram, Delaunay triangulation, arrangement, range searching, KD-trees and segment trees. Also covered are algorithms for polygon triangulation, shortest paths, the post office problem and the art gallery problem. Prerequisite: CSE 241.Credit 3 units. E81 CSE 547T Introduction to Formal Languages and Automata An introduction to the mathematical theory of languages and grammars. Topics include deterministic and nondeterministic finite state machines, push-down automata, and Turing machines; regular, context-free and recursive languages; closure properties of languages; the concepts of computability and undecidability. Prerequisite: CSE 240.Credit 3 units. E81 CSE 548T Concurrent Systems: Design and Verification Formerly CS 563T. Concurrency presents programmers with unprecedented complexity further exacerbated by our limited ability to reason about concurrent computations. Yet, concurrent algorithms are central to the development of software executing on modern multiprocessors or across computer networks. This course reviews several important classes of concurrent algorithms and presents a formal method for specifying, reasoning about, verifying and deriving concurrent algorithms. The selected algorithms are judged to have made significant contributions to our understanding of concurrency. Rigorous treatment of the design and programming process is emphasized. Students entering this course must be familiar with predicate calculus and sequential algorithms. Upon completion of this course students are able to reason completely formally about small concurrent programs and to apply systematically and correctly their formal skills to larger problems. Prerequisites: CSE 240 and CSE 241.Credit 3 units. E81 CSE 549T Theory of Parallel Systems The course covers parallel programming models, languages and algorithms. We cover both classic and recent results in parallel computing. The list of topics includes scheduling theory, parallel algorithms (in various models such as PRAM, log P, etc.), cache-coherence protocols and external memory algorithms. The focus is on design and performance analysis of algorithms.Credit 3 units. E81 CSE 550A Mobile Robotics An introduction to the design and implementation of intelligent mobile robot systems. This course covers the fundamental elements of mobile robot systems from a computational standpoint. Issues such as software control architectures, sensor interpretation, map building and navigation are covered, drawing from current research in the field. Students also design and build a small mobile robot and program it to perform simple tasks in real-world environments. Prerequisites: CSE 241 and either ESE 326 or Math 3200.Credit 3 units. EN: DU, SU, TU E81 CSE 550S Mobile Robotics An introduction to the design and implementation of intelligent mobile robot systems. This course covers the fundamental elements of mobile robot systems from a computational standpoint. Issues such as software control architectures, sensor interpretation, map building and navigation are covered, drawing from current research in the field. Students also design and build a small mobile robot and program it to perform simple tasks in real-world environments. Prerequisites: CSE 241 and either ESE 326 or Math 320. Credit 3 units. EN: DU, SU, TU E81 CSE 552A Advanced Computer Graphics This course covers advanced topics in graphics in the areas of modeling, rendering, volume rendering, image-based rendering and image processing. Topics include, but are not limited to, subdivision surfaces, splines, mesh simplification, implicit or blobby modeling, radiosity, procedural textures, filtering, BRDFs and procedural modeling. The class has several structured programming assignments and an optional final group project. Students are exposed to the wide variety of techniques available in graphics and also pick one area to study in depth. Prerequisite: CSE 332S and CSE 452A.Credit 3 units. EN: DU, SU, TU E81 CSE 553S Advanced Mobile Robotics This course covers advanced topics from the theory and practice of mobile robotics. Students read, present and discuss papers from the current research literature. There is a substantial programming project, in which students implement and test ideas from the current research literature on one of the department’s research robot platforms. Prerequisites: CSE 550A and strong programming skills (preferably in C++).Credit 3 units. EN: DU, SU, TU E81 CSE 554A Geometric Computing for Biomedicine With the advance of imaging technologies deployed in medicine, engineering and science, there is a rapidly increasing amount of spatial data sets (images, volumes, point clouds, etc.) that need to be processed, visualized and analyzed. This course focuses on a number of geometry-related computing problems that are essential in the knowledge discovery process in various spatial-data-driven biomedical applications. These problems include visualization, segmentation, mesh construction and processing, shape representation and analysis. The course consists of lectures that cover theories and algorithms, and a series of hands-on programming projects using real-world data collected by various imaging techniques (CT, MRI, electron cryo-microscopy, etc.). Prerequisite: CSE 332 and CSE 452, or approval by instructor.Credit 3 units. EN: SU, TU E81 CSE 556A Human-Computer Interaction Methods This course is designed to introduce tools and methods from Human-Computer Interaction that enable you to create effective user interfaces. We cover techniques that can be used at different stages in the software development cycle and techniques that can be used both with and without involving users. We study how to maximize interface usability and efficiency as well as how to design for, and measure, things like fun and persuasiveness. You gain experience applying HCI techniques through a group design, development and evaluation project. Prerequisites: CSE 132 and at least one additional systems course. Students who enroll in this course are expected to be comfortable with the process of building user interfaces using Java JFC/Swing.Credit 3 units. EN: DU, SU, TU E81 CSE 558A Motion Planning This course studies the general motion planning problem: computing a sequence of motions that transforms a given (initial) arrangement of physical objects to another (goal) arrangement of those objects. Many motion planning methods were developed in the realm of robotics research. For example, a typical problem might be to find a sequence of motions (called a path) to move a robot from one position to another without colliding with any objects in its workspace. However, the general motion planning problem studied arises in many other application domains as well. For example, assembly planning (e.g., finding a valid order for adding the parts when building an engine), mechanical CAD studies (e.g., can you remove a certain part from an engine without taking the engine apart), artificial life simulations (e.g., moving a herd of animals from one location to another), and medicine (e.g., can a drug molecule reach a protein molecule). Prerequisite: CSE 241.Credit 3 units. EN: DU, SU, TU E81 CSE 559A Computer Vision Computer vision is the process of automatically extracting information from images and video. This course covers imaging geometry (camera calibration, stereo and panoramic image stitching) and algorithms for video surveillance (motion detection and tracking), segmentation and object recognition. Final projects for the course explore challenges in analysis of real-world data. Students with nonstandard backgrounds (such as video art, or the use of imaging in physics and biology) are encouraged to contact the instructor. Prerequisites: CSE 241 and linear algebra.Credit 3 units. EN: DU, SU, TU E81 CSE 560M Computer Systems Architecture I An exploration of the central issues in computer architecture: instruction set design, addressing and register set design, control unit design, microprogramming, memory hierarchies (cache and main memories, mass storage, virtual memory), pipelining, bus organization, Reduced Instruction Set Computers (RISC), and Complex Instruction Set Computers (CISC). Architecture modeling and evaluation using VHDL and/or instruction set simulation. Prerequisites: CSE 361S and CSE 260M.Credit 3 units. EN: DU, SU, TU E81 CSE 561M Computer Systems Architecture II Advanced techniques in computer system design. Selected topics from: processor and system-on-chip design (multicore organization, system-level integration), run-time systems, memory systems (topics in locality and special-purpose memories), I/O subsystems and devices, systems security, and power considerations. Prerequisite: CSE 560M or permission of instructor.Credit 3 units. EN: DU, SU, TU E81 CSE 563M Digital Integrated Circuit Design and Architecture This is a project-oriented course on digital VLSI design. The course material focuses on bottom-up design of digital integrated circuits, starting from CMOS transistors, CMOS inverters, combinational circuits and sequential logic designs. Important design aspect of digital integrated circuits such as propagation delay, noise margins and power dissipation are covered in the class, and design challenges in submicron technology are addressed. The students design combinational and sequential circuits at various levels of abstraction using state-of-the-art CAD environment provided by Cadence Design Systems. The goal of the class is to design a microprocessor in 0.5 micron technology that can be fabricated by a semiconductor foundry. Prerequisites: CSE 260 and ESE 232. Same as CSE 463MCredit 3 units. EN: DU, SU, TU E81 CSE 564M Advanced Digital Systems Engineering This course focuses on advance sensor design. The class covers various basic analog and digital building blocks that are common in most sensor integrated circuits. The class extensively uses state-of-the-art CAD program Cadence to simulate and analyze various circuit blocks. The first half of the course focuses on analyzing various operational amplifiers, analog filters, analog memory and analog to digital converters. The second half of the course focuses on understanding the basic building blocks of imaging sensors. The class has a final project consisting of designing a smart sensor using Cadence tools. Prerequisites: ESE 232 and CSE 362M.Credit 3 units. EN: DU, SU, TU E81 CSE 565M Acceleration of Algorithms in Reconfigurable Logic Reconfigurable logic, in the form of Field-Programmable Gate Arrays (FPGAs), enables the deployment of custom hardware for individual applications. To exploit this capability, the application developer is required to specify the design at the register-transfer level. This course explores techniques for designing algorithms that are amenable to hardware acceleration as well as provides experience in actual implementation. Example applications are drawn from a variety of fields, such as networking, computational biology, etc. Prerequisites: Basic digital logic (CSE 260M) and some experience with a hardware description language (e.g., VHDL or Verilog).Credit 3 units. EN: DU, SU, TU E81 CSE 566S High-Performance Computer Systems Many applications make substantial performance demands upon the computer systems upon which those applications are deployed. In this context, performance is frequently multidimensional, including resource efficiency, power, execution speed (which can be quantified via elapsed run time, data throughput or latency), etc. Modern computing platforms exploit parallelism and architectural diversity (e.g., co-processors such as graphics engines and/or reconfigurable logic) to achieve the desired performance goals. This course addresses the practical aspects of achieving high performance on modern computing platforms. This includes questions ranging from how the computing platform is designed to how are applications and algorithms expressed to exploit the platform’s properties. Particular attention is given to the role of application development tools. Prerequisite: graduate standing or permission of instructor.Credit 3 units. E81 CSE 567M Computer Systems Analysis Comparing systems using measurement, simulation and queueing models. Common mistakes and how to avoid them, selection of techniques and metrics, art of data presentation, summarizing measured data, comparing systems using sample data, introduction to experimental design, fractional factorial designs, introduction to simulation, common mistakes in simulations, analysis of simulation results, random number generation, random variate generation, commonly used distributions, introduction to queueing theory, single queues and queueing networks. The techniques of the course can be used to analyze and compare any type of systems including algorithms, protocols, network or database systems. Students do a project involving application of these techniques to a problem of their interest. Prerequisites: CSE 131 and CSE 260M.Credit 3 units. EN: DU, SU, TU E81 CSE 568M Imaging Sensors This course covers topics on digital imaging sensors including basic operations of silicon photodetectors; CCD and CMOS passive and active sensor operation; temporal and spatial noise in CMOS sensors; spatial resolution and MTF; SNR and dynamic range; high dynamic range architectures and application specific imaging sensors such as polarization imaging and fluorescent imaging sensors.Credit 3 units. E81 CSE 569M Parallel Architectures and Algorithms A number of contemporary parallel computer architectures are reviewed and compared. The problems of process synchronization and load balancing in parallel systems are studied. Several selected applications problems are investigated and parallel algorithms for their solution are considered. Selected parallel algorithms are implemented in both a shared memory and distributed memory parallel programming environment. Prerequisites: graduate standing and knowledge of the C programming language.Credit 3 units. EN: DU, SU, TU E81 CSE 570S Recent Advances in Networking This course covers the latest advances in networking. The topics include data center networking, 40GB and 100GB ethernet, sustainability and energy issues in networking, energy-efficient ethernet, network virtualization, networking for cloud computing, networking for big data. Recent advances in wireless and mobile networking including white spaces, 4G and 5G are covered. Prerequisite: CSE 473 or equivalent. Credit 3 units. E81 CSE 571S Network Security A comprehensive treatment of network security. Topics include virus, root kits, malware, TCP/IP security attacks, operating systems security, secret key cryptography, modes of operation, hashes and message digests, public key algorithms, authentication systems, Kerberos, Public Key Infrastructures (PKI), IPsec, Internet Key Exchange (IKE), Secure Socket Layer (SSL), Transport Layer Security (TLS), e-mail security, virtual private networks, authentication, authorization, accounting (AAA), WiFi security, Domain Name System security (DNSSEC), intrusion detection systems. Prerequisite: CSE 473S.Credit 3 units. EN: DU, SU, TU E81 CSE 573S Protocols for Computer Networks An introduction to the design, performance analysis and implementation of existing and emerging computer network protocols. Protocols include multiple access protocols (e.g., CSMA/CD, token ring), internet, working with the internet protocol (IP), transport protocols (e.g., UDP, TCP), high-speed bulk transfer protocols, and routing protocols (e.g., BGP, OSPF). General topics include error control, flow control, packet switching, mechanisms for reliable, ordered and bounded-time packet delivery, host-network interfacing and protocol implementation models. Substantial programming exercises supplement lecture topics. Prerequisite: CSE 473S or permission of the instructor.Credit 3 units. EN: DU, SU, TU E81 CSE 574S Wireless and Mobile Networking First course in wireless networking providing a comprehensive treatment of wireless data and telecommunication networks. Topics include wireless networking trends, key wireless physical layer concepts, wireless local area networks, wireless personal area networks, WiMAX (physical layer, media access control, mobility and networking), IEEE 802.22 wireless regional area networks, IEEE 802.21 media independent handover, wireless cellular networks: 1G and 2G, 2.5G, 3G and 4G, Mobile IPv4, Mobile IPv6, TCP over wireless networks, ad hoc networks — issues and routing, wireless sensor networks, wireless mesh and multi-hop relay networks, rradio frequency identification (RFID). Prerequisites: CSE 473S or permission of the instructor.Credit 3 units. EN: SU, TU E81 CSE 577M Design and Analysis of Switching Systems Switching is a core technology in a wide variety of communication networks, including the Internet, circuit-switched telephone networks and optical fiber transmission networks. The past decade has been a time of rapid development for switching technology in the Internet. Backbone routers with 10 Gb/s links and aggregate capacities of hundreds of gigabits per second are becoming common, and advances in technology are now making multi-terabit routers practical. This course is concerned with the design of practical switching systems and evaluation of their performance and complexity. Prerequisites: CSE 241, 260M and ESE 326.Credit 3 units. EN: DU, SU, TU E81 CSE 583A Topics in Computational Molecular Biology Formerly CS 543T. In-depth discussion of problems and methods in Computational Molecular biology. Each year three topics are covered and those change yearly. Prerequisite: Biol 5495 or instructor’s consent.Same as Biol 5497Credit 2 units. E81 CSE 584A Algorithms for Biosequence Comparison This course surveys fundamental algorithms for comparing and organizing biological sequences. Emphasis is placed on techniques that are useful for implementing biosequence databases and comparing long sequences, such as entire genomes. Many of these techniques are also of interest for more general string processing and for building and mining of textual databases. Algorithms are presented rigorously, including proofs of correctness and running time where feasible. Topics include classical string matching, suffix trees, exclusion methods, multiple alignments and the design of BLAST and related biosequence comparison tools. Students complete written assignments and implement advanced comparison algorithms to address problems in bioinformatics. This course does not require a biology background. Prerequisites: CSE 241, graduate standing or permission of instructor.Credit 3 units. EN: DU, SU, TU E81 CSE 587A Algorithms for Computational Biology This course focuses on how to sequence and analyze a genome, emphasizing computational and algorithmic issues. After taking this course, you should be able to parachute into a genome informatics group, understand what’s going on, and do something useful on your first day. Topics covered include: the essential biology, the essential probability theory, base calling and quality clipping, genome assembly (including aspects of sequence alignment), predicting protein-coding genes (including Hidden Markov Models and comparative genomics approaches), predicting gene function by comparing to proteins of known function, and advanced topics in sequence alignment. This course includes a combination of paper-and pencil homework assignments and programming labs in C. Prerequisites: CSE 241 or CSE 502N or Biol 5495.Credit 3 units.   Areas of Study Biomedical Engineering Computer Science and Engineering Electrical and Systems Engineering Energy, Environmental and Chemical Engineering Mechanical Engineering & Materials Science Process Control Systems University of Missouri–St. Louis/Washington University Joint Undergraduate Engineering Program About WUSTL Architecture Art Arts &​ Sciences Business Engineering Majors (all schools) Minors (all schools) Interdisciplinary Opportunities Seal of Washington University in St. Louis Copyright 2000-2014, Washington University in St. Louis, Contact Us Washington University in St. Louis, One Brookings Drive, Campus Box 1143, St. Louis, MO 63130

新利18体育投注 18新利体育app 新利18首页 18新利苹果客户端
Copyright ©新利18吧提款被禁用|新利体育18怎么样 The Paper All rights reserved.