College of Engineering and Computer Science
Computer Science Department
Computer Science 106
Computing in Engineering and Science
Spring 2006 Class number: 11672 Instructor: Larry Caretto

Jacaranda (Engineering ) 3333 Mail Code Phone: 818.677.6448

E-mail: 8348 Fax: 818.677.7062

Course Outline Comp 106, L. S. Caretto, Spring 2006 Page 2

Course Outline

Catalog Description

Corequisites: Math 150B. An introduction to computing, problem solving, and programming intended for science and engineering majors. Programming practice in a high level structured language. Lab projects involve both microcomputers and main frames. Two hours of lecture and one three-hour laboratory (Comp 106L) per week.

Instruction information
Name / Larry Caretto
Email address /
Office / Jacaranda Hall (Engineering Building) 3333
Phone / 818.677.6448
Fax / 818.677.7062
Office hours / Monday and Wednesday, 3:15 to 3:45 pm and Wednesday 6:15 to 6:45 pm, other times by email, drop-in, telephone or appointment
Miscellaneous Course Information
All students must enroll in both the lecture section (class number 11672) and the laboratory section (class number 11673).
Lecture class hours / Tuesday – Thursday 12:30-1:20 pm
Lecture class location / Jacaranda Hall (Engineering Building) 1600
Laboratory class hours / Tuesday – Thursday 1:30-2:45 pm
Laboratory class location / Jacaranda Hall (Engineering Building) 1600
Course web page / http://www.csun.edu/~lcaretto/comp106/

Expanded Description

This course uses mathematical examples to introduce computing. The corequisite of Mathematics 150B is intended to ensure that students are familiar with the basic calculus covered in Mathematics 150A and concepts of integration and series expansions covered in Mathematics 150B. In addition, examples are taken from topics commonly covered in high-school physics courses such as vectors, kinetic energy, and electrical circuits. Some programming applications to scientific, mathematical or engineering topics are used, where students may not have encountered these topics in previous courses. However, these programming applications do not depend on previous experience with the topic.

The course will use the C++ language as a vehicle for instruction in computer programming. However, the basic concepts of algorithm development, programming style, program development and debugging and program documentation are all skills that can be applied to any programming language. Examples of other languages will be given in the course to illustrate the generality of the principles that will be covered.

Text, cheat sheet, and software

Tony Gaddis, Standard Version of Starting Out with C++, (fourth edition) Scott/Jones, 2004.

During closed book examinations, students will be allowed to use a C++ study guide such as the one produced by BarCharts, Inc.® These guides usually have two or three pages, printed on both sides, and enclosed in plastic.

The text has two CDs with student editions of commercial C++ compilers. One of these is the Microsoft Visual C++ compiler that you will be using in the laboratory sessions of this course. The other is the Borland C++ Builder compiler. You can install either of these on your home computer to do C++ programming at home. A student version of the Microsoft Visual C++ compiler is also available in the campus bookstore for about $60.

Course Conduct

The Northridge grading system requires two grades, one for the lecture and one for the laboratory section. However, this is an integrated lecture-laboratory course, and you will receive the same grade for both the lecture and the laboratory. It will not be possible for you to fail one and pass the other.

Course Objectives – There are two basic objectives in this course: 1) Developing an overall approach to problem solving using a computer, and 2) Learning to use the C++ language to write programs on a desktop computer using the Microsoft Visual C++ programming environment on a computer running the Microsoft XP operating system. The second objective is a specific one. As a result of taking this course you will learn to develop and write simple computer programs in C++ using sequential statements, choice statements, loops, functions, file input and output, and arrays. The first objective is a more general one. As result of taking this course you should understand that the specific material that you learned about programming in C++ can be readily extended to other programming languages, once you learn the syntax of the other language.

Class Participation – Learning computer programming is difficult for many people and it can only be mastered by practice. Your learning in this course will be a combination of textbook material, suggested homework assignments, laboratory exercises, programming projects, lecture material and in-class discussion. Participate actively in the in-class exercises and discussion to ensure your learning of the course material.

Class courtesy – To keep a good learning environment your fellow students you should come to class on time and not leave before class is over. Turn off your cell phone or pager while you are in class. Do not disturb others by talking during lecture. If you do not understand some point of the lecture, ask the instructor for clarification. Do not wear perfumes, colognes, after-shave lotions, and the like that upset others in the class, especially individuals with allergies.

Lecture and Laboratory – The material presented in the lecture will be implemented in the laboratory. Students are expected to attend each class and spend the complete time in each laboratory session. In addition, students will spend a significant amount of time outside of the lecture and laboratory developing their algorithms into code and preparing their assignments for submission. If you do not do this, you will not be able to complete your laboratory assignments in the time available.

Assignments – You will receive the following assignments during the course.

·  Suggested homework assignments – these will not be collected or graded, but can serve as the basis for classroom discussion. Solutions to these problems will be posted on the course web site. These assignments will help you prepare for the quizzes and the midterm.

·  Programming exercises – Eight programming exercises will be assigned during the semester. These are intended to be relatively straightforward applications of the classroom lecture material. They will not require as much original programming as the programming projects described below. In the programming exercises, you will be given some of the code that you will need to complete the assignment. You will then be asked to make modifications to change the code or to answer questions about what the code did.

·  Programming projects – There will be three projects that will require you to apply the material you have learned in the course to develop programs that accomplish a given task.

·  Programming quizzes – There will be three quizzes during the semester. These will take place in the laboratory. You will be given 30 to 90 minutes to write code for a simple problem similar to those in the suggested homework assignments. The second and third programming quizzes will require you to writer a program on the computer; these quizzes will be open book, including course notes, previous programs, and the online help system on the computer.

·  Examinations – There will be a midterm exam and a final examination. These will generally have two kinds of questions: (1) examine some C++ code and determine what the output will be and (2) write code to accomplish a simple task. Examinations will be closed book, but you may use a study guide such as the one published by BarCharts, Inc.®

Grading – Your grade in this course will be based the assignments, quizzes and examinations listed above. These will be weighted as follows in computing the final grade:

Programming exercises 1 to 4 5%

Programming exercises 5 to 8 10%

Three programming projects 11%

First programming quiz 4%

Second programming quiz 8%

Third programming quiz 12%

Midterm examination 20%

Final examination 30%

The translation of a final numerical score into a letter grade rests solely on the judgment of the instructor. The following criteria will be used for letter grades:

A: Student knows almost all of the course material and is able to apply it to new algorithm developments and programming tasks.

B: Student satisfies one, but not both, of the conditions for an A grade.

C: Student knows fundamentals of the course and is able to apply this knowledge to routine algorithm development and programming.

D: Student has learned some course material but is not able to apply all the fundamental points of the course.

F: Student has failed to demonstrate knowledge of the course material beyond a minimal level.

Plus/minus grading will be used in this course. A plus grade indicates that the criterion for a given grade has been clearly met, but the student performance does not begin to approach the requirements for the next highest grade. A minus grade is given when the student performance does not quite meet the requirements for the grade, but the criterion for the next lower grade has been substantially exceeded.

The grading criteria are applied to a grading curve. A student with a given score will receive the same grade or a higher grade than a student with a lower score. The table below shows the range of grade distributions the last five times the instructor has taught the course.

Historical grade distribution for Comp 106 – Percentile is class rank divided by maximum rank (rank = 1 is highest score, maximum rank is lowest score)
Percentile / 0-15% / 15-30% / 30-36% / 36-55% / 55-58% / 58-88% / 88-97% / 97-100%
Grade(s) / A/A- / A to B / B+/B/B- / B to C / C+/C/C- / C to D / D to F / F

Although there is no guarantee that this semester’s grades will fall in the ranges of this distribution, you can use this table to estimate your current letter grade from your current class rank. For example if your rank is 6th out of 18 students you are in the top 33% of the class; this percentile rank is between 30% and 36%, which has previously resulted in grades of B+, B, or B-.

Letter grades are not given on individual assignments. Average grades for assignments returned to students will be announced in class or posted on the course web site so that you can check your standing. If you have any questions about how well you are doing in the course please ask me in person or by sending an email.

Plagiarism vs. Collaboration – Students usually work together on assignments. This collaboration is helpful and encouraged. By working together, each of you can improve your learning of the subject. However, there is a difference between working together to learn the material and copying another student’s work and passing it off as your own. The latter is a violation of academic standards and is improper behavior for students preparing for a professional career in engineering or sciences. Consequently, each student must submit his or her individual work to pass the course. Students who have formed programming teams (see below) are expected to submit their own team’s work and not allow others outside the team to copy their work.

Students who copy programs from some other source will receive an F in the course. Where two or more students, not on a team, submit nearly identical programs, all students involved will receive a zero grade on the assignment. Repeated violations will lead to an F grade in the course.

Identical solutions on exams, indicating copying, will result in an F grade in the course for both students involved. Students who are found cheating by submission of identical assignments, identical incorrect answers on tests or quizzes, or any other observations will be referred to the Office of the Dean of Students for disciplinary action.

Make-up examinations – There will be no make-up examinations or quizzes. Students will be assigned a grade on missed examinations based on their performance on other examinations. Programming exercises or programming assignments that are not submitted by the final date for late assignments (two days after the date of the final examination) will receive a grade of zero.

Changes – Students are responsible for all changes to this outline announced in class.

Course schedule

The schedule on the next two pages shows the topics for both the lecture and lab sessions. The reading assignments in the table are page numbers from the text by Gaddis. The suggested homework problems correspond to the lecture topics.

Course Outline Comp 106, L. S. Caretto, Spring 2006 Page 5

Date / Lecture Topic / Reading / Problems / Lab Topic / Due Date /
January 31 / Introduction to computing: hardware, software, operating systems, languages, compilers, editors, algorithms, program design and software engineering. / 1-22 / Pages 25-26, Problems 33, 34, 35, and 36 / Exercise 1 – Introduction to the C++ programming environment
February 2 / Simple C++ programs with arithmetic statements and input/output only. / 29-45, 83-92 / Complete exercise 1 / Exercise 1
February 7 / Data types: integer, floating point and character. Internal representation of numerical data. Conversion of data types. / 45-61, 100-106 / Page 74, problems 7 and 8; page 78, problem 27. / Exercise 2 – Writing simple programs with input and output and basic arithmetic operations
February 9 / Operations, expressions and replacement. Operator precedence. Integer division and expressions with different types. / 64-72, 93-98 / Complete exercise 2 / Exercise 2