Send a Note to Zig
CMPSC 201C
Computer Programming for Engineers Using C++
-- Homepage --

(3 credits) Development and implementation of algorithms in a procedure- oriented language, with emphasis on numerical methods for engineering problems.

  Pre-requisites : MATH 140
Students who have passed CMPSC 101, 201F, or CSE 103 may not schedule this course.
  Concurrent : MATH 141
  Course Objectives : As primary course objectives students will be able to develop algorithms and data structures from software specifications and develop C++ code. They must be able to analyze algorithms and computer code for correctness and correct software faults. They must interpret the specifications of general and special purpose software languages, and use these languages to design computer programs that are correct and efficient.
  When ; Where : 1 Bookstore Bldg ; MWF 10:00 - 10:50 am

Important Links

  Obtain Your grades on homeworks/exams/final
Please enter your Access Account ID (letters in lower case) and click on the "Get Grades" button.
  Your instructor
  His office hours, teaching schedule, etc.
  Your Textbook
  Grading System
  Academic Integrity
  Login to the Linux Cluster
  Your PSU Diskspace
  Important UNIX Commands
  The vi-editor
  List of projects and due dates

Topics to be covered (tentative)

        
1. Introduction to Computers and Programming (2 lectures)
  Components of Computers : CPU , RAM , Storage, Input/Output
Operating Systems and software
Introduction to UNIX : Logging in, commands, file structure, remote disks
Information Presentation : Bit, Byte , Word
Number Systems : Base 10,8,16,2
Internal Representation : Integers , Real Numbers , Characters
Problem Solving : Problem analysis , algorithm , coding , testing
2. Introduction to C++ (1 lecture)
  Compiling, linking, and executing a short program
Unix tricks : command repition , filename completion , saving to pass space
text-editors ( vi ) vs. word processors
3. Expressions and Interactivity (2 lectures)
  2nd program : Data types : Integer (6) , real(3) , bool (1)
Variables (Concept,naming rules,declaration,assignment)
; as end of language statement
arithmetic operations , precedence of mathematical operations and use of parentheces
integer division and remainder
special assingments ( ++ += ... )
exponention,sqrt, trig functions (Appendix B in text)
4. Making Decisions(2 lectures)
  relational operators ( < > == ) and expressions (true/false)
relational expressions with arithmetic expressions
logical data type
logical operators ( && || )( < > ==
if - else - else if
nesting and switch
5. Looping (3 lectures)
  counter vs. sentinel (flag) controlled repetition
while () {} stopped by counter or some event
while : finding root with bisection ,
do while : finding root with Newton's method
for : Nested repetition
6. User supplied functions (4 lectures)
  Returning multiple values, Example 1
Returning multiple values, Example 2
7. File input/output (1 lecture)
  open , read , write , append , close
sample program
8. 1-D Arrays (3 lectures)
  declaration , data type, name , elements , size , initialization of elements
vectors and arrays
program : vector arithmetic ( add , magnitude , multipication )
9. Working on numerical lists (2 lectures)
  searching , minimum , maximum , deletion , insertion , sorting , deletion
program : sorting 2 lists using arrays
10. Multi-dimensional arrays (2 lectures)
  declaration , data type, name , elements , size , initialization of elements
matrices and arrays
program : matrix arithmetic ( add , magnitude , multipication )
Linear system of equations, Gaussian elimination
11. Character C-strings (2 lectures)
  character variables , strings , initialization
supplied string-functions (length , compare , copy ... )
12. Numerical integration (2 lecture)
  Left-point integration , refining interval size
Mathematics for trapezoidal and Simpson's rule
13. Numerical Solutions to Differential Equations (2 lectures)
  Euler's method and algorithm
Runge-Kutta Method
14. Introduction to Matlab (2 lectures)
   


Send a Note to Zig

Zig Herzog; hgn@psu.edu

Last revised: 10/23/07