CS13011 Computer
Science IA: Procedural Programming
& CS13012
Computer Science IB: Object Oriented Programming
Spring 2017
Instructor: Xiang Lian
Office
Location: Mathematics and Computer Science Building, Room 264
Office
Phone Number: (330) 672-9063
Web: http://www.cs.kent.edu/~xlian/index.html
Email: xlian@kent.edu
Course:
CS IA: Procedural Programming & CS IB: Object
Oriented Programming
Prerequisites: MATH 11010 or MATH 12001 with a minimum grade of C
Time: 11:00am - 12:15pm, TR
Classroom Location: Liquid Crystals
Materials Science Building (LCM), 101
Course Webpage: http://www.cs.kent.edu/~xlian/2017Spring_CS13011_CS13012.html
Instructor's
Office Hours: Tuesday
and Thursday (1:30pm ~ 4:30pm); or by appointment
Lab Instructors: Chao Ma (cma1@kent.edu), Salem Othman (sothman@kent.edu), and Sudeep Tuladhar (stuladha@kent.edu)
Lab
Times:
CS
IA:
Section
No. Day/Time Location Instructor
001 M 09:55 am - 11:50 am MSB 139
Salem Othman
002 M 02:15 pm - 04:10 pm MSB 139
Sudeep Tuladhar
003 F 02:15 pm - 04:10 pm MSB 139
Salem Othman
004 M 09:55 am - 11:50 am MSB 162 Chao
Ma
005 M 02:15 pm - 04:10 pm MSB 162 Chao
Ma
006 F 02:15 pm - 04:10 pm MSB 162 Sudeep
Tuladhar
CS
IB (Starting from March 17):
Section
No. Day/Time Location Instructor
014 M 09:55 am - 11:50 am MSB 162 Salem
Othman
015 M 02:15 pm - 04:10 pm MSB 162 Chao
Ma
016 F 02:15 pm - 04:10 pm MSB 162 Salem
Othman
017 W 02:15 pm - 04:10 pm MSB 162 Chao
Ma
018 F 07:45 am - 09:40 am MSB 162 Sudeep
Tuladhar
Lab
URL: http://vega.cs.kent.edu/~mikhail/classes/csi/Labs/
Tentative Lab Schedule: http://www.cs.kent.edu/~xlian/course_archive/2017Spring_CS13011_CS13012/schedule.txt
The official registration deadline for this course is Jan. 22, 2017. University policy
requires all students to be officially registered in each class they are
attending. Students who are not officially registered for a course by published
deadlines should not be attending classes and will not receive credit or a
grade for the course. Each student must confirm enrollment by checking his/her
class schedule (using Student Tools in FlashLine) prior to the deadline indicated. Registration
errors must be corrected prior to the deadline.
For
registration deadlines, enter the requested information for a Detailed Class
Search from the Schedule of Classes Search found at:
https://keys.kent.edu:44220/ePROD/bwlkffcs.P_AdvUnsecureCrseSearch?term_in=201680
After
locating your course/section, click on the Registration Deadlines link on the
far right side of the listing.
Last day to withdraw: Mar. 26, 2017
Textbook
Problem
Solving With C++, Walter J. Savitch, Pearson, 2014, Ninth
Edition, ISBN: 978-0133591743. The textbook is required. No access code is
needed. Older editions may be allowed, check with me for details.
Catalog Description
The
purpose of the CS IA course is to learn computer science concepts including
algorithm development and problem solving strategies focused on programming
abstractions. High-level programming concepts including variables, branching,
iteration, and functions. The purpose of the CS IB course is to learn high-level
programming concepts including introduction to recursion and an introduction to
object oriented-concepts.
The
goal of the course is to familiarize the students with programming in a
high-level object-oriented language (C++) while studying the main constructs of
C++. The students will learn to translate algorithms into correct programs as
well as to debug, document and maintain the code.
The
C++ constructs covered include: conditional and loop statements, functions,
arrays, pointers, object classes, dynamic memory allocation.
The
course contains two parts: A and B. To be allowed to enroll in part B, students
need to complete part A with the grade of C or above.
Tentative Schedule
Week |
Topics & Book Chapters |
Examples & Notes1 |
Week 1 (Jan. 17) |
|
|
Week 1 (Jan. 19) |
First
program, development environment
[1.3-1.4]; Variables, identifiers, assignment, input/output [2.1-2.2] |
Lab 1: First Program |
Week 2 (Jan. 24) |
|
|
Week 2 (Jan. 26) |
Boolean algebra, boolean and relational operators, branching constructs [2.4,
3.1-3.2] |
Lab 2: Branching |
Week 3 (Jan. 31) |
Iterative constructs: while, do-while, for [2.4,
3.3-3.4] |
|
Week 3 (Feb. 2) |
Programming style, comments, naming programs [2.5,
4.2]; Predefined functions (library functions) [2.5,
4.2] |
doghouse, equation, time, random Lab 3: Looping |
Week 4 (Feb. 7) |
Quiz 1 Programmer-defined functions, local and global variables, call-by-value [4.3,4.5] |
|
Week 4 (Feb. 9) |
Separate files, independent compilation, header files [12.1] |
add1 in separate files: add1.cpp, add1.h, add1test.cpp Lab 4: Predefined Functions |
Week 5 (Feb. 14) |
void-functions, predicates, call-by-reference [5.1,
5.2, 14.1] |
stack example, swap'em, valueVSreference, predicated
greeting |
Week 5 (Feb. 16) |
Defining arrays, arrays with for-loops, passing arrays as arguments [7.1-7.2] |
initialize array, pass as
parameter, testconst Lab 5: Programmer-Defined Functions, Call-by-Value , Multiple Files |
Week 6 (Feb. 21) |
|
|
Week 6 (Feb. 23) |
Strings [8.1-8.2] |
addRemove, asArray, concatenation, ctypedemo, find, findAll, parstring, stats, stringcomparison Lab 6: Call-by-Reference, Arrays |
Week 7 (Feb. 28) |
Quiz 2 File input/ouput [6.1] |
|
Week 7 (Mar. 2) |
|
infile.dat, sum of three numbers (1, 2, 3), setw, printfile, printFileExtr, toIntAndBack |
Week 8 (Mar. 7) |
|
|
Week 8 (Mar. 9) |
Final Exam 1 |
|
Week 9 (Mar. 14) |
Structures [10.1] |
simple, complex, initialization, passing
as parameters, using
with arrays, CD
account |
Week 9 (Mar. 16) |
Classes [10.2] |
simple, complex, constructors, inline
functions, friend
functions Time: dinner.cpp, time.cpp, time.h, usertime.cpp Lab 7: Strings, File I/O |
Week 10 (Mar. 21) |
Pointers [9.1] |
arrayISpointer, intro, losepointer, objectpointers, pointerArithmetic, questions |
Week 10 (Mar. 23) |
|
Last Day to Withdraw: 3/26/2017 functions, newdel1, newdelarr1, newDelArrFunc, newdelfun, problem.loosepointer, problem.memoryleak, questions Lab 8: Structures |
Week 11 (Mar. 28) |
-- |
Spring Recess: Mar. 27-Apr. 2; No
Classes |
Week 11 (Mar. 30) |
||
Week 12 (Apr. 4) |
||
Week 12 (Apr. 6) |
Quiz 3 |
Lab 9: Classes |
Week 13 (Apr. 11) |
Vectors [8.3, 18.1] |
func, growShrink, invalidation, iterators, |
Week 13 (Apr. 13) |
fill, jaggedVector, list, Lab 10: Dynamic Memory Allocation |
|
Week 14 (Apr. 18) |
Quiz 4 |
|
Week 14 (Apr. 20) |
-- No class |
Lab 11: Objects with Dynamically Allocated Members |
Week 15 (Apr. 25) |
Namespaces [12.2] |
|
Week 15 (Apr. 27) |
Recursion [14.1] |
factorial, reverse, verticalIterative, verticalRecursive Lab 12: Multidimensional Arrays/Vectors of Vectors
(Optional; Bonus: 10 points) |
Week 16 (May 2) |
|
|
Week 16 (May 4) |
Automatic code documentation [doxygen main page] |
XML parser documented with Doxygen Course Evaluation (Please bring 2B pencil) |
Week 17 (May 8-14) |
Final Exam 2 (12:45pm ~ 3:00pm, Tuesday, May 9) |
|
Academic calendar: https://www.kent.edu/sites/default/files/academic-calendar-2014-2018_0.pdf
Final exam schedule: http://www.kent.edu/registrar/spring-final-exam-schedule
Quiz/Exam Samples: example quiz, example CSIA exam, example CSIB exam, final exam, consultation times, review topics
Mac Users: Please use the virtual box to install Windows virtual
PC, and install Visual Studio in the virtual
machine. You can get both Windows 10 and virtual box from the following
URL: https://kent.onthehub.com/.
NOTE: Quiz/Exam dates and deadlines are
tentative. Exact dates will be announced in class!!!
CS IA:
5
- Attendance
60
- 6 Lab Assignments (10 points each)
20
- 2 Quizzes (10 points each)
100
- Final Exam 1
CS IB:
5
- Attendance
60
- 6 Lab Assignments (10 points each) [the last lab assignment is a bonus; final lab score you can
get = total points * 60 / 50]
20
- 2 Quizzes (10 points each)
100
- Final Exam 1
The
sum of the possible scores on all assignments is considered 100% and your final
course grade will be determined as follows:
100-93%
-- A
92-90
-- A-
89-87
-- B+
86-83
-- B
82-80
-- B-
79-77
-- C+
70-76
-- C (note that there is no C- grade)
69-67
-- D+
66-60
-- D
59-0
-- F
You
need to get at least C grade in CS IA (2 credits) to be allowed to enroll in CS
IB (2 credits).
There
will be no curve at the end of the course. Your score will not be rounded up:
if you get 66.99% you will get a D not a D+. Thus, you should always be able to
determine how well you are doing in the course.
Attendance in the lecture is mandatory. Students are expected to attend lectures, study the text, and contribute to discussions. You need to write your name on attendance sheets throughout the course, so please attend every lecture.
Students are expected to attend all scheduled classes and may be dropped from the course for excessive absences. Legitimate reasons for an "excused" absence include, but are not limited to, illness and injury, disability-related concerns, military service, death in the immediate family, religious observance, academic field trips, and participation in an approved concert or athletic event, and direct participation in university disciplinary hearings.
Even though any absence can potentially interfere with the planned development of a course, and the student bears the responsibility for fulfilling all course requirements in a timely and responsible manner, instructors will, without prejudice, provide students returning to class after a legitimate absence with appropriate assistance and counsel about completing missed assignments and class material. Neither academic departments nor individual faculty members are required to waive essential or fundamental academic requirements of a course to accommodate student absences. However, each circumstance will be reviewed on a case-by-case basis.
For more details, please refer to University policy 3-01.2: http://www.kent.edu/policyreg/administrative-policy-regarding-class-attendance-and-class-absence.
There are two exams. Fist held in the final week of CSIA. The second is held during the finals week of the semester. All exams are closed book, closed notes, and must be individual work. It is expected that you take each exam at the scheduled time, unless you make prior arrangements with me, or have a documented illness (in which case I expect you to contact me as soon as possible). You will be tested on the material we covered in class. The textbook or the slides alone may not be sufficient for adequate preparation for the exams.
No make-up quiz/exam will be given except for university sanctioned excused absences. If you miss a quiz/exam (for a good reason), it is your responsibility to contact me before the quiz/exam, or soon after the quiz/exam as possible.
The lectures are complemented by
lab sessions. The sections of this course differ in the time of their lab
sessions. The lab session is conducted by a lab instructor. Lab attendance and
participation is required. Lab sessions are an integral part of the course and
lab assignments constitute a significant part of the course grade. The lab
policies are stated on the lab website and are to be followed for the success
in the lab.
Cooperation on Programming Projects (Labs). You are allowed to discuss projects and solutions with your peers outside the lab. However, you should code the projects individually. This means that you should not look at other students' programs either on the screen or in printouts. You should not copy other students' solutions. Joint programming, even in pseudo-code, is not allowed. Cooperation during labs is not allowed. If you have a question during a lab, ask your lab instructor. Do not ask your classmate: you are distracting him/her, you may be getting an incorrect answer and you may be inadvertently involving him/her in joint work.
You should be careful not to give others access to your code. This means that you should not keep your program in a publicly accessible directory, you should not leave your computer unattended, and you should not forget to pick up your printouts.
The University expects a student to maintain a high standard of individual honor in his/her scholastic work. Unless otherwise required, each student is expected to complete his or her assignment individually and independently (even in the team, workload should be distributed to team members to accomplish individually). Although it is encouraged to study together, the work handed in for grading by each student is expected to be his or her own. Any form of academic dishonesty will be strictly forbidden and will be punished to the maximum extent. Copying an assignment from another student (team) in this class or obtaining a solution from some other source will lead to an automatic failure for this course and to a disciplinary action. Allowing another student to copy one's work will be treated as an act of academic dishonesty, leading to the same penalty as copying.
University policy 3-01.8 deals with the problem of academic dishonesty, cheating, and plagiarism. None of these will be tolerated in this class. The sanctions provided in this policy will be used to deal with any violations. If you have any questions, please read the policy at http://www.kent.edu/policyreg/administrative-policy-regarding-student-cheating-and-plagiarism and/or ask.
University policy 3-01.3 requires that students with disabilities be provided reasonable accommodations to ensure their equal access to course content. If you have a documented disability and require accommodations, please contact the instructor at the beginning of the semester to make arrangements for necessary classroom adjustments. Please note, you must first verify your eligibility for these through Student Accessibility Services (contact 330-672-3391 or visit www.kent.edu/sas for more information on registration procedures).
This
course may be used to satisfy the University Diversity requirement. Diversity
courses provide opportunities for students to learn about such matters as the
history, culture, values and notable achievements of people other than those of
their own national origin, ethnicity, religion, sexual orientation, age,
gender, physical and mental ability, and social class. Diversity courses also
provide opportunities to examine problems and issues that may arise from
differences, and opportunities to learn how to deal constructively with them.
This
course may be used to satisfy the Writing Intensive Course (WIC) requirement. The
purpose of a writing-intensive course is to assist students in becoming effective
writers within their major discipline. A WIC requires a substantial amount of
writing, provides opportunities for guided revision, and focuses on writing
forms and standards used in the professional life of the discipline.
This
course may be used to fulfill the university's Experiential Learning
Requirement (ELR) which provides students with the opportunity to initiate
lifelong learning through the development and application of academic knowledge
and skills in new or different settings. Experiential learning can occur
through civic engagement, creative and artistic activities, practical
experiences, research, and study abroad/away.
The instructor reserves the right to alter this syllabus as necessary.