Class Outline
Day One
Course Overview
Day Two
History of Computers
Computer Hardware
Computer Science Definition
- Related Terms
- Programming: providing a computer with a set of instructions
- Software: the name for programs created for a computer. A sequence of steps that
can be interpreted by the hardware of the computer.
- Definition: The creation of the steps necessary for a computer to solve a problem.
- Definition: "the science of problem solving in which the solutions happen to involve a computer"
(The Art and Science of C by Eric S. Roberts. Addison-Wesley, 1995).
Day Three
Giving Instructions Exercise and discussion of how a CPU works
Levels of languages
- Lowest level: absolute machine code (binary code)
- Assembly language
- Symbolic representation of machine code
- Translated into binary code with an assembly
- High-level language/Compiled Language
- One high-level command translates to many assembly commands
- A compiler converts the high-level source code into
machine language for the appropriate computer
- High-level language/Interpreted Language
Compiler Concepts
Levels of software
- Application Programs
- Utility Programs
- Operating Systems
Unix Operating system
Eclipse
Day Four
Hello World program
- Concept of a function
- Concept of the main function
- Concept of "printing" to the screen
- printf command
- gcc compiler
- Execution of a.out
- The need to include stdio
- errors and warnings
- libraries and stdio.h
- \n
Phase 1
- Files people can't read: data files
- Header format
- Lab 2:
Powers of two (Learn what they are and produced 10 of them with a
for loop)
Day Five
- ASCII
- PPM format
- Variables
1.2
- Data types
2.2
- Printing various data types
- Printing binary data with
printf ("%c", value);
Day Six
- Redirecting standard out
- Counted loops (for loops)
- Lab 3:
Debugging, division, modulo, P3 format (efficiency), reviewed IO redirection
Day Seven
- Review counted loops
- Debugging
- Pretty code: commenting, variable names
Day Eight
Phase 2
- Introduction of program 2
- Integer division
- Floating point division, precision
- Casting
2.7
- Printing floats/doubles
- Lab 4: while, functions, luminance formula
Day Nine
- True and false in C
- If/else statement
- Boolean logic
- && and ||
Day Ten
Day Eleven
- PGM format
- converting color to grayscale
- getc
- ungetc
- Lab 6: Writing string functions
Day Twelve
- functions
- while
- Parsing PPM review
- Sample extra credit options
Day Thirteen
-
Midterm terms,
Programming Test (in class program to use scanf, printf, if, and for loops)
Day Fourteen
- Functions review
- Pass by value
- Function headers
- .h files
- Preprocessing, compiling, linking
- Lab 7: Parsing an input file for data
Day Fifteen
- Pointers
- Review of reading/writing data from stdin
- Arrays
1.6,
4.9,
5.3
- Hold address of first element
- Accessed with [ ] and subscript
- 0 through size-1
- Matrix Functions
Day Sixteen
- Review of reading input in a loop (lab 4)
- Finding the max and min
- Nesting structures
- Reading values into an array
- Printing an array
- Passing an array as a parameter
- Swapping two values (in an array)
- Lab 8: Writing more string functions
Phase 3
Day Seventeen
- Introduction of program 3
- Integer division
- Floating point division, precision
- Casting
- Printing floats/doubles
- Multi-dimensional arrays
- Passing multi-dimensional arrays
- fread/fwrite
- Strings
Day Eighteen
- Strings
- File I/O
- Command line arguments
- Lab 9: Memory allocation
Day Nineteen
- Lab 10: Command-line arguments
Day Twenty
Day Twenty-one
Programming Test (in class program to perform matrix multiplication via function
call)
Day Twenty-two
- Lab 12: Image manipulation
Day Twenty-three
Day Twenty-four
Day Twenty-five
Present Final Team Projects
Final exam