Presentation is loading. Please wait.

Presentation is loading. Please wait.

E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis.

Similar presentations


Presentation on theme: "E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis."— Presentation transcript:

1 E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis cdgill@cse.wustl.edu Course Introduction

2 We’ll Use all 4 Main Paradigms in C++ Procedural –Iterators, algorithms Functional –Binders, functions Object oriented –Classes, inheritance Generic –Templates, concepts and models, type inference, interface polymorphism  C++ 

3 We’ll Also Study Software Engineering Architectural Patterns –For concurrent (and later networked) software Design Patterns –For well structured code C++ Idioms –For well behaved software  C++ 

4 Exploration Through Studio Exercises Hands-on experience within each individual topic covered Reinforce assigned readings and classroom discussions Completion of required exercises (including posting your answers) is a baseline for the participation grade  C++ 

5 We’ll Develop 4 Team Projects One basic, one intermediate, two more advanced Explore interactions between paradigms, patterns, idioms Hands on experience building concurrent system software Reinforce assigned readings, examples, and exercises  C++ 

6 Course Resources Required Text –[Williams] Williams: C++ Concurrency in Action –Readings will be assigned throughout the semester –Exams will cover all material in the course Assigned readings as well as posted slides, studio exercises, and labs Optional Texts (for reference and/or additional reading) –[Stroustrup] Stroustrup: The C++ Programming Language –[LLM] Lippman, Lajoie, and Moo: C++ Primer Course Web Page –www.cse.wustl.edu/~cdgill/courses/cse532/ –classes.cec.wustl.edu/~cse532/ –Reading assignments, studios, labs, course syllabus and info Course account: cse532@seas.wustl.edu (submit labs there)

7 Course Prerequisites CSE 332S, “Object-Oriented Software Development Laboratory” (or graduate standing and proficiency with C++) –C++ language features and idioms for memory management, aliasing (pointers and references), classes and inheritance polymorphism, templates and interface polymorphism, function and operator overloading, etc. –Grad students assumed able to self-study rapidly on this if needed CSE 422S (Operating Systems) –Conceptual foundations: threads, deadlocks, race conditions, etc. –Practical hands-on experience with threads, debuggers, etc.

8 Course Objective: Mastery Mastery is a path, not a destination –George Leonard “…if you only walk long enough.” –Lewis Carroll

9 First Reading Assignment Please read before the next lecture –Required: [Williams] Chapter 1 –Optional: [Stroustrup] Chapter 42.1-42.2 Questions to consider: –What is concurrency? –How do C++11 threads abstract independent computations? –Why and when should you use multi-threading?


Download ppt "E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis."

Similar presentations


Ads by Google