Part I. Chapter 1. Introduction (20 points –approximately) Object-Oriented Programming ● Describe the fundamental components of objects. something with identifiable features that may be manipulable attributes and methods ● Explain how these components relate to your program (see Figure1-3) define abilities of different ● Be able to identify and explain how event-handlers work Hardware Fundamentals ● Identify key persons in the history of computer science and what they accomplished { Joseph Marie Jacquard - automated loom via punch cards - 1801 Charles Babbage - Father of Computers - ideas of 5 component computers - 1840 Ada Lovelace - First computer programmer - 1840 Konrad Zuse - inventor of binary programmable Z3 computer - 1940 John Vincent Atanasoff & Clifford Berry - inventors of binary programmable ABC computer Alan Turing - Turing Machine - logic ideas for solving problems } ● List the characteristics of the first generation of hardware ENIAC, vacuum tubes ● List the characteristics of the second generation of hardware. Transistors ● List the characteristics of the third generation of hardware Integrated Circuit ● List the characteristics of the fourth generation of hardware Microprocessors Software Fundamentals ● Be able to define what system software is and be able to give examples Operating system, Windows, UNIX, OSX, manages files ● Describe what applications software is and give examples What runs on OS. MS Office, games ● Be able to describe the relationship between hardware, system software and applications software Application software runs on system software, which runs on hardware History of Software Development ● Explain the difference between machine language, assembly language and a high-level language Machine language, 0 or 1, runs directly on hardware Assembly language, set of short commands standing for complex machine High-level language, English-based, form varies depending on language ● Give examples of high-level languages C/C++/VC++, Pascal ● Be able to describe the relationship between hardware, system software and applications software Application software runs on system software, which runs on hardware The Programming Process ● Explain how the programming process works Source Code runs through compiler then creates object code ● Define and identify source code and object code source code is what you type in, this would be in English; object code would be the 0 and 1’s that the computer reads. ● Explain the role and importance of the compiler This changes the source code to object code, making life easier for the normal person because they understand English better than 0 and 1, computer languages. Types of Errors ● ● ● Identify and explain what syntax errors are and how they may be fixed ● Describe the project development cycle Identify and explain what logic errors are and how they may be fixed Identify and explain runtime errors are and how they may be fixed A Project Development Strategy Problem Analysis -> Design -> Development -> Testing -> Problem Analysis ● Identify the main tasks that are addressed in the problem analysis stage Problem is described so that it can be solved ● Identify the main tasks that are addressed in the design stage Describe in detail specific solutions to the problem may include lists of critical info and detailed list of instructions ● Identify the main tasks that are addressed in the development stage Take design information and produce computer program ● Identify the main tasks that are addressed in the testing stage Test whether or not the program is completed according to design specifications The Visual Studio IDE ● B,e able to identify the main components of the Visual Studio IDE Menu Bar on top, Toolbar with stuff like “New Program” and “Save”, Design window tab, Toolbox, Properties window, Form Layout, Solution Explorer ● Be able to explain what each statement in your first project did ● Be able to write code similar to that used in your first project private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { //Change colors to Green textBox1->Text = "Hello World!"; textBox1->BackColor = Color::LightGreen; textBox1->ForeColor = Color::Green; this->BackColor = Color::Green; button1->BackColor = Color::Green; } private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { //Change colors to Red textBox1->Text = "Hello World!"; textBox1->BackColor = Color::Pink; textBox1->ForeColor = Color::Red; this->BackColor = Color::Red; button2->BackColor = Color::Red; } private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { //Change colors to Yellow textBox1->Text = "Hello World!"; textBox1->BackColor = Color::LightYellow; textBox1->ForeColor = Color::Yellow; this->BackColor = Color::Yellow; button3->BackColor = Color::Yellow; } private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) { //Change colors to Blue textBox1->Text = "Hello World!"; textBox1->BackColor = Color::LightBlue; textBox1->ForeColor = Color::Blue; this->BackColor = Color::Blue; button4->BackColor = Color::Blue; } private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) { //Change colors to original colors - i.e. clear textBox1->Text = ""; textBox1->BackColor = Color::White; textBox1->ForeColor = Color::Black; this->BackColor = System::Drawing::SystemColors::ControlLight; button1->BackColor = System::Drawing::SystemColors::ControlLight; button2->BackColor = System::Drawing::SystemColors::ControlLight; button3->BackColor = System::Drawing::SystemColors::ControlLight; button4->BackColor = System::Drawing::SystemColors::ControlLight; button6->BackColor = System::Drawing::SystemColors::ControlLight; } private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) { //Change colors to Orange textBox1->Text = "Hello World!"; textBox1->BackColor = Color::Orange; textBox1->ForeColor = Color::OrangeRed; this->BackColor = Color::OrangeRed; button6->BackColor = Color::OrangeRed; } Part II. Chapter 2. Reading, Processing, and Displaying Data (15 points – approximately) Solving Problems Be able to define the terms algorithm and pseudocode and know how they are related Know the difference between high-level and low-level algorithms An algorithm is numbered steps that need to occur in a program Pseudocode is English-based and can be converted to any general coding language. Also known as false-code Data and Data Types ● Be able to identify and describe the primitive data types (bool, char, int, float, double) bool - True false, char - character/symbols, int - integers, float - number for storing decimal numbers, double - a long number. ● Be able to identify and describe the String data type a string of characters, a word “word” ● Explain what a variable is a location in the computer’s memory, comprised of one or more memory cell, used to store data ● Explain what happens when a variable is declared finds space in the computer’s memory that has not been allocated for any other purpose and reserves it in the name and the data type that you designated. ● Write code declaring variables of primitive types int bullshit = 5; ● Explain how variables are initialized using the assignment operator variable assigns value (bullshit) variable (=) assigns (5) value Data Input ● Explain the relationship between the interface and variables (Figure 2-5) The user enters a value in the interface, say a textbox on the interface; the entered data is recorded in memory as a string, which is different than a numerical variable ● Describe what the TryParse() statement does It looks through a string of characters for numbers and converts it to a variable ● Identify and explain each part of TryParse() statement syntax First you have to specify the type of variable that you are trying to parse, such as Int32, Float, Double, etc. :: follows the Class of variable, called the scope resolution operator. it states that the TryParse function is inside the class of the variable type Data Processing ● List the arithmetic operators and describe their function +,-,/,*,% ● Explain the concept of precedence order of operation ● ● Be able to resolve complex arithmetic expressions by drawing an expression tree ● Explain and be able to code shorthand operators Identify and explain the concatenation operator + bullshit += 2 ● Describe how complex mathematical functions may be called Math::Pow() Data Output ● Describe why the .ToString() method is important and how it works Converts solid numbers to a string of characers ● Be able to write code to display the contents of variables in textboxes on the interface textBox1->Text = “Hello World”; Part III. Chapter 3. Integral Data (15 points– approximately) The Binary Number System ● Be able to explain the binary number system The binary number system is a base 2 , or 0 and 1 101 - base 2 1*(2^2) + 0*(2^1) + 1*(2^0) = 5 - base 10 ● Define bytes, bits and explain how they are used to represent integers a single 0 or 1 is a bit, 8 bits in a byte an 8 bit, or single byte can represent ASCII values for strings or integers Integral Data Types Explain the relationship between integers and characters in terms of ● storage required characters are stored in an eight-bit byte (decimal integers 0-255) whereas integers are stored in 32-bits, or four bytes ● binary representation the representation of the decimal number 65, which is the ASCII number for A, can be stored in an integer, which is 00000000 00000000 00000000 01000001, whereas the same thing can be stored as char data as just --------------------------------------------- 01000001 ● assignment of data of one type to another character has 8 bits while num uses entire space for the number 00000000 compared to 00000000 00000000 00000000 00000001 Data Type Conversion ● Define “explicit type conversion” and give examples of two statements that do this convert input data into a defined variable textBox1->Text = Convert::ToString() ● Define implicit type conversion and give examples within the program it changes the variable type int bullshit = 3; double haha = (double) bullshit; ● Explain the data type hierarchy Smallest to largest; Boolean, character, Integer, float, double ● Contrast data type promotion with data type demotion. Which is safest and why? demotion condenses the amount of space, promotion increases the space for the variable, the safest one is promotion. Integer Arithmetic ● Explain what integer division is, when it occurs and why it is important an integer divided by an integer creates an integer 7/4=1 ● Explain what the mod operator (%) is, what it does and when it is appropriate to use the remainder in division 7/4=3 Part III. Program Design – Skills Test (15 points) Given a problem description, be able to ● ● ● ● Sketch a user interface ● ● ● ● ● ● Comment statements Construct a control table Construct a data table Construct an algorithm to address the tasks of an event handler Part IV. Coding – Skills Test and Chapter 4.Selection Structures (40 points) Given an algorithm, be able to write the code, including Variable declarations Input statements Arithmetic processing statements Output statements Simple selection structures (if statements)