introduction to csce 221 - lab basic of computers, c++, unix, and hello world

13
INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

Upload: darcy-hall

Post on 04-Jan-2016

226 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

INTRODUCTION TO CSCE 221 - LABBASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

Page 2: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

COMPUTERS

• Basic architecture

• Memory stores the data

• CPU is the brain

• Fetches data to and from memory

• Interplay with IO

CPU• ALU• Registers• Control

Logic

InputDevices

Output Devices

Memory• Data• Instructi

ons

Page 3: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

COMPUTERS

• Important as a programmer to understand how your program and rest of computer interact!

Hardware

Operating System

Compiler

Program

User

You are here!

Page 4: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

MEMORY

Function

Stack (Statically Allocated)

Heap (Dynamically

Allocated)

Page 5: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

C++ REVIEW

• Data

• Type – defines possible actions (primitives, classes – user-defined, templates)

• Variable – instance in memory

• Declaration – Tell the compile variable, function, or type exists

• Definition – Initializing value of variable, full specification of type or function

• Example

• int i; //declaration

• Foo bar(10); //declaration + definition

Page 6: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

C++ REVIEW

• Operations

• Math operations (+, -, *, /, %)

• Comparison (==, !=, >, <, etc)

• Assignment (=)

• Access ([], (), *, ->)

• Boolean (&, ^, !, &&, ||, etc)

• etc

Page 7: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

C++ REVIEW

• Loops

• Basic for

• for(int i = 0; i < 10; ++i);

• for(iterator i = begin(); i != end(); ++i);

• Basic while

• while(!done) do_something();

• Basic do while

• do { something(); } while(!done);

Page 8: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

C++ REVIEW

• Functions

• Basic signaturereturn_type function_name(param1, param2, …, paramN);

• Example

• void foo(int, char);

• Foo bar(int i, char c);

Page 9: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

LINUX

• PuTTY is an application to establish SSH connections

• Development machine: linux.cse.tamu.edu

• Open a PuTTY session and log into linux

Page 10: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

BASIC UNIX COMMANDS

• cd: change directory

• mkdir: make directory

• ls: list items in a directory

• g++-4.7: invoke GNU’s C++ compiler

• vim / emacs / nano: text editing

Page 11: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

VIM

Quick start guideVim cheat sheetVim settings file – put in home directory labeled “.vimrc”

Page 12: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

HELPFUL TOOLS FOR LINUX

• gdb – debugging tool for linux

• valgrind – memory leak detector/memory profiler

• screen – helpful when working remotely in a terminal. Saves the terminal session even if the network connection cuts out

• LaTex – tool for creating documents

• top – monitor the system processes

Page 13: INTRODUCTION TO CSCE 221 - LAB BASIC OF COMPUTERS, C++, UNIX, AND HELLO WORLD

EXERCISE – HELLO WORLD

• Make a directory called in your home folder• Type mkdir lab1

• Type cd lab1

• Create a file called using vim• Type vim hello.cpp

• Write hello world to the screen

• Type i to go to insert mode then type the program

• Type esc to go to command mode and :wq to save and quit vim

• Compile using g++-4.7 and run your application• Type g++-4.7 hello.cpp –o hello to compile

• Type ./hello to run the program