CS 170 Introduction to Computer Science I
Spring 2013, Section 000
MWF 10:40am - 11:30am MSC W301
Th 4:00pm - 4:50pm MSC E308A
(starting Jan. 31)
Mailing Lists: firstname.lastname@example.org
Share Directory: /home/cs170000/share
Instructor: Denis Savenkov (dsavenk [at] emory.edu)
Office Hours: (in Emerson Hall, office E500) Wed, Fri 12pm - 2pm
You can often get your questions answered faster by emailing them to me.
TA: Daniel Garcia ulloa (dgarci8 [at] emory.edu)
Office Hours: Th 5-6pm (CS Lab E308), Fri 2-3pm (MathCS N414)
This course is an introduction to computer science
for the student who expects to make serious use of the computer
in course work or research.
Topics include: fundamental computing concepts,
general programming principles, the Unix Operating System,
and the Java programming language.
Emphasis will be on algorithm development with examples highlighting
topics in data structures. This course is the first of a two semester
sequence for computer science majors and is followed
Textbook and materials
"Introduction to Java Programming", Brief Version, 9/E, Y. Daniel Liang, 2012. You can get an older edition from Amazon if you wish.
For reference, you can also review the online lecture notes available from Prof. Cheung.
There are some on-line courses, which teach another programming language (Python), but can be useful for those of you who want to learn more about computer science:
edX MIT: Introduction to Computer Science and Programming
Udacity: CS101 - Introduction to computer science
There are no prerequisites although some familiarity
with email and web browsers will be helpful.
We assume knowledge of high school algebra
and basic problem solving skills.
We have one hour of scheduled lab time per week
but plan on spending considerably more time than that in front
of a computer this semester (either in the lab or working from home)
to work on your projects.
In the weekly lab we will focus on learning tool skills
and practice/reinforce concepts learned in lecture by
writing small programs.
You will generally receive full credit for turning in
a functioning lab assignment.
Most labs will be due in two days.
Please make every effort to attend labs. Weekly labs will begin after
Attendance to lectures is not required and I do not take attendance.
However, it is highly recommended and encouraged.
When you miss a lecture, you are required to study the material
(from this website) by yourself.
You are responsible for catching up with the material.
The instructor/TA will not give you a "catch up lecture"
The instructor/TA will only answer specific questions on the teaching material
Attendance in lab is mandatory (because you must
the lab assignments).
Programming assignments will involve designing,
coding, testing and debugging non-trivial programs
based on a written assignment specification.
Programs involve a conceptual understanding of language
features as well as skill with various software tools.
With programming it is important to "work smarter, not harder."
Unskillful approaches can lead to long, tedious,
unsuccessful hours of work.
The right approach can help you write correct,
easy-to-understand and efficient code with minimal effort.
Programs must be completed individually although you are welcome
to discuss general principles and concepts about
the assignments with other students, the instructor, and the TA(s).
(See the below section titled "Collaboration" for appropriate
collaboration policies.) You will be able to work on
your programs in the Math/CS Lab (MSC E308), or on
your personal desktop or laptop. Be
sure to check the lab schedule
as the lab is NOT open 24 hours.
Assignments must be turned in before the date and time indicated to
be considered "on-time". Assignments will be accepted
up to the next class period, but late assignments will
have their score reduced by 10%. Assignments later
than the next class period will receive no credit. I
am happy to work with you if you have an extenuating
circumstance (religious holiday, University activity,
etc.) and you let me know in advance.
We will have
two closed-book midterm exams (Mon, Feb 25th and Fri, Apr 5th)
and a final that will test your conceptual understanding
of the material and will require some attention to programming details.
Doing well on the exams strongly correlates to reading
and understanding the textbook!
Questions will be a mix of filling in the blanks,
multiple choices, and short answers.
They will sometimes require you to write or analyze
short bits of code.
Old exams and study guides will be made available prior
to each exam and solution keys will be provided after the exams.
The final exam will be during the Math Block final. It WILL
be during the time scheduled via class
period. This semester, the final exam will be
Tuesday, May 7th, 12:30-3pm. DO NOT
to leave campus before the final exam. The final exam
will not be rescheduled except in emergency cases with
documentation provided by the Academic Advising Office
in the Office of Undergraduate Education.
Your grade will be determined by a weighted average
of all the graded items.
Grades will typically be adjusted at the end of the semester so that
the class mean
falls in a B-/B range.
Although the numerical grade you receive for each
assignment will be a raw, unadjusted score, you will be
given the class median and mean for
each exam so that you may gauge where you stand.
|Midterms (Feb 25, Apr. 5)||30|
|Final (May. 7)||25||
Timely handling of grade disputes: Disputes of grading on assignments,
exams, etc must be discussed within one week of their
return or posting. Should you find yourself having an
issue with a grade, contact the person who graded the
assignment. After you talk with the TA, if you are not
satisfied you may contact the course instructor.
I will maintain your grades on Blackboard so that you may track your
progress. Should you find a grade recorded incorrectly, please bring it to my attention immediately.
Do not let your use of electronic devices such as laptops or iPads
disturb other students. Use of cellphones is
not allowed during my classes. You will be asked to
leave class if you are disturbing me or other students
in any way.
Please use your official Emory email when emailing regarding this
class. I will not discuss grades or other academic
records via non-official email accounts such as gmail,
I try to answer all emails within 24 hours during the work week. If
you have not received a response within that
timeframe, please resend your email.
All material in this course is covered by the Emory Academic Honor
Code. All students are expected to be familiar with and follow
Emory's Honor Code
, particularly Article 4: Academic
Misconduct. Additionally, all students are expected to read, understand, and follow the
Statement of Policy on Computer Assignments (SPCA).
If you have any questions about what does or does not constitute
academic misconduct for this course, you should contact the instructor
for an explanation. Ignorance is not an excuse. Academic misconduct
in my courses is not
tolerated, will be prosecuted vigorously, and will be referred to the Honor
Collaboration with other students in this CS 170 class is an
important learning method. However, collaboration should not extend to
cheating (unauthorized assistance from others) or plagiarism
(copying someone's work without attribution). The following guidelines
will help you understand the difference between collaboration and
- Students may only collaborate with fellow students currently
taking CS 170, the TA(s) and the lecturer. Collaboration means talking
through problems, assisting with debugging, explaining a concept,
- You should never exchange code or write code for others. A
good rule of thumb is to always begin your assignments with a blank
- You should never copy code verbatim from another
source, including the course texts. This is
- Each student must turn in a unique program.
- Your submission must not be substantially similar to another
student's submission. Collaboration at a reasonable level will not
result in substantially similar code.
- In the absence of written instructions, you should
assume all assignments are individual assignments and should be
- For all programming assignments, you must write comments at the
top of each file which include the following information:
- your name
- your Emory email address/user ID
- the statement:
THIS CODE IS MY OWN WORK. IT WAS WRITTEN WITHOUT CONSULTING
CODE WRITTEN BY OTHER STUDENTS OR MATERIALS OTHER THAN THIS SEMESTER'S
COURSE MATERIALS. _Your_Name_Here_
It is actually very easy for us to detect inappropriate collaboration
or copying by running programs that analyze your submissions
so just don't go there!
If you feel dazed and confused just stop by office hours.
We can get you back on track!
Emory University complies with the regulations of the Americans with
Disabilities Act of 1990 and offers accommodations to
students with disabilities. If you are in need of a
classroom accommodation, please make an appointment
with me to discuss this as soon as possible. All
information will be held in the strictest
confidence. It is the policy of Emory University to
make reasonable accommodations for qualified students
with disabilities. All students with special requests
or need for accommodations should make this request in
person as soon as possible.
Surviving and Thriving:
- While lecture attendance is not required, you will do best in this
course if you attend regularly. You are responsible for all material
covered in class.
- Keep up with the reading. Readings should be completed before
class on the date indicated on the Calendar.
- Do your homework! Learning in Computer Science is like learning a
sport. It takes actual practice and time to get good. The
assignments that are given are opportunities to learn the material
that you will be responsible for on exams.
- Take responsibility for your course work submissions; it is your
job to make sure that you successfully turned in what you meant to
turn in. Be sure to verify your submission. This is how you make
sure that you get credit for the work you do.
- Make use of office hours. We're here to help you. Be prepared
when you go to get help from a TA or your instructor.
Bring your work with you.
- Take initiative. Begin your assignments early and if you think you need
help, come prepared. Use the resources that are provided for you,
and be determined to succeed from the start.
- The material is very cumulative and if you
don't understand early concepts you will become
quite confused later in the class.
There is very little time for new material to sink in.
You must be disciplined, attend class regularly,
and keep up with the readings and assignments.
- Effort is very important!
Turn something in for each assignment,
even if you don't get it completely working. Come to the
instructor's/TA's office hours and ask questions
in class when you don't understand. All these
things show us you are trying and making an effort.
- If you are having problems, I encourage you to come speak to me.
However, if you have any issues about the course which you are not
comfortable discussing with me, please contact Dr. Ken Mandleberg, the
Director of Undergraduate Studies for the Math/CS Dept. (km (at)