SYLLABUS

CS 162: Introduction to Computer Science

Winter 2018

 

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:

Section 001: Karla Steinbrugge Fant

 

 

E-mail:

karlaf@ pdx.edu

 

Office:

FAB 120-19

 

Office hours:

Karla Fant: Tues/Thurs 2:30-3:20 in FAB 120-19, or by appointment

 

 

 

 

Texts:

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

To Program Design, Course Technology.

 

 

 

 

Lab Manual:

Russell Shackelford, An Introduction to Computing & Algorithms,

Addison-Wesley.

 

Required. Purchase from the PSU Book Store

The Linux and Vim Manual published for 2018 and

The CS162 Lab Manual published for Winter 2018

(earlier editions are not acceptable)

 

 

Lecture Notes:

Lecture notes and course power point slides are on D2L

 

 

PSU ID:

 

Bring your PSU ID card to all lectures and labs; it will be used for attendance purposes.

 

 

Handouts:

All handouts, due dates, and 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.

 

All DRC quizzes and exams must be taken at the same time as the in-class quizzes and exams except when otherwise pre-authorized. Such pre-authorization should take place at least 24 hours prior to the in-class quiz or exam.

 

 

 

 

System & Compiler:

 

CS Linux (linux.cs.pdx.edu).

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

GNU GCC C++ compiler (g++) in the default –ansi mode

Use the C++ standard 98 guidelines (-ansi).  

 

Editors MUST be either: pico, nano, vi, vim, or emacs

No IDEs are allowed when working in C++;

Not allowed: Dev Cpp, Visual Studio or xcode

 


Course Description and Goals:

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.

 

The goals of this class are to teach the syntax of a high level programming language to students who already know how to program. This course will introduce the syntax of C++ including: data types, variables, conditionals, loops, functions, and arrays. It will introduce classes, pointers, dynamic memory, linear linked lists, recursion, and multi-dimensional arrays to prepare students for CS163, Data Structures. Concepts will include data abstraction, separate compilation and the use of library procedures.

 

Prior Knowledge expected:

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: variables, loops, arrays and functions.
  2. You should be able to design and implement a complete program from a specification and decide how to use functions.
  3. You should be able to answer the following questions with ease:

(a)   Write a conditional expression (if) to determine if an age is between 13 and 21

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

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

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

(e)   Create a complete program from scratch

 

Proficiency  Demonstrations:

 

 

Important Class Expectations:

1.     Attending lectures is required to pass the class.

    1. PSU ID’s are scanned each lecture (at the beginning or end of the lecture)

b.     Arrive within the first 10 minutes to count as attending.

c.     It is expected that students will stay for the entire class period, until excused.

 

  1. Attending lab sessions is required to pass the class
    1. PSU ID’s are scanned at the beginning and end of labs for attendance.

b.     Arrive within the first 10 minutes to count as attending.

    1. Be prepared to stay the entire lab period.
    2. One lab session may be missed without making it up.
    3. It is expected that students will program, write algorithms, and design test plans for the entire duration of the lab. If lab work is completed prior to the end of the lab period, practice questions may be assigned by the lab assistants.

 

  1. If you miss more than one lab session, it needs to be made up within a 1-2 week period.
    1. Attendance to a makeup lab must be scheduled through https://cs162_makeup_lab.youcanbook.me/
    2. To makeup more than two labs, contact your teacher to seek authorization. 
    3. Makeup labs begin during the third week of the term.
    4. To makeup a lab beyond the 1-2 week time period, contact your teacher to discuss alternatives. Do not assume that an early lab can be made up late in the term!

 

  1. Pre-lab exercises must be brought to the labs already completed, starting with lab #2.
    1. The prelabs are required as part of your attendance.

 

  1. Lab Manuals will be collected and graded twice during the term.
    1. It is expected that students will fill-out the lab questions in the manual as they progress through a lab. Proficient level programming is expected.
    2. The lab manuals are graded for completion and readability.  
    3. Students will complete a self-assessment as part of the grading process.
    4. Group activities are also part of your lab manual grade!

 

  1. Assignments consist of programs and their corresponding write-ups
    1. Due dates are specified in the course outline
    2. The first two programs will have an algorithm written in outline form and a flow chart. The algorithm must be between 400-600 words.
    3. Programs 3 and 4 will have an algorithm written in paragraph form (400-600 words) and a data flow diagram.
    4. The last program will not have an algorithm or diagram turned in.
    5. Algorithms and Diagrams must be uploaded to D2L no later than 7pm on due date
    6. Be careful to not plagiarize. Doing so will result in a zero on an assignment and a failure in the class.
    7. Every write-up must be completed and submitted.

 

 

 

 

Lab Manuals:

The labs are where we reinforce the materials learned in lecture. It is where concepts will be practiced prior to applying them to the larger individual programming assignments. It is expected that all students will perform the lab work each week.

 

 

 

 

Lab Sessions:

Individual Programming Assignments:

 

 

 

·       Written Algorithms and Diagrams to your Programming Assignments:

a.     The first four programming assignments have a written algorithm; refer to the style sheet for guidelines.

b.     Every written algorithm must be completed to pass CS162.

c.     All assignments will include drawings such as flow charts or data flow diagrams as specified in the course outline.

d.     All algorithms and code 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.

 

·         Program Style

a.     20% of a program’s grade is based on the program style, comments, and documentation provided with the program. Follow the STYLE SHEET!

b.     Avoid single character variable names, except for loop control variables and array indices

c.     Avoid while(1) or the use of break or return from within a loop

 

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.

 

 

Grading Policies:

 

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

 

      If a DRC exam is being taken, please email your teacher with a reminder that an exam is needed at the testing center. Do not expect an exam to automatically be sent without such email.

 

Overview of Grading Policies

Demonstrate Proficiency in C++

-         Midterm Demo

-       Final Demo

Pass/No Pass

-By appointment at PSU

(A passing grade is required for both demos)

Lab Participation

-       Prelabs

-       Lab Code Submitted

 Pass/No Pass

 

 

-Attend the lab section enrolled in

./submit lab code at the end of each lab

(Attendance to all but 1 lab session is required)

Graded Lab Manuals

 5%

-Lab manuals are collected twice during the term.

-Students will supply a self-assessment

Individual Assignments

-          4 Written Algorithms

-          5 Programming Projects

25%

 

Submit to correct folders in the D2L Assignments “dropbox

(Each must be submitted and receive scores of 40% or above; the average of all must be 65% to pass)

Quizzes and Midterm Exam

-          2 Quizzes

-          Midterm Exam

-           

 

5%

25%

At PSU or by Proctor

 

(The midterm must be 65% or greater to pass)

Comprehensive Final Exam

 

 

40%

 

 

At PSU or by Proctor

Must receive a Passing score

of 65% or greater to pass CS162***

 

 

 

 

 

 

Seeking Assistance

Be careful when seeking help from others. We recommend seeking help from (a) instructor, (b) TA’s and lab assistants, and (c) Tutors. Use caution otherwise. Do not to share your code with others! Never accept code that was not written by someone else! Never let someone else type code for you. This means, NEVER accept code from someone else, even if it is a tutor!

 

·       Never post your code in the D2L discussions, the web, or social networking sites.

·       Never give your assignments to any other PSU students, regardless of their situation.

·       Never email your code to anyone except your instructor.

 

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.

 

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 aforementioned 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 provides proficiency demo questions to other students

2.     Student provides proficiency demo solutions to other students

3.     Student solicits (asks for) proficiency demo questions and/or solutions from other students

4.     Student copies lab code from another student

5.     Student copies lab manual solutions from another student

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

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

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

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

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

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

12.  Student leaves work available for others to copy from

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

 

Performing any of these actions will result in a ZERO grade on that assignment.