You are on page 1of 6

CS 20A: Data Structures With C++

Section # 4116

Instructor:
Session:
Final Exam:
Office:
Office Hours:
Phone:
E-mail:

Syllabus Fall, 2016

Howard Stahl
Tuesdays from 6:45 9:50 PM in Business 253
held from 6:45 9:45 PM on December 13th in Business 253
Business 220G
ONGROUND Tuesdays from 4:30 PM to 6:30 PM
ONGROUND Wednesdays from 1:00 PM to 2:00 PM
ONLINE Sundays from 7 8PM. My YahooIM ID is smc_stahl
(310) 434-8015 (office)
(310) 387-4374 (cell)
stahl_howard@smc.edu

Course Description:
This course is an introduction into the study of computer algorithms and data structures. This
advanced programming course will use the C++ language to teach methods of representing and
manipulating data within a computer. Topics include stacks, queues, trees, sorting, searching,
modeling, and dynamically created storage spaces. Students will learn the problem solving skills
necessary to write and read complex computer programs, and to make important design decisions.
Student Learning Outcomes:
1. Understand the impact and influence that various design decisions have in the run-time cost
of different computer programs
2. Use and apply the different data structures presented in class by practicing the software
techniques associated with large programming projects
Text:
Jeffrey S. Childs, C++: Classes and Data Structures. Prentice
Hall. ISBN: 0-131-580-515
I Have Had Terrible Luck With The Book For This Class.
Honestly, They Are All Terrible. Some Students Have Even
Suggested Not Using A Book This Is The Only Book
Students I Have Used That Students Have Actually Read And
Said Was Somewhat Useful To Them
In response to student feedback, this semester I will also be
referencing an online Wikipedia book, in the hope that you might
not need to buy a textbook at all
A Course Packet Has Been Made Available In The Bookstore.
Software:
The course will use Microsofts Visual Studio .NET 2012 development environment or XCode 7 for
MacOS. All are installed on the hard drives of the lab computers. Copying of commercial software
is not allowed and is an infringement of applicable copyright law. Students wishing to use Linux
(g++) are encouraged to do so but should not expect a high level of support should they run into
difficulties with their development tools. I would prefer that all students use Visual Studio .NET
2012 rather than Visual Studio 6.0. To that end, installation discs and installation instructions will
be made available to students who supply blank, burnable CDs.

Microsoft development tools are not backward-compatible, so 2012 project file formats cannot be
read by 2010. I would recommend you pick a version and stick with it not bounce back and forth.
Students with a fast connection to the internet can also download the Visual C++ Express Edition
from the Microsoft website. Directions on how to acquire this version are provided in the course
website as well.
Coursework:
In addition to reading assignments and in-class work, homework will be assigned. You are expected
to have the reading assignments completed before the class session of each week. Homework is to
be submitted at the start of class on the due date. LATE HOMEWORK WILL NOT RECEIVE
FULL CREDIT.
Electronic Submission:
It is your responsibility to make certain that all files that are submitted electronically can be easily
accessed from your submission folder. Following the naming conventions described in class is the
best way you can ensure that you receive the highest grades for your assignments. Files that cannot
be opened will receive a lower grade. It is very good idea to make a backup copy of your
assignments!
You must follow the electronic submission guidelines to turn in all programming projects. You may
choose to turn in Assignments via paper. This course will be making extensive use of the website
http://www.smcclasses.net. You may choose to turn in homeworks there by following the electronic
submission guidelines discussed in class. Please monitor that site regularly for important notices and
announcements posted online, as mid-course corrections maybe necessary.
Course Website:
All students enrolled in this class have been provided access to a course website. You will find
electronic copies of all the information presented and demonstrated in class available for
downloading there. While the class has yet to get going, I highly recommend you familiarize
yourself with the site and the way I am posting content for your use.
The course website is available from https://online.smc.edu/login/ldap. Your username is your
SMC email address without the @smc.edu portion. Your password is the same one your use for
Corsair Connect. All course and lecture content has been made available thru this course website.
Given that this is the very first semester that SMC is using Canvas, there very well might be issues
that crop up over the summer. I appreciate your patience and understanding while we all learn
together how to use Canvas.
Evaluation and Grading:
Assignments: During the semester, a number of assignments will need to be completed. There will
be a total of 8 assignments. These Assignments need to be turned in on the date
scheduled. The lowest of your scores will be dropped and not count toward your
final grade. Since one of your scores will be dropped, late assignments will not be
accepted. YOU WILL BE DROPPED FROM THE CLASS IF YOU FAIL TO
TURN IN THREE ASSIGNMENTS.
Projects:

During the semester, a number of programming projects will need to be completed.


There will be a total of 6 programming projects. These Programming Projects need
to be turned in on the date scheduled. The lowest of your project scores will be
dropped and not count toward your final grade. Since one of your scores will be

dropped, late projects will not be accepted. YOU WILL BE DROPPED FROM THE
CLASS IF YOU FAIL TO TURN IN THREE PROGRAMMING PROJECTS.
Quizzes:

There will be two quizzes covering textbook reading assignments and class activities.
Each quiz is worth 40 points, but only one quiz will be considered in your grade.
Since you will be able to drop your lowest score, there will be no make-up quizzes. If
an emergency arise which prevents your attendance, call me as soon as possible.
Each quiz will only cover a small section of the class. YOU WILL BE DROPPED
FROM THE CLASS IF YOU FAIL TO TAKE TWO QUIZZES.

Midterm:

A midterm will be given during week 7 of the semester.

Final Exam:

A comprehensive final exam will be given at the end of the semester. It will cover
most topics covered during the course.

Assessment:
Category
Assignments (8)
Programming Projects (6)
Quizzes (2)
Midterm (1)
Final Exam (1)

Point Value
10
20
40
70
120

Total
70
100
40
70
120

Percent
17.5%
25.0%
10.0%
17.5%
30.0%

Grading Scale
400-360
A
359-320
B
319-280
C
279-240
D
0-239
F

Late Policy
All assignments are due on the scheduled dates. Late work is highly discouraged because you need
to keep up with the class to succeed. Unless prior arrangements have been made with the instructor,
no late assignments will be accepted.
Attendance
Attendance in class is expected and necessary for maximum credit. Any student who misses two
consecutive classes without having made prior arrangements with the instructor will be dropped
from the course.
Honor Code and Code Of Student Conduct
As a testament to their commitment and readiness to join the Santa Monica College academic
community, all students are expected to uphold the Honor Code. At the time of admission, students
will certify the following statement:
In the pursuit of the high ideals and rigorous standards of academic life, I commit myself
to respect and uphold the Santa Monica College Honor Code, Code of Academic
Conduct, and Student Conduct Code. I will conduct myself honorably as a responsible
member of the SMC community in all endeavors I pursue.
Honest and ethical students are protected in this class. The SMC Honor Code and Code of
Academic Integrity, printed in the General Catalog, remind students of their responsibility to behave
honestly and ethically. It is your responsibility to familiarize yourself with these codes. Please be
extremely careful that you do not engage in any behavior that could even be construed as cheating.
Outside of class, students are allowed to study together. However, copying another student's
homework is not acceptable. If I determine that students have relied too heavily on each other

in preparing homework or any other project, the students may be assigned no credit. Future
occurrences could result in academic disciplinary action.
Cheating
All work you submit must be your own individual work. If you copy another persons work or let
another person copy your work, you are cheating. Cases where submitted work looks alike will
result in an F on the project and will be subject to the student discipline process. The Colleges
Code of Academic Conduct applies to each and every course as well as each and every member of
the academic community, faculty and students alike. IN ORDER TO JOIN THIS SECTION, ALL
STUDENTS ARE REQUIRED TO SIGN THE CS20 SURVEY STATING THAT THEY ARE
AWARE OF AND WILL FOLLOW THE ACADEMIC HONESTY POLICY.
Discrimination
Santa Monica College and this academic department welcome students from all over the world with
various backgrounds and life experiences. SMC is committed to fostering a safe and productive
learning environment. SMC has zero tolerance for discrimination, and/or sexual harassment, which
includes sexual misconduct such as, domestic and dating violence, sexual assault, sexual
exploitation, and stalking. Any sexual violence or physical abuse, as defined by California law,
whether committed by an employee, student, or member of the public, occurring on college-owned
or controlled property, at college-sponsored or supervised functions, or related to or arising from
college attendance or activity is a violation of District policies and regulations, and is subject to all
applicable punishment, including criminal and/or civil prosecution and employee or student
discipline procedures.
SMC Students assume an obligation to conduct themselves in a manner compatible with the
colleges function as an educational institution, which respects the rights of others to learn, and to
acknowledge the academic freedom to teach and communicate in an environment that fosters
learning and creativity. With that in mind, it is important to keep a respectful tone and attitude when
communicating and interacting with your colleagues. You are the only you. No one else will have
your sensibilities of what is funny or interesting. Part of being respectful is also realizing that
someone else may be offended by something you think is every day normal.
Students who have experienced some form of sexual misconduct or discrimination are encouraged to
talk to someone about their experience, so they can get the support they need. To learn more about
support available for students, please see http://www.smc.edu/StudentServices/SVPE/Pages/Whatis-Title-IX.aspx.
Students with Special Needs
In compliance with the Americans with Disabilities Act (ADA), all qualified students enrolled in this
course are entitled to reasonable accommodations. Any student who needs special attention
should speak privately with the instructor to describe their needs. This should be done within the
first two weeks of the start of class.
Children In Class Policy
Only in extreme cases are children allowed in the classroom or laboratory facilities, and then only
with the approval of the instructor prior to the start of class.
Electronic Devices In Class Policy
Cellular phones, pagers, CD players, radios and similar devices are prohibited from the classroom
and laboratory facilities. Calculators and computers may not be brought into examinations and

quizzes unless specified. Reasonable laptop-size computers may be used in lecture for the purpose
of taking notes.
Incomplete Policy
Students will not be given an incomplete grade in the course without sound reason and documented
evidence. In any case, for a student to receive an incomplete, he or she must be passing and have
completed a significant portion of the course. Make sure you are aware of the college drop policy.
In case of absence, it is your responsibility to find out what material was covered and what
assignments were given.
IT IS YOUR RESPONSIBILITY TO DROP/WITHDRAW FROM CLASS BY THE PUBLISHED
DEADLINES OR YOU WILL RECEIVE A GRADE.
In Fall 2016, November 20 is the last day you can drop any 16-week class, receiving a W on your
permanent transcript.
Tentative Class Schedule
Below is a tentative schedule and is subject to change. Lectures and reading assignment will cover
the materials from the required text and handouts. It is important to attend class since changes may
be made to the schedule published below.

Date
Week 1
August 30
Week 2
September 6
September 11
Week 3
September 13
Week 4
September 20
Week 5
September 27
Week 6
October 4
Week 7
October 11
Week 8
October 18
Week 9
October 25
Week 10
November 1
Week 11
November 8
Week 12
November 15
November 20
Week 13
November 22
Week 14
November 29
Week 15
December 6
Week 16
December 13

Topics
Lecture: Introduction
Lecture: C++ Basics
Homework: read Chapters 1, 2 and 3, review your C++
Lecture: Inheritance, Virtual Functions, Recursion, Templates
Homework: read Chapters 4, 5, 6, review your C++
Last Day To Withdraw To Avoid W On Permanent Transcript
Turn In: Assignment #1 and Programming Project #1
Quiz 1
Lecture: Analysis Of Algorithms and Math Review
Homework: Chapter 9
Lecture: Lists, Stacks and Queues
Homework: read Chapters 7, 8 and 10
Turn In: Assignment #2
Lecture: Introducing Trees, Binary Trees
Homework: read Chapter 12
Turn In: Programming Project #2
Lecture: Binary Search Trees, AVL Trees and Red-Black Trees
Homework: read Chapters 13, 15.1 and 15.2
Turn In: Assignment #3
Midterm
Turn In: Assignment #4
Lecture: Compression, Huffman Coding and XML
Homework: read Chapter 11
Turn In: Programming Project #3
Lecture: Heaps and Priority Queues
Homework: read Chapter 12
Turn In: Assignment #5
Lecture: Sorting
Homework: read Chapters 14
Turn In: Programming Project #4
Quiz 2
Turn In: Assignment #6
Last Day To Withdraw From Class
Lecture: Hashing
Homework: read Chapters 11
Lecture: Graphs and Automata
Homework: read Chapter 15
Turn In: Asssignment #7, Programming Project #5
Lecture: Final Exam Review
FINAL EXAM HELD DURING CLASS PERIOD
Turn In: Assignment #8, Programming Project #6

You might also like