Course Information for Computer Programming I (CS 1500, Section 001) Fall Term 1994 INSTRUCTOR: Prof. John Sarraille OFFICE: CS-102B, Cal State University OFFICE HOURS: MWF 10:30-11:30; TuTh 14:00-15:00, or by appointment PHONE NUMBERS: Office: 667-3345; CS Dept: 667-3185 BASIC SCHEDULE INFO: The class is scheduled to be held from 11:15 to 12:42, each Tuesday and Thursday in D-028. Most of the time we will meet in D-028 (Drama Building). When we need to do lab work with the computers we will meet in the Computer Science Department Laboratory in room CS-102. Class sessions will be a mixture of lecture, classroom lab, and computer lab -- as circumstances dictate. Since the exact dates on which we meet in the computer lab cannot practically be determined ahead of time, I will announce these sessions in class. Students are responsible for attending class regularly and learning when computer labs will be done. REQUIRED TEXTS: 1) "Pascal" by Nell Dale and Chip Weems (4th Edition). 2) "Learning the Unix Operating System" by Grace Todino, John Strang, and Jerry Peek (2nd Edition). EQUIPMENT: Each of you will be given an account on the Computer Science Department Sun 3/60 computers located in CS-102, and you will be shown everything you need to know about their use. I will test the programs you write for this course on a Sun 3/60 computer, so you must write programs that will compile and run without errors on these machines. If you are used to another Pascal compiler, you will have to be careful about this. The 3/60's are available for you to use in the lab during certain hours. Due to budgetary constraints beyond our control, lab hours are subject to change on short notice, so please check the postings of the lab hours just outside CS-102, or on the doors to the Computer Science Building. The 3/60's can be accessed and used remotely on a 24 hour basis, both via the campus local area network and off- campus telephone/modem connections. The phone numbers for making modem connections are from Turlock 667-3130; toll-free from Modesto 523-3714, 523-3715 & 523-2173; toll-free from Merced 723-2810 & 723-2826; and toll-free from Stockton 474-5784 & 474-5788. COURSE OBJECTIVES: The main aim of this course is to train you to do computer programming. You will be learning the Pascal programming language, but that is a very small part of the course. Once a person learns the truly important aspects of computer programming, he or she can learn the use of another programming language in two or three weeks! The real objectives are to acquire good problem solving skills, algorithm design techniques, and skill in choosing ways to represent data. It will not be easy to gain these objectives, but you will do well if you are patient and persistent. Some other course goals are to learn the basics of program testing and debugging, to find out how to use the Sun 3/60 workstations effectively, to gain facility with JOVE -- a powerful text editor available on the Sun's, to develop self-confidence and self-reliance, and to acquire the ability to cope with the inherent uncertainties and complexities of today's computing systems. COURSE COVERAGE: In Dale & Weems, we will cover chapters 1-9 and 11, plus several topics from chapters 10 and 12-14. Since we are covering 14 chapters in 13 weeks, you will have to read a little over a chapter per week in Dale and Weems to keep up with me. I also expect you to read all (79 pages) of Todino and Strang in the first 2-3 weeks of the course. Material from Todino and Strang will be discussed as needed, much of it in the first two weeks of the course. TESTS & GRADING: The course has three main components: homework, programs, and exams. The homework component consists of exercise sets due about every two weeks. The program component consists of assignments to write three programs. Programming assignments will include doing a top-down design, writing the actual program text with its documentation, and composing program test data. The exam component consists of three quizzes, and a comprehensive final exam. Each quiz and exam will cover topics from homework, reading assignments, programming assignments, and lecture. Ideally, you will do well on all the homeworks, programs and quizzes, and your grade will be determined by giving a weight of 10% to your homework average, 15% to each program, and 15% to each quiz. You don't have to take the final. If you feel that you need to improve your grade, you may take the final, and I will replace your lowest quiz score with your grade on the final (provided that your grade on the final is higher than your lowest quiz score.) There will be no make-up quizzes. One over-all exception to the above: In order to pass this course, you must get a passing average in both the programming component and the exam component. To pass the programming component, you must do all programming assignments, and turn them in at a reasonable time. LATE ASSIGNMENTS: If you are having serious difficulties with getting an assignment done on time, then discuss the matter with me as soon as possible. Late assignments will be penalized 10% per calendar day late, up to a limit of 50%. Late programs and homework overdue by more than 10 calendar days may not be accepted at all, especially near the end of the semester. (Notice that this means you could fail the course because of one late assignment.) PROBLEMS: If you think you may have to miss a quiz or a due date because of circumstances beyond your control, then let me know as soon as you find out about it. I will do my best to be fair with you. GUARANTEED JOBS -- $100,000 PER YEAR: Now that I have your attention, let me say that I hope to be accessible and helpful to you during this course. I want you to get as much as possible out of it. But remember that education is a two-way street. You have to do your part by PARTICIPATING. Spend a lot of time reading your textbook, and stay well ahead of my place in the lectures. Do all assignments early or on time. Attend class. Listen. Take notes. Review your notes before each class. ASK YOUR QUESTIONS. MAKE YOUR REMARKS. If you have something half- way important to say, say it! You don't have to stand on ceremony. If you don't want to speak up in class, get one of your outgoing classmates to ask the question. Bring a little enthusiasm and sense of adventure and fun with you when you come to class! Come to office hours or see me after class if you want to discuss something one-on-one.