Concepts of Programming - CSPP 50101

Contents

  1. Course Description
  2. Administrivia
  3. Tutorials, References
  4. Books
  5. Academic Integrity
  6. Homework
  7. Course Software
  8. Syllabus

Description

This course is an introduction to programming -- no prior programming knowledge or experience is required. The goal is to familiarize students with the fundamental components of structured programming -- memory management, algorithms, data structures, modular design, etc. The course emphasizes fundamental concepts and elementary program design. Upon completion of the course, students should be well prepared to branch out into more modern, application-specific, and/or higher-level programming models.

Administrivia

Tutorials, References

Books

Academic integrity

Students are expected to have read and understood the University's policy on Academic Integrity, as detailed in the Student Manual of University Policies and Regulations.

Homework

Some homework assignments will be from the primary required text, K&R. For problems which don't result in a full program, write up your experiences in a few sentences, including code snippets and error messages where appropriate. Typically, homework due Monday will include concepts or practices which will help with the programming assignment due Friday. Homeworks are due Friday by 11:59pm and Monday by 5:29pm.

Submit homework assignments using the unix command, hwsubmit, available on departmental Linux computers.

  1. Read the Unix Tutorial for Beginners.
  2. Create a directory with a descriptive name (e.g., "hw1"), and create all relevant files in that directory. For programming assignments, that would include your Makefile, source code (.c) and header (.h) files, and any data files used for testing, but not object files (.o) or compiled programs (eg. a.out). For short answer assignments, plain text files with numbered answers are appropriate. Do not submit documents in MS Word or RTF format.
  3. Change to the directory directly above that one. (cd ..)
  4. Type hwsubmit cspp50101 YOUR_DIRECTORY_NAME, and you should see a response in the terminal indicating that the directory has been sent to the grader.

Course Software

We will use GCC on the departmental Linux computers. On your own machine running MS Windows you may be interested in Open Watcom, Visual C++ 2005 Express, or another free C/C++ Compiler, but your code will be evaluated on the departmental systems.

Syllabus

Date Topics
22 June Unix basics: logging in, bash, filesystem, edit/compile/debug cycle
Intro to C: program syntax, basic types
29 June More Unix: make, version control with rcs
More C: types, operators, expressions, control flow
06 July Types: constructors (array, pointer); functions: recursive and iterative
13 July Flow control; pointers vs. arrays
20 July Structs; recursive data structures, eg. linked lists; memory management
27 July Deallocation; doubly-linked lists; separate compilation units; linking
03 August Libraries; linking; function pointers
10 August Separate compilation units; function pointers; function types; hw12 solution
17 August Data structures; command-line arguments; file I/O
24 August Review for final
31 August Final Exam

Valid XHTML 1.0 Transitional Valid CSS!