SYLLABUS
CS
162: Introduction to Computer Science
Winter
2014
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@ pdx.edu |
|
Office: |
FAB 120-19 |
|
Office hours: |
Monday 12-2pm |
|
|
|
|
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
linux (linuxlab.cs.pdx.edu) or CS unix. |
|
Compiler: |
C++
language implemented by the g++
compiler. All
work this term will be done on CS unix or linux! Allowed
editors: vi, vim, emacs, pico, or nano Do
not use Dev Cpp, Visual Studio or xcode No
IDEs are allowed |
|
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.
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 an age is between 13 and 21
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 order
e)
Create a
complete program from scratch
Two Sections
of CS162
This term there are two
sections of CS162. Section 001 is an “in-class” section and Section 002 is an
“online” section. These classes are not
the same.
Section
001: In class students will experience traditional lectures. Attendance is required to pass the class. Lectures may be
augmented with required course videos to allow for in-class demonstrations.
Section 002: Online students
will have online materials available through D2L which will include lecture
videos, slides, practice quizzes, and discussions. Online students will be
required to take the midterm and final exams at PSU or an approved proctoring
center and demonstrate programming proficiency twice during the term. Remote
students will need to arrange for examination and proficiency demonstrations
early in the term through proctoring centers.
To
account for the fact that each of us may be watching the class at different
times, all announcements will be emailed to your pdx.edu email account
(please forward this email and read it frequently). The
lecture video links and handwritten notes are only available through D2L.
Which Lab?
There
are both in-class and self-paced labs available. These labs are where we
reinforce the materials learned in lecture. It is where concepts will be
practiced prior to applying them to your larger programming assignments. Work on the labs is required and it is
expected that all students will perform the lab work each week. It must be
submitted by the following Monday of each week to count as participating in
CS162.
The
in-class labs are those that have times and classrooms assigned. Students will
use their own computers (laptop, netbook, table, etc.) or check-out a PSU
laptop computer. All work will be done on unix or linux, as assigned. Attendance to the labs is required to pass
CS162.
The self-paced lab is the “CS162L-TBA lab section”. All materials are
available on D2L; students will login to a special linux virtual machine
(quizor.cs.pdx.edu) to gain access to the code that we will be using. To gain
assistance, contact your instructor (karlaf@pdx.edu),
the tutors (tutors@cs.pdx.edu) or plan
to attend the makeup labs where TAs and lab assistants are available.
Course Materials:
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! 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 http://d2l.pdx.edu or send email directly to karlaf@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@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!
Computing Environment:
The CS linux or unix systems using the g++ compiler must be used for all assignments. Login remotely using ssh, putty, or terminal
programs to www.cs.pdx.edu. Dev Cpp, or Visual C++ are not acceptable. Do
not use the excuse but it runs at home on
my PC. This is even the case if your
PC has linux installed.
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)
Approach: There are three major learning outcomes
expected for CS162. You
must receive a passing grade in each of these three learning outcomes:
1.
Proficiency in Programming (in C++)
a. 5 graded programming assignments
b. Midterm and Final Syntax Proficiency
demonstrations (Pass/No Pass)
2.
Problem Solving and Critical Thinking
(via participation)
a. Pre-lab exercises (Pass/No Pass)
b. Participation (Pass/No Pass)
i.
Section
001: Attendance and Lab Participation
ii.
Section
002: Online Lab Participation
3.
Proficiency in the Course Concepts
a. Examinations (Midterm, Final)
b. Section 002: Watch the course videos
each week.
Policies
for Assignments:
• Comprises 35% of your grade.
• All 5 programming must be done in C++ (refer to system
requirements at the beginning of the Syllabus)
• Every assignment includes a written homework
component. These must be completed to get a grade on the assignment. 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.
• 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 (the
last assignment cannot be turned in late).
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.
There are no exceptions. Turn in what you have after 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.
• 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
Lectures:
• In-class students participate by attending class lectures. Students are expected to arrive within the first 10 minutes to count as attending.
• Online students
participate by watching videos. It is expected that online students will
watch the lecture videos posted on D2L. Missing the videos will mean missing
what you need to be successful in the course. Keeping up with the course material is vital.
Labs:
• In-class lab students participate by attending the labs. Students are expected to arrive within the first 10 minutes to count as attending.
• Pre-lab exercises must be brought to the labs already completed. They are required for your attendance. They are designed to prepare you for the labs and are Pass/No-Pass.
• Self-paced lab students participate by uploading completed pre-lab exercises onto D2L and submit the lab code with the script outlined in each lab worksheet.. Limit your work on labs to no more than 1 hour and 50 minutes each week on the actual lab work. It is not expected that you complete each labs, but make as much progress as this time allows. If a concept is not clear, then arrange with the instructor to attend one of the lab sessions or contact the tutors (tutors@cs.pdx.edu) for additional support.
Policies for in-class Labs: Pass/No Pass
Policies for Exams:
• It is
against department policy to give final exams early (no exceptions!).
Administrative
and Grading Policies
Demonstrate Proficiency in C++ -
Midterm
Demo -
Final |
Pass/No Pass |
At PSU or by Proctor |
Participation |
Pass/No Pass |
Section 001: Attendance Section 002: Turn in pre-labs and
watch lecture videos each week |
Keep up with Course Material |
Pass/No Pass |
Every week attend lecture or watch Videos and Read Chapters |
-
Written
Homework -
Programming
Projects |
||
Midterm |
25% |
At PSU or by Proctor |
Comprehensive Final |
40% |
At PSU or by Proctor ***
Must receive a Passing score of
65% to pass the class *** |
•
Failure to turn assignments on-time or within the allowed 1-week late period
will result in a zero
for that assignment. Assignments will not be accepted after 1 week late. There
are no exceptions. Turn in what you have after one week late. 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: (This list does not apply
to collaborative work performed as part of the lab work)
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
(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.
• Keys
to Success:
1. Login to D2L to
check grades and ask questions.
2. Keep up with Materials such
as readings and pre-lab materials
3. Watch
all class lecture videos each week (online)
4. Attend
all class sessions
and labs (in-class)
5. Practice
Programming Constructs
6.
Perform the pre-lab exercises to get
ready for each construct
7.
Ask Questions! Use Tutors, use D2L discussions, and correspond with me!
Try to Exceed my
Expectations!