Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Introduction & Syllabus Computer Hardware/Software Hierarchy C / C++ Problem Solving / OOAD Development Environment / Tools Simple C++ program structure.

Similar presentations


Presentation on theme: "1 Introduction & Syllabus Computer Hardware/Software Hierarchy C / C++ Problem Solving / OOAD Development Environment / Tools Simple C++ program structure."— Presentation transcript:

1 1 Introduction & Syllabus Computer Hardware/Software Hierarchy C / C++ Problem Solving / OOAD Development Environment / Tools Simple C++ program structure Linux, g++ & dropboxes CSE 20232 Lecture 1 - Preliminaries

2 2 Introduction John H Stewman, PhD Education BA (History), Duke BS (Computer Engineering), USF MS (Computer Science), USF PhD (Comp. Sci. & Engr.), USF Research Computer Vision – DARWIN project (Eckerd College) Employment US Navy Eckerd College Notre Dame

3 3 Syllabus Grad TA Andrew Blaich (ablaich@nd.edu)ablaich@nd.edu Undergrad TA’s Megan Lussier (mlussier@nd.edu)mlussier@nd.edu Patrick Finnigan (pfinniga@nd.edu) Location 131 Debartolo, MWF, 9:35 – 10:25 Assignments (50%) Weekly programming Tests (50%) Midterm & Final exam

4 4 What is a “Computer?” Hardware Input devices (mouse, keyboard, scanner,…) Primary Memory (RAM) Secondary Memory (Hard drive, CD, floppy,…) Output devices (monitor, speakers, …) CPU (central processing unit) Control unit -- fetch-execute cycle ALU (arithmetic logic unit) Software Operating System (Linux, Windows, UNIX, …) Interpret commands and manage access to resources Application (Word, FreeCell, Doom, …) Provide productivity tools, entertainment Create a “virtual” machine

5 5 Programming Language Preliminaries Language hierarchy Machine language numeric codes for basic hardware operations Assembly language mnemonic codes for basic hardware operations load, add, store, … High-level language (Pascal, C/C++, Java, Ada …) English-like instructions and constructs for combinations of basic hardware operations x = 3; if (x < y) x = y;

6 6 Programming Language Preliminaries Interpreter Reads, translates and executes program instructions on the fly Compiler Translates high-level source code into relocatable object code (assembly or machine)

7 7 C / C++ History BCPL (Martin Richards 1967) For writing compilers and operating systems B (Ken Thompson 1970) Based on BCPL & used to create early version of UNIX at Bell Labs C (Dennis Ritchie) Evolved from B & BCPL Became the development language for UNIX C programs can be portable (platform independent) Standard is ANSI/ISO 9899; 1990

8 8 C / C++ History C++ (Bjarne Stroustrup – early 1980’s) Extension of C Supports Object-oriented programming User definable object classes Facilitates development of reusable software components C++ Standard Library LARGE Collection of existing classes & algorithms string, vector, list, set, map, … sorts, comparitors, …

9 9 Problem Solving Steps State the problem Analyze the requirements Inputs & outputs, precision, timeliness, environment … Develop a design for the solution OOAD - Identify key objects Object attributes become data members Object behavior become member functions Identify how objects interact to solve problem Develop algorithms for functions Write pseudocode for algorithms Refine program structure and repeat process Top-down vs. bottom-up

10 10 Program Development Tools Editor Create the C++ source code Save source to disk Preprocessor Scan source for preprocessor directives (#include, …) Compiler Scan source and translate into object code Save object code to disk Linker Link various object code modules into final executable Resolve addressing issues between modules Save executable to disk Loader Place executable in main memory and start execution

11 11 Abstraction Description of what something does not how Data Abstraction string, stack, queue, complex number Functional abstraction sqrt(), sort(), Encapsulation Binding of values and operations within a single program entity Ex: C++ class or data type (int, string, …) Information hiding Separating implementation details from interface details Ex:.h and.cpp files, public vs. private

12 12 Simple C++ Program Structure Comment block Filename, author, date, purpose, description, … Preprocessor directives #include … Using statements using namespace std; Main function int main () { Declarations Statements return 0; }

13 13 C++ Basics Comments are for humans and are ignored by the compiler // rest of line after double slash is ignored /* everything between markers is ignored */ Include directives load predefined code interfaces so compiler “knows” about functions, classes, and other predefined entities #include loads C++ header from “normal” location Headers define entities within namespaces #include loads C-style header from “normal” location No namespaces #include “myStuff.h” Loads user-defined header from current directory May or may not contain namespaces

14 14 Simple C++ Program (helloWorld.cpp) // file: helloWorld.cpp // author: J H Stewman // date: 8/22/2006 // purpose: CSE 20232 – Notre Dame – demo // description: // this shows the world we care #include using namespace std; int main( ) { cout << “Hello World!” << endl; return 0; }

15 15 Simple C++ Program (helloWorld2.cpp) // file: helloWorld2.cpp // author: J H Stewman // date: 8/22/2006 // purpose: CSE 20232 – Notre Dame – demo // description: // shows the world we care // (with scope resolution operator ::) #include int main( ) { std::cout << “Hello World!” << std::endl; return 0; }

16 16 Simple C++ Program (addTwo.cpp) // file: addTwo.cpp // author: J H Stewman // date: 8/22/2006 // purpose: CSE 20232 – Notre Dame – demo // description: ages you by two years #include using namespace std; int main( ) { int age; cout << “Hello, what is your age? ”; cin >> age; cout << “In two years you will be ” << age + 2 << endl; return 0; }

17 17 UNIX/Linux Basics Basic commands ls list current director contents cdchange to another directory mkdir, rmdirmake or remove a directory (folder) pwddisplays current path rmremove a file mvmove or rename a file cpcopy a file lesspage through a text file mandisplay manual page on command

18 18 UNIX/Linux Basics Basic commands !! “bang bang” execute last command !xexecute last command x* |pipe output of one command into another historyshow list of previous commands ln - screate symbolic link <take input from file >send output to file >>append output to file

19 19 UNIX/Linux Basics Creating a symbolic link ln –s /afs/nd.edu/coursefa.06/cse/cse20232.01/dropbox/jstewman mydrop Compiling Compile source to object file g++ -g -c helloWorld.cpp Link object file and create executable g++ -o helloWorld helloWorld.o Do it all in one step g++ -g -o helloWorld helloWorld.cpp

20 20 Run / Test / Submit Run your program from a Terminal or xterm by typing …./helloWorld If it does not work correctly, it has a “bug,” so … Make changes to source, recompile, link, and test again This is called “testing and debugging” To submit your program to your dropbox … if you created a symbolic link (mydropbox) cp hw1_1.cpp mydropbox/hw1 otherwise... cp hw1_1.cpp /afs/nd.edu/coursefa.06/cse/cse20232.01/dropbox/your_afsid/hw1

21 21 Reading and Homework For next time read in Deitel Lecture 1 (Wed) Sections 1.2-1.4, 1.7-1.9, 1.13-1.17 Lecture 2 (Fri) Sections 2.1-2.7, Appendices B, C, E.1-E.2

22 22 Demo Go to Linux box and show use of … Commands Creation of symbolic link Editor GNU g++ Compiler/Linker Testing & debugging NOTE: sample programs will be placed on the class web site


Download ppt "1 Introduction & Syllabus Computer Hardware/Software Hierarchy C / C++ Problem Solving / OOAD Development Environment / Tools Simple C++ program structure."

Similar presentations


Ads by Google