SYLLABUS

CS 161: Introduction to Computer Science 1

 

Winter 2007

 

Prerequisite:

Math 111 or consent of instructor

 

 

Instructor:

Karla Steinbrugge Fant

E-mail:

karlaf@cs.pdx.edu

Office hours:

Monday and Wednesday 9-9:50 in FAB 120-19

 

 

Texts:

D.S. Malik, C++ Programming: From Problem Analysis

To Program Design, Course Technology.

 

 

 

Russell Shackelford, An Introduction to Computing & Algorithms, Addison-Wesley.

 

 

Hardware:

All programs are to be implemented and tested on odin or the cs unix systems.

Compiler:

C++ language implemented by the g++ compiler.

 

 

Lecture Notes:

Lecture notes and course power point slides are on the class web site: http://www.cs.pdx.edu/~karlaf/CS161_Winter07.html

 

 

Handouts:

All handouts, course outline, and programming assignments can be retrieved from the web at:

 

 

 

http://www.cs.pdx.edu/~karlaf

 

 

Disabilities:

If you have a disability and are in need of academic

 

accommodations, please notify the instructor immediately to arrange needed support

 

 

 

Important Web Sites

Here are the links you will need:

 

1.      Frequent the CS161’s  Home page: CS161 Fall 06 Web Site

a.      For up to the minute announcements

b.      TA office hours

c.       Handouts and Assignments

d.     Course Lecture Notes and Course Slides

 

2.      Weekly login to WebCT: http://psuonline.pdx.edu/

a.      Your password should be the same as your odin password.

b.      Weekly participate in online discussions.

c.       Post questions you might have here – for class discussion.

d.     Check your grades

e.      Check the grade book to make sure your program’s have been received.

f.        Use the calendar tool to keep track of when assignments are due.

 

Questions?

If you have questions, the best approach is to post messages on WebCT or send email directly to karlaf@cs.pdx.edu. Office hours listed on this syllabus are also highly recommended. When coming to office hours, please make sure to bring a hardcopy of your program!

 

Electronic mail works the best if you have a question that you encounter as you work on the programming assignments. Please be advised that questions should be clearly formulated and it should be clear from the question that you have attempted to solve the problem on your own. Do not, unless explicitly asked by the Instructor, simply email your program and expect a response! Instead, talk about what problems you are encountering and what you have done to make progress.

 

Course Description:

Introduction to fundamental concepts of computer science. Problem solving, algorithm and program design, data types, control structures, subprograms. Surveys current social and ethical aspects of computer science.

This course is primarily designed for CS majors.

 

Goals:

To introduce students to the fundamental concepts of computing. Problem solving, the design of algorithms for solutions, and the translation of tested algorithms into the grammar of a high-level computer language are emphasized. Students are encouraged to develop a consistent programming style and a systematic method of internal program documentation.

This course is not just a programming or C++ class!

 

This course introduces the software life cycle along with the goals of systems design; reliable, modifiable, understandable, and efficient program development is emphasized. Students gain experience with design notations using data flow diagrams and structure charts. Computer ethics are introduced with an analysis of the nature and social impact of computer technology; this is emphasized using example cases and integrating ethical issues into at least one project and exams.

 

Computing Environment:

The Computer Services Sequent (ODIN) will be used for all assignments. The C++ language as implemented by the ‘g++’ compiler on ODIN (odin.pdx.edu) will be used for assignments. Minimal UNIX instruction will be given in class. PSU Computer Services schedules UNIX orientation classes. Students may choose to do their initial development at home on a PC, however, all programming assignments must run on ODIN and will be graded based on their execution on ODIN. The excuse: but it runs at home on my PC will not be accepted. In fact, it may take some extra time to port an assignment that runs on a PC to ODIN and is not recommended for first time users. As such, extra time should be allocated. In addition, make sure that your programs are protected from outside access; unprotected files will be treated as ‘cheating’. Therefore, follow these instructions to setup your account:

 

As you login, the first time this term, please type the following to setup your CS161 account:

 

Enter 4 to exit the menu; now you are at the unix prompt. Type:

mkdir cs161

 

When you are ready to start working on your program, please work within the cs161 sub-directory. After you login in the future, type the following to get into that directory;

 

cd cs161

 

All PSU students with a valid PSU ID are eligible for a permanent account of ODIN. The PSU Computer Center provides remote access to ODIN via dial-up lines, or you can access ODIN through the microcomputer labs around campus. Please be advised that you may find the dial-up lines busy. Students are advised to check into commercial internet service providers if you plan on doing large amounts of work on ODIN from home. Any internet service provider can provide access to ODIN via SSH or Putty (odin.pdx.edu). Students may find this more convenient than waiting in line to use the campus microcomputer labs.

 

Topics:

Computer components, hardware, software (3 hrs)

Problem solving, algorithm design (5 hrs)

Data types, declarations and operations (5 hrs)       

Control structures (5 hrs)

Subprograms, parameter passing (5 hrs)                  

Survey of social and ethical aspects (2 hrs)  

Sorting and searching (2 hrs)                           

Application software development (3 hrs)

 

Projects/Homework:

A sample program will be used for beginning practice with the computer system, followed by five graded programming assignments:

 

• 6 programming assignments to be turned in via email on the specified due date, emailed to your instructor.

 

• These comprise 35% of your grade. 

• 20% of each programming assignment is based on the program style, comments, and documentation provided with the program.

• Make sure to follow the STYLE SHEET!

 

• NO LATE ASSIGNMENTS will be accepted. There will be situations where I will announce changes to the due dates in class and posted on the web site.

 

• To email your programs to me type the following (the double quotes are essential!):

 

mailx -s “My Name - Prog#1 Submission” karlaf@cs.pdx.edu <prog1.cpp

                                                                                  (teacher’s email address)

 

• Partial credit will be given for incomplete work. This means that it is better to turn in something, even if it doesn’t work. Remember, late assignments are not accepted! If you find you are continually having problems meeting the due dates, make an appointment.

 

On-line Discussions

WebCT will be used in this class to facilitate online discussions used to help students become familiar and master the concepts of problem solving and program design. We will use this forum to create algorithms and discuss some of the syntax learned in class. Students are expected to login to WebCT every week and participate! Your participation is graded; it must be (a) meaningful, (b) instigate other discussion, (c) and be related to the class subject matter. Simply providing the entire solution and/or code will not promote a meaningful discussion! Also, logging in right before the discussion question is closed for the first time will not instigate other discussion and will be graded accordingly!

 

Grading and Examinations:

• Grades are based on the following percentages:

 

Individual Programming Assignments

35%

5 graded emailed projects

Participate Weekly with Online Discussions

5%

Using WebCT

Midterm

25%

In class

Comprehensive Final

35%

In class

 

Study guides will be provided for the midterm and final, with sample self-check (non-graded) exercises for you to practice. These are available on the CS161 Fall06 web site.

 

Minimum Grade Requirements:

For a C or better in this class, you must have a grade of 65% or better on the programming assignments and a grade of 65% or better on the examinations. In addition, students must turn in each programming assignment to pass this class.

 

Policies:

It is against department policy to give final exams early (no exceptions!). Exams will all be closed book and closed note exams. All makeup exams will be proctored through the testing services center and cost students a fee ($10). All makeup exams must be pre-arranged with your Instructor!

 

• Remember, assignments are due on the due date. Failure to turn assignments in on time will result in a zero for that assignment. Programs will not be accepted after the last day of class.

 

• CHEATING:  Each student is expected to submit only original work; programs must compile and must produce output.  Any person who violates these requirements will receive a grade of F for the course and a letter will be sent to the head of the CS Department.  Note that the instructor may ask any student to explain his/her program verbally.

 

The work you submit must be your own. It is not acceptable to hand in assignments in which substantial amounts of the material was done by someone else. You must be especially careful that in the process of discussing problems with other students that they do not inadvertently end up using your work.

 

• GRADING will be done near 90% (A), 80% (B), and 65% (C). However, exact break points for grades will depend upon the overall class results. For P/NP grade option, a "pass" grade requires an overall grade of at least a C.

 

INCOMPLETES will be given only when a minimal amount of work remains to be completed, only for a valid reason and only for a fixed time period. Do not expect an incomplete in this class.

 

• DROPPING: Students may drop the class at any time. Petitions will be signed without question. However, this is a very time consuming class. If you do not think you will have time, please drop immediately. CS161 is a very popular class and there are other students who are waiting for a seat to become available. Do yourself and them a favor and drop! If you are not a computer science major, you may want to consider taking CS105, CS106, or CS107; these classes are not as intensive!