SYLLABUS
CS
162: Introduction to Computer Science
Fall
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: |
Wednesday 12:30-1:20 and
Friday 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. |
|
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 |
|
Compiler: |
C++
language implemented by the g++
compiler. All
work this term will be done on unix or linux! |
|
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 both lecture and in class lab time where students will
use their own computers (laptop, netbook, table, etc.) or check-out a PSU
laptop computer. Attendance to these sessions is required. Lectures will be augmented
with required course videos to allow for in-class lab time.
Section 002: Online students
will have online materials available through D2L which will include lecture
videos, slides, quizzes, and discussions. Online students will be required to
take the midterm and final exam at PSU and demonstrate programming proficiency during
that time. 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 and course materials will be posted on PSU’s
online system called Desire2Learn (D2L), 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! 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 class each time!
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.
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.
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:
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
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 participating with inclass labs
ii.
Section
002: Weekly participate with D2L discussions
3.
Proficiency in the Course Concepts
a. Examinations (Midterm, Final)
b. Section 002: Watch the course videos
each week. D2L quizzes unlock the next topic content area (Pass/No Pass)
Policies
for Proficiency in Programming (in C++)
Policies for Assignments:
• Course
requirements consist of five
assignments which include written components and programming components in C++
that comprise (35% of your grade). The programming portion provides experience
building correct implementations of abstract data types.
• All 5 programming must be done in C++ on unix or linux
• The written components include discussions on
algorithms, ethics, and style issues. These must be completed to get a grade on
each assignments. These must be your own work and may
not be copied from the web or other students. Be careful to not plagiarize.
• For
the programming component, 20% of your grade is based on the program style,
comments, and documentation provided with the program. Make sure to follow the
STYLE SHEET!
• 20% of the program grade is based on
an algorithm that must be written for each program. The algorithm must be a minimum of 1 page or at least
600 words. Refer to the style sheet for information
about what should be discussed.
• 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)
(Section 001 Only- Inclass):
Policies for in-class Lab Sessions: Pass/No Pass
• Online Students are expected to login to D2L every week and participate (posting and reading) the online discussions! Your participation must be (a) meaningful, (b) instigate other discussion, (c) and be related to the class subject matter. Participation means that you can ask questions, answer other students’ questions, or answer the discussion questions. It all counts! However, simply providing the entire solution and/or code will not promote a meaningful discussion.
• Participating in discussions is Pass/No Pass. To pass this portion you must receive a passing grade 65%
of the time.
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 |
Proficiency Demos (twice) |
Participation |
Pass/No Pass |
Section 001: Attendance & Labs Section 002: D2L Discussions &
Labs |
Keep up with Course Material |
Pass/No Pass |
Every week watch Videos and Read Chapters |
- 5 written & programming assignments |
||
Midterm |
25% |
At PSU or Proctored |
Comprehensive Final |
40% |
At PSU or Proctored |
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
or Attend all class sessions
4. Practice
Programming Constructs
5. Perform
the pre-lab exercises to get ready for each construct
6.
Ask Questions! Use Tutors, use D2L discussions, and correspond with me!
Try to Exceed my
Expectations!