Objectives CS100 expects students to acquire the following skills: + Use computer and Internet technology (web, USENET, CIT resources). + Develop and implement algorithms from verbal/written problems. + Develop programming skills to produce working code/software (design, test, trace, debug, document, demonstrate). + Categorize and apply a computer language (elements, syntax, semantics). + Build and use expressions with variables, operators, and other language elements. + Implement control structures (conditions, loops). + Use methods/functions to replace redundancy and improve modularity. + Know the meaning and applications of the fundamentals of object-oriented programming. (encapsulation, inheritance, polymorphism). + Use and apply arrays for situations with collections of data (one dimensional, multidimensional). + Perform text processing with characters and strings. + Search and sort information (linear search, binary search, select sort, insert sort). + Perform user and file input and output for text. + Plot numerical data. Advice Each semester, we seem to give the same advice to students. What follows is our collective wisdom that course staff might wish to pass along: + Follow the course procedures. With so many students, we generally do not bend the rules, to be fair to the majority that follow them. + Do not assume that because you have no experience that you will do "the worst." Sometimes inexperienced students have been first in the class. + If you have programmed before, do not assume that this class will be a "breeze." Sometimes an experienced person has developed bad habits, which we must break. + You will take tests without computers in front of you. So, you must learn how to develop your programs on paper first. (Guess what industry prefers?) Heed the programmers' creed, "The sooner to computer, the longer it takes." + Programming is a skill which you must practice, just like sports and music. + Go to lecture: professors like to test what they teach! + Go to section: sometimes details are left for section. Plus, waiting to pick up work from Carpenter means that the consultants spend more time handing back work and not answering questions. + Seek out help when you are stuck lest you get even further behind. Likely you will need to spend some time catching up, but better now when you have the time, than later. "Save now--suffer later, or suffer now--suffer later." + Retrieve all graded work. If you suspect there's mistake in your grade, only the actual graded work will be your proof. + Letter Grade or S/U? If you take CS100 S/U, under no circumstance treat the course as a "cake walk." In the past even S/U students have had to drop out or fail because they did not practice. + Attend all classes! Not everything discussed in lecture and section is in the book or online. + Wait-and-cram studying techniques typically cause failure. You must practice! Non-technical majors (non-engineering, non-CS) are not at a disadvantage unless they do not practice. + Whatever is fuzzy before a test doesn't usually clarify during it. + When all else fails, the answer is usually "Carpenter."