CS 141 Introduction to Computer Science I Course Syllabus—Fall 2008 Office hours

advertisement
CS 141 Introduction to Computer Science I
Course Syllabus—Fall 2008
Instructor: Jim Owens
Office: Science Center 334-36 (ITL/COSI)
Phone: 268-2346
Email: owensjp@clarkson.edu
Office hours
Mon-Fri, 10-11am
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
08/25
09/01
09/08
09/15
09/22
09/29
10/06
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, 9/25 Exam 1 (Chapters 1-4)
Fall recess: No lab Monday; no class Tuesday
Introduction to loops
"for" loops
Designing loops
More loops: "while" and "do-while"
Chapters
1
1, 2
3
4
4
3
3
10/13
10/20
10/27
11/03
11/10
11/17
11/24
12/01
12/08
Functions for all tasks
Pass-by-reference
Files
Arrays
More arrays
C strings
More C strings
Thursday, 11/06 Exam 2 (Chapters 3, 5-8)
Dynamic arrays and pointers
Strings
Introduction to classes and objects
Thanksgiving recess: No class Thursday
More on classes and objects
Final exam week
5
6, 7
8
8
9
8
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 September 25. The second exam will be on or about November 6.
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. If you submit your work by midnight on the day of the lab, you will receive a 5% bonus.
Also, you will automatically get this bonus if you come to the lab.
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.
Program 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. There will also be an early bonus for programs.
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.
Download