CSE: Core as of 2019 - bsiever/WUSTL-CSE-Curriculum GitHub Wiki

Course Descriptions

CS(E)

https://cse.wustl.edu/undergraduate/programs/Pages/bs-in-computer-science.aspx

Course Title Description Units Pre-reqs
CSE131 Introduction to Computer Science 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 will promote success. 3 None
CSE 132 Introduction to Computer Engineering CSE 132 introduces students to fundamental concepts in the basic operation of computers, ranging from desktops and servers to microcontrollers and handheld devices. Subjects include digital and analog input/output, sensing the physical world, information representation, basic computer architecture and machine language, time-critical computation, machine-to-machine communication and protocol design. Students will use both desktop systems and handheld microcontrollers for laboratory experiments. Active-learning sessions are conducted in a studio setting in which students interact with each other and the professor to solve problems collaboratively. 3 CSE 131
CSE 240 (or Math 310) 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, probability and computational models are covered. Topics typically include propositional and predicate logic; sets, relations, functions and graphs; proof by contradiction, induction and reduction; finite state machines and regular languages; and introduction to discrete probability, expected value and variance. 3 CSE 131
CSE 247 Data Structures and Algorithms 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. 3 CSE 131
CSE 332S Object-Oriented Software Development Laboratory Intensive focus on practical aspects of designing, implementing and debugging software, using object-oriented, procedural, and generic programming techniques. The course emphasizes familiarity and proficiency with a wide range of C++ language features through hands-on practice completing studio exercises and lab assignments, supplemented with readings and summary presentations for each session. 3 CSE 247
CSE 347 Analysis of Algorithms Introduces techniques for the mathematical analysis of algorithms, including randomized algorithms and non-worst-case analyses such as amortized and competitive analysis. Introduces the standard paradigms of divide-and-conquer, greedy, and dynamic programming algorithms, as well as reductions. Also provides an introduction to the study of intractability and techniques to determine when good algorithms cannot be designed. 3 CSE 247

Math Requirements

The math requirements in current CSE majors are:

  • Calc Series: Math 131, Math 132, Math 233
  • Matrix Algebra: Math 309 or ESE 318
  • Prob/Stats: ESE 326 or Math 3200 or QBA 120 & QBA 121 or Psych 300

More details here.

Pre-Req Dependencies in Core

Pre-reqs as of 2019