Syllabus
Structured Programming may be the most important class you take in college. If you are going to study science, and, increasingly, social science and humanities, you will need to write programs. Scientists use computers to work out the implications of complex models. Social Scientists use statistical program and databases statistics to evaluate their theories. Even in the Humanities, the advent of the World Wide Web and digital libraries has made programming an important skill.
If you plan to be a Computer Scientist, programming will be a major activity for the rest of your life. Even though programming is not the same thing as Computer Science, it is its foundation. If you plan to go into the IT industry, again programming will color everything you do. If you plan to teach Computer Science or IT, yet again, you will spend much of your time programming to keep up with changes. Programs are the primary product of the IT industry; they are the data for academic research; and they are what we teach students to do. Regardless of whether you plan to work in industry, academic research, or teaching, you will need to program well.
Like riding a bicycle, you learn programming by programming. Programmers have learned many things over the decades they have been programming, and this class will cover these things. But understanding comes from doing, not remembering. The labs, not the lessons, give you real knowledge. In the labs, the information presented in the lectures will be put into action. Two hours a week is little enough time to exercise all of the information from the lessons, so you will need to use the computers outside of class.
By the end of this class you will be able to write C programs and contribute to projects written in C. More importantly, you will enter the community of programmers. At some point in your career, you will need another language, which you can learn from its community. The community keeps its answers on the Web, but finding these answers takes skill. Moreover, if asked appropriately, skilled programmers give specific answers, knowing they will need to ask someday. You will learn to ask appropriate questions of the Web, your teachers, your classmates, and, ultimately, yourself is the most important skill you will learned here. that will support your throughout your career.
As you learn how to program and how to interact with the community of programmers, you will also learn a new set of technologies. If you are familiar with computers, your familiarity is probably with the Windows operating system. We will be using Linux, a Unix-like operating system and the tools: nano, gcc, make, and git. We will use the command-line interface, where you type in the command and its parameters. Learning to use this operating system and its tools will teach you much about how computers work, because it gives full access to its capabilities unmediated by a graphical user interface. It is not for the faint-of-heart, but it is for programmers.
The class will be challenging, but you can do it. It will require great effort and substantial time outside class, but nothing worthwhile comes without effort. I hope that by the end you will love programming as much as I do.
Comments
Post a Comment