# CS 101 Course Summary December 5, 2003. Big Ideas Abstraction Problem solving Fundamentals of programming.

## Presentation on theme: "CS 101 Course Summary December 5, 2003. Big Ideas Abstraction Problem solving Fundamentals of programming."— Presentation transcript:

CS 101 Course Summary December 5, 2003

Big Ideas Abstraction Problem solving Fundamentals of programming

Abstraction “Black box” abstraction: just need to understand the contract Procedural abstraction: capture common patterns Data abstraction: new ways of organizing information

Divide-conquer-glue Break up problem into smaller parts; solve parts; glue together solution Recursion: the smaller parts look like the whole problem Tail recursion: no glue step!

Fundamental programming concepts Algorithms Methods and parameters Recursion Iteration (while, for) Branching (if, if-else) Data types (int, boolean, char, …) Aggregate types (arrays, lists)

Objects Members of a class Have state (instance variables) Invoking methods can change state of object

Programming Paradigms Imperative (Pascal, C, Basic, Fortran) Object-oriented (Java, C++, Smalltalk) Functional (Lisp, Scheme, ML) Logic-oriented (Prolog)

Scheme ; factorial function (define (fact n) (if (< n 2) 1 (* (fact (- n 1)) n)))

Prolog ; is X a member of a list? member(X,[X|_]). member(X,[_|Y]) :- member(X,Y).

Topics in Computer Science Foundations of computer science –Introduction to programming (CS 101) –Discrete Mathematics (CS 102) –Data Structures (CS 201)

Topics in Computer Science Hardware (CS 202) –Computer architectures –CPU design (e.g., Pentium 4) –Digital circuit design

Topics in Computer Science Theory and algorithms (CS 301 / 302) –Computability theory –Algorithms and Graph theory B C A D

Topics in Computer Science Core areas –Artificial Intelligence (CS 311) –Software engineering & design (CS 312) –Programming Languages (CS 313) –Operating Systems (CS 314)

Topics in Computer Science Applications –Graphics –Networking –Security –Machine Learning –Robotics and Vision –Computational Geometry –Compiler design

Download ppt "CS 101 Course Summary December 5, 2003. Big Ideas Abstraction Problem solving Fundamentals of programming."

Similar presentations