CS 141 Introduction to Computer Science I Course Syllabus—Spring 2009 Instructor: Jim Owens Office: Science Center 334-36 (ITL/COSI) Email: owensjp@clarkson.edu Office hours Mon & Fri, 10-11am Tue – Thur, 3-4pm Course goals 1. Students should learn fundamental principles of how to solve problems through computer programming. The programming techniques will include good program design practices and programming style, resulting in programs that are correct, reliable, robust, efficient, and maintainable. 2. Students should learn basic features of the programming language C++. Textbook Problem Solving with C++: The Object of Programming, by Walter Savitch, Addison-Wesley (7th edition). ISBN: 0-321-53134-5. Syllabus Week of 1/8 1/12 1/19 1/26 2/2 2/9 2/16 2/23 Topics Computing careers Introduction to programming languages and C++ Examples: "Hello, world!" and "Peas in a pod" Storing data in variables Input and output Type safety and C++ Programming style Boolean values and expressions Flow of control using "if" statements Functions More functions Thursday, 2/5 Exam 1 (Chapters 1-4) Introduction to loops "for" loops February Break: No class Thursday More loops: "while" and "do-while" Functions for all tasks Chapters 1 1, 2 3 4 4 3 3 5 3/2 3/9 3/16 3/23 3/30 4/6 4/13 4/20 4/27 Pass-by-reference Files Arrays More arrays C strings Spring Break: No class More C strings Thursday, 3/26 Exam 2 (Chapters 3, 5-8) Pointers Dynamic arrays String class Structs Introduction to classes and objects More on classes and objects Final exam week 6, 7 8 8 8 9 8, 10 10 10 Grading Labs Programs Exam 1 Exam 2 Final Exam 15% 10% 20% 25% 30% Exams The first exam will be on or about February 2. The second exam will be on or about March 26. See the syllabus above for more information. You are responsible for all material in the lectures, as well as any specific reading assignments given in class. Class participation is strongly encouraged. Lab assignments The computer lab periods are scheduled every Monday in the Internet Teaching Lab, room SC334, on the third floor of the Science Center. These labs are an essential part of the course. It is important to come prepared for each lab, having looked through the assignment and remembering to bring all necessary materials. If you cannot get the lab done during the lab period, lab assignments will be due by midnight on Thursdays. In addition to the scheduled labs, I will be available during office hours to help you complete your lab assignments, answer questions about the course, help with homework, and so on. See the Lab Web page for information on lab and program assignments. Homework assignments In addition to the labs, additional programs will be assigned in class. These programs will typically require more thought than lab assignments and must be individual efforts. Programs will be assigned in class and will generally be due two weeks later. Late Policy With computers, everything that can go wrong will go wrong, usually at the least convenient time. Therefore, I suggest that you begin your assignments early, so you will immediately realize if there is something you don't know. If you start it the night before it is due, chances are that you will have some problem that you won't be able to solve in time. Please heed my suggestions. If you don't, I can almost guarantee trouble. If you fall behind, it will be difficult to dig yourself out, as late assignments will not be accepted. Academic Integrity Labs and programs for this class must be done individually. Feel free to discuss the assignments and strategies for solving them, but write them up yourselves. Some well-meaning students, in the process of "helping" a friend, wind up essentially doing the assignment for the friend. Not only is this not allowed, but you are really doing your friend a disservice. Programming is learned by doing it yourself. You are encouraged to learn from each other and help each other understand Computer Science. Teach each other and exchange ideas, but be ethical—don't copy or modify a program which isn't yours (or allow another student to write or debug your programs for you). If you are having trouble writing a function, don't copy the function from your friend. If you do, that will be considered cheating. In addition, you will not learn the required concepts, and will do poorly on the tests. Instead, ask your friend (or somebody else) to explain to you what you need to know to write the function. Then write it yourself. It is considered cheating to look at somebody else's program, or to show your program to another student. I take cheating seriously. Furthermore, if you discuss your program with somebody else, that should be acknowledged in your program. If you find yourself getting behind, please see the course instructor. We can work together to get you back on track. Resist the temptation to copy another's work. The penalty for the first offense will be a zero for the assignment. A second offense will result in an F for the course. Repeated or flagrant cheating, including any cheating on tests, will result in an immediate notification to the academic integrity board.