The goal of this course is to help the student to become proficient in the fundamental skills required to write programs in C. The course will also include an introduction to C++; however, before moving to C++, the student must have a working knowledge of the C language. A working knowledge means that the student can go to a computer, laptop or terminal and write a C program to accomplish some meaningful task. A working knowledge does not mean that the student can write a C program with the help of a textbook, several examples, the web and another student. This distinction motivates most of the activities that you will undertake in CpSc 111.
CpSc 111 is a very important course because it will provide you with the skills that you need to be successful in future courses. Many upper level courses will assume that you have a working knowledge of C, and possibly a working knowledge of C++. If you do not have this working knowledge, than you will struggle with both the concepts in the course as well as the programming language. If you are successful in CpSc 111, when you take future courses that assume a working knowledge of C, you will only struggle with the new concepts in the course.
To achieve the goal of providing you with a working knowledge of C/C++, you will be exposed to demonstrations by the instructor about how to write code. Also, to facilitate achieving this goal, you will be asked to read about programming in C and to write programs that you will submit for a lab grade; the programs that you write will be part of a laboratory experience.
These programs, as well as the lectures, will necessarily build on previous programs and lectures. Thus, one problem that you might encounter is that you may ``fall behind.'' I believe that falling behind in a course about programming skills is tantamount to failing the course: it is very difficult to play ``catch-up''. One approach to avoid ``falling behind'' is to try to stay ahead of the material. For example, begin programming assignments on the day that they are assigned, rather than the day that they are due! Also, try to read ahead in whatever C text book that you have purchased. Finally, write lots of C programs. If you only write the programs/labs that you are assigned, you risk falling behind.
I will now list some topics that we will likely cover, first the topics in C and then some topics in C++.