CSE 332 Overview and Structure - PowerPoint PPT Presentation

About This Presentation
Title:

CSE 332 Overview and Structure

Description:

CSE 332 Overview and Structure CSE 332 emphasizes studio-based active learning Introductory lecture material followed by hands-on exercises More time in guided ... – PowerPoint PPT presentation

Number of Views:13
Avg rating:3.0/5.0
Slides: 7
Provided by: cseWustl
Category:
Tags: cse | c | overview | structure

less

Transcript and Presenter's Notes

Title: CSE 332 Overview and Structure


1
CSE 332 Overview and Structure
  • CSE 332 emphasizes studio-based active learning
  • Introductory lecture material followed by
    hands-on exercises
  • More time in guided exploration than in passive
    absorption
  • Key insight different people learn in different
    ways
  • Our goal is to make many resources available to
    you
  • Your goal should be to engage those resources
    actively
  • Professors (and teaching assistants) role
  • Emphasis on guidance, coaching, discussion
  • Students role
  • Emphasis on exploration, peer interaction,
    teamwork

2
C Language and Paradigms
  • The course focuses a lot on C
  • But also on general programming issues it raises
  • C is a multi-paradigm language
  • Procedural programming with functions
  • Object-oriented programming with classes
  • Generic programming with templates, typedefs
  • The course structure lets us explore these in
    parallel
  • Comparison to C
  • Adds higher-level features, keeps lower-level
    ones
  • Comparison to Java
  • Many similar ideas but with different nuances
  • References/pointers, inheritance, access
    restrictions
  • Gives a less abstract view of the underlying
    platform

3
How C Evolved
  • C is a popular language for developing low-level
    systems software and applications
  • E.g., operating systems like Linux
  • However, its difficult to support type safe
    software reuse without inheritance, etc.
  • E.g., for middleware frameworks like ACE
  • Stroustrup designed C with classes/objects
  • But kept procedural parts very similar to C
  • Later, templates (generics) were added
  • With which Stepanov, et al. developed the STL

4
Approach Well Take in CSE 332
  • A key goal is to expand refine your mental
    models
  • For C mainly, but also for programming in
    general
  • Notice and try out new ideas, share them, discuss
    them
  • Challenge your understanding in as may ways as
    you can
  • If you dont remember every detail at first,
    thats ok
  • Well revisit concepts and techniques from
    different angles
  • Try to refresh your memory early and often
  • Apply what you learn, early and often, towards
    mastery
  • Well work together to build understanding in
    stages
  • First as a consumer of an approach (can you use
    it?)
  • Then understanding it thoroughly (when can you
    use it?)
  • Then as a contributor to the approach (can you
    expand it?)

5
Approach Well Take, Continued
  • Well talk about how/why the tools youll use
    work
  • E.g., how new/delete operators are used by smart
    pointers
  • Give insight into special cases when new tools
    are needed
  • Throughout the course, the point is to learn by
    doing
  • Mini-lectures and readings are intended as
    preparation
  • Studio exercises build understanding and
    expertise
  • Lab assignments ask you to apply what youve
    learned
  • 10 years from now, the languages you use may
    differ
  • Ive worked in C, C, Pascal, Java, and x86
    assembly
  • But your mastery of procedural/OO/generic ideas
    will help
  • And, youll have a pretty solid grounding in C
    until then

6
Topic Areas Covered This Semester
  • C program basics
  • Variables, types, control statements, development
    environments
  • C functions
  • Parameters, call stack, exceptions
  • C memory
  • Addressing, layout, management
  • C classes
  • Encapsulation, abstraction, inheritance
    polymorphism
  • C generics
  • Overloading, templates, interface polymorphism ,
    associated types
  • C STL
  • Iterators, algorithms, containers, functors
  • Introduction to Design Patterns
  • And how to combine them to design programs
Write a Comment
User Comments (0)
About PowerShow.com