SYLLABUS

CS 162: Introduction to Computer Science

Summer 2012

 

Prerequisite:

Prior programming experience using a high level language

This means you should have experience writing complete programs in a high level programming language.

 

 

Instructor:

Karla Steinbrugge Fant

E-mail:

karlaf@cs.pdx.edu

Office:

 FAB 120-19

 

 

Office hours:

Thursday 4-4:50 in FAB 120-19 or by arrangement

 

 

Texts:

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

To Program Design, Course Technology.

 

 

 

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

 

Lecture Notes:

Lecture notes and course power point slides are on D2L with a backup available on the class web site: http://www.cs.pdx.edu/~karlaf

 

 

 Handouts:

All handouts, due dates, required videos and programming assignments can be retrieved from D2L

 

 

Disabilities:

If you have a disability and are in need of academic

 

accommodations, please notify the instructor immediately to arrange needed support. This includes any accommodations required for taking examinations.

 

 

Hardware:

CS UNIX systems (solaris)

Compiler:

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

All work this term will be done on unix!

 

CS162 is a Hybrid Class

This term CS162 is being taught as a hybrid class which means we will be augmenting some lecture time with required course videos to allow for in-class lab time. Students will demonstrate proficiency at PSU by the midterm and final exam times. IT IS VERY IMPORTANT that all required videos be watched within the week that they are assigned. It is also important to regularly attend class as the hands-on lecture time is designed for your success. Missing class time or not watching the videos may mean missing vital information and failing the class!

 

To account for the fact that we only meet once a week, all announcements and course materials will be posted on PSU’s online system called Desire2Learn (D2L) and sent to your pdx.edu account, so it is important to login frequently.

 

All course materials (except exams and textbooks) are available electronically and programs can be submitted entirely electronically, so there is no requirement to come on campus to turn in your work! In fact, many due dates do not fall on class time together. However, the on-campus labs have tutors that can help with the assignments – so you might consider scheduling some time to work at PSU.

 

Questions?

If you have questions, the best approach is to post messages on Desire2Learn or send email directly to karlaf@cs.pdx.edu. Sending D2L Mail will not provide for a quick response as it is an internal-only mail system – it is not “email”.

 

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. Make sure to provide your full name and indicate which class you are in when sending a message.

 

Be careful when seeking help from others. You should seek help from (a) instructor, (b) TA’s, and (c) Tutors. We are here to work with you – either in person or remotely. But, beyond this be careful. Do not to share your code with others! Never post your code in the D2L discussions, the Web, social networking sites, or the web. Never give your assignments to any other PSU students, regardless of their situation. Never email your code to anyone except your instructor. Never turn in someone else’s work as your own. Performing any of these actions will result in a ZERO grade on that assignment.

 

If you have administrative questions and need to talk directly with the Instructor, send mail 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!

 

 

 

 

Is CS162 the right class for me?

CS162 is designed for students who have already programmed in a high level language previously. However, you do not need to know C++ prior to taking this class.

 

1)      You should already understand concepts such as:

 (a) variables

(b) loops

(c) arrays and

(d) functions.

 

3) You should be able to design and implement a complete program from a specification and decide how to use functions.

 

2)      You should be able to answer the following questions with ease:

a)      Write a conditional expression (if) to determine if someone’s age is between 13 and 21 (exclusive)

b)     Using a loop, sum all of the whole numbers stored in an array (assume there are “length” numbers stored in the array)

c)      Create a function that finds the largest number in an array. Use arguments and returned values in your solution.

d)     Create a function that will compare two names and display them in alphabetical order

e)      Create a complete program from scratch

 

Course Description:

Introduction to programming using a high level programming language.  Conditionals, I/O, Files, Functions, Classes, Pointers, Dynamic Memory, Linear Linked lists, Recursion and  Multi-Dimensional Arrays. Program correctness, verification, and testing.

 

 

Goals:

The goals of this class are to teach the syntax of a high level programming language to students who already know what programs are. This course will introduce the syntax of C++ including: data types, variables, conditionals, loops, functions, and arrays. It will introduce new constructs such as classes, pointers, dynamic memory, linear linked lists, recursion, and multi-dimensional arrays to prepare students for CS163, Data Structures. To learn and use advanced concepts provided by a modern structured computer language, such as data abstraction, separate compilation and the use of library procedures.

 

Material to be Covered - Topics:

Introduction and overview (4 hours)

I/O, Conditionals, Repetition, Arrays (4 hours)

Functions and Arguments (4 hours)

Introduction to Classes, Constructors, Separate Files (4 hours)

Introduction to Pointers and Dynamic Memory (8 hours)

Introduction to Linear Linked Lists (4 hours)

Recursion (4 hours)

File I/O (4 hours)

Arrays with Structured Elements (4 hours)

 

 

Computing Environment:

The CS UNIX systems (known as Solaris) using the g++ compiler which must be used for all assignments. Odin’s g++, Dev Cpp, or Visual C++ are not acceptable. Do not use the excuse but it runs at home on my PC.

 

 

Approach:

There are three major learning outcomes expected for CS162:

 

1.      Proficiency in Programming (in C++)

2.      Problem Solving and Critical Thinking (via participation)

3.      Proficiency in the Course Concepts

 

You must receive a passing grade in each of these three learning outcomes:

 

1.      Proficiency in Programming (in C++)

a.      5 graded programming assignments (30% of the grade)

b.      Midterm and Final Syntax Proficiency demonstrations (Pass/No Pass)

 

2. Problem Solving and Critical Thinking (via participation)

c.       5 written homework assignments (5% of the grade)

d.     Participate (Pass/No Pass)

                                                                          i.      Attendance and participating with inclass labs

 

3. Proficiency in the Course Concepts

e.      Watch the course videos each week (Pass/No Pass)

f.        Examinations (Midterm 25%,  Final 40%)

 

 

 

 

Policies for Proficiency in Programming (in C++)

 

Policies for Assignments:

   All 5 programming  must be done in C++ on unix

 

• 20% of a program’s grade is based on the program style, comments, and documentation provided with the program. Make sure to follow the STYLE SHEET!

 

• LATE assignments will be accepted: one week late, for 5% off (except for the last assignment). There will be situations where I will announce changes to the due dates in class and posted on the web site. Assignments may not be turned in later than one week late.

 

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

 

Submit assignments electronically to the D2L Dropbox (make sure to select the “submit” button after uploading the files, otherwise your submission will be lost). It is important to submit your assignment to the correct D2L Dropbox, otherwise it cannot be graded. For backup, please also email your assignment’s files as attachments to karlafgr@cs.pdx.edu. You may need to use a file transfer program – you can talk with the tutors (tutors@cs.pdx.edu) to get more information. On a PC I use a free program called WINSCP.

                                                                             

Each student is expected to submit only original work. Software and passwords must be kept confidential.  Any person who violates these will receive a grade of zero on an assignment which will result in an F for the course and a letter will be sent to the head of the CS Department. Identical programs will be treated as copying even with cosmetic changes. Material copied from the web will not be graded.

 

 

Policies for Demonstrations: Pass/No Pass

 

 

Policies for Problem Solving and Critical Thinking (via participation)

 

Policies for Homework:

   Comprises 5% of your grade.

   Every assignment includes a written homework component. All answers must be your own work and may not be copied from the web or other students. Be careful to not plagiarize. Doing so will result in a zero on an assignment and a failure in the class.

   The due dates correspond with your programming assignment due dates and should be submitted to the D2L dropbox.

 

Policies for in-class Lab Sessions: Pass/No Pass

 

 

Policies for Proficiency in the Course Concepts

 

Lecture Videos – Pass/No Pass

 

Policies for Exams:

 

It is against department policy to give final exams early (no exceptions!). Exams will all be closed book, closed notes.

 

 

 

Minimum Grade Requirements:

 

 

 

Demonstrate Proficiency in C++

Pass/

No Pass

Labs: Open Labs or

Classroom lab time

Participation

 

 Pass/

No Pass

 

Attendance

Keep up with Course Material

Pass/

No Pass

Every week watch Videos

and Read Chapters

Individual Assignments

-          Written Homework

 

-          Programming Projects

 

5%

 

30%

Submit to D2L Dropbox

 

Midterm

25%

At PSU

Comprehensive Final

40%

At PSU

 

Policies:

• Failure to turn assignments in on time will result in a zero for that assignment. Assignments will not be accepted after the last day of class.

 

• CHEATING:  Each student is expected to submit only original work. Any person who violates these requirements will receive a grade of zero for an assignment which based on the above grade requirements will result in an F for the course. A letter will be sent to the head of the CS Department. 

 

 

 

Students will receive a zero on an assignment if any of these activities take place:

1.      Student accepts an assignment and/or program from another student

2.      Student supplies an assignment and/or program to another student

3.      Student posts the assignment and/or program on the web, social networking site, or D2L discussions

4.      Student shares their password with another student at PSU giving that student access to their assignments and/or programs

5.      Students work together on assignments and turn in the same and/or similar assignments.

6.      Student turns in work that was obtained from other sources such as the web, friends, tutors or TA’s.

7.      Student leaves work available for others to copy from

8.      Student attempts to purchase programs from others (in person or electronically).

 

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. In such an event, all students involved will receive a zero on that assignment.

 

No Basis for a Grade – A no basis for a grade in this class only applies when a student has not turned in any work, not taken any exams, and have not participated on D2L. If you have complications and cannot finish the class, make sure to drop or withdraw. Otherwise you will get a grade in the class.

 

  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.

 

Being Successful!

1.      Login and Participate on D2L.

2.      Keep up with Materials

3.      Watch all class lecture videos each week

4.      Attend all class sessions

5.      Practice Programming Constructs

6.      Ask Questions! Use Tutors, use D2L discussions, and correspond with me!

 

Try to Exceed my Expectations!