Computer Science Department
Comp151 - Data Structures & Program Designwith Lab Component Comp151L
|“We don't receive wisdom; we must discover
it for ourselves after a journey that no one can take for us or
spare us.” ― Marcel Proust
Information contained in this syllabus, other than that mandated by the University, may be subject to change with advance notice, as deemed appropriate by the instructor.
This introductory course in data structures teaches students how to organize data by using abstract data types (ADTs) like a list, a dictionary, a stack, a queue, a tree, a graph. Using these data organizations, students will learn about related techniques for algorithm development. The topics that we cover in this course are fundamental to future study of computer science. The stress will be on object orientation as a convenient and efficient way of expressing and solving problems. Basic knowledge of Java is assumed.
The course is managed through CI Learn 2.0 (Canvas) services. Please access the course information using your account at https://cilearn.csuci.edu/. The detailed, day-by-day course schedule, lecture notes, assignments and announcements will be posted there, so please check this site on regular basis.
Tuesdays 12:00 pm- 2:50 pm
Thursdays 12:00 pm - 2:50 pm
Tuesdays 3:00 pm- 5:50 pm
Thursdays 3:00 pm - 5:50 pm
Office hours: Mon 1:15 - 2:15 pm, Wed 12:00 - 1:00 pm,
or by Appointment
hours are not lecture replacements! Please come prepared
to ask questions, so we can communicate efficiently.
I will respond to your inquiry within 24 hours Mon-Fri. If I do not reply in this time-frame, please assume I did not receive your email and contact me again. Manage your communications diligently.
and Abstractions with Java 4th Edition
" by Frank Carrano
In order to be successful in this challenging class:
IntelliJ IDEA Integrated Development Environment (http://www.jetbrains.com/idea/) will be installed on all computers in Computer Science Labs in Sierra Hall. The students will be required to use this tool. Students must obtain their personal license key by visiting https://www.jetbrains.com/student/, so they can install and use the tool on their home computers as well. The IntelliJ Tutorial is available with the tool.
We will be using java JDK 8.
This is a practical hands-on course that will involve students throughout the semester. Lectures will be followed with hands-on work in the lab. During that time students will be solving assigned practice problems. The explanations will be given on the white-board for the whole class rather than an individual student, who asked the question.
You will need a graph paper with you for every class meeting. I recommend a Graph Paper Notebook, see an example
Every week there will be a homework assignment.
In addition to weekly assignments there will be in-class paper&pencil Midterm and Final Exams. The dates and times for the exams are published in the CI Learn 2.0 (Canvas) calendar for this course. There will be no exam for Comp151L.
Prior to the start of the semester the Initial Project will be announced. The goal of this assignment is to illustrate to the students what level of programming proficiency is expected in this course. The assignment will be due before the start of the second class meeting.
The students will use the assignment submission facility in the CI Learn 2.0 (Canvas) to submit their work as a single ZIP file. Other submissions (e.g., through email) will not be accepted. Students should be prepared to defend their work as the instructor may initiate a discussion of the project after the submission.
All academic work must be your own. Plagiarism, defined as copying or receiving materials from a source or sources and submitting this material as one's own without acknowledging the source, or otherwise representing the work of others as your own, is NOT allowed and will result in 0 points for the assignment. Sharing solutions with other students is also considered an Academic Dishonesty.
In many respects, computer science is a collaborative discipline, so I do not mind students helping each other tracking down small problems, however more substantial assistance is not allowed. At no time should another student assist in the design or coding of your program. The design and implementation of your program should be entirely your own work!Violations of the above collaboration will be dealt with severity.
When an assignment is explicitly set as a
group assignment, all submissions are individual and I
require that the collaboration is clearly stated in the submitted
documentation. Furthermore, I require that each member of the
collaborating group understands all details of the solution. I reserve
the right to assign different grades to the members of a collaborating
team depending on their knowledge of the solution and their ability to
reproduce it on demand.
Comp151 class participates in Peer-Led Team
Learning. This excellent program consists of learning communities
designed for students who want to excel in class while simultaneously
developing study and learning skills that will be of use in Computer
Science, mathematics and other science classes. A weekly 2-hour
commitment is required. For more information, visit
More about PLTL
The philosophy and practice behind PLTL is that leaders are not "experts" (as tutors and professors are expected to be), but that they're trained to bring out the best in a group in terms of learning, developing self-sufficiency and effective study skills, etc. When it works, students learn how to learn – frequently in study groups – and take that skill to their higher-level courses. One long-term goal is that students become more independent in their learning and use themselves, various materials, and their peers as resources without immediately concluding they need the intervention of an expert.
In the Peer-Led Team Learning model, a student (the Peer Leader) organizes and oversees weekly workshop sessions on topics recently covered. Peer Leaders receive training on course content, group facilitation skills, and college success skills (note-taking, study habits, etc.). Peer Leaders' responsibilities include attending training and providing advice, insight and support to workshop participants. Workshops begin in the second or third week of the semester and go through the 14th week of classes.
Each lab assignment is due by the start of the next lecture. Late submissions are not allowed. Should you miss the deadline due to technical difficulties such as Internet being down for example, please contact me during the next class meeting. As long as your work has the time stamp before the due date and your name is written inside all the modified files I will accept your late submission under these special circumstances. Any submissions after that will not be accepted and 0 points will be assigned for the missed assignment.
Before leaving each lab session you must submit the current snapshot of your work. It will not be graded, but may be looked at. Only the final submission will be graded. Should you omit submitting snapshots more than two times, an F will be given for the lab.
No submissions via email will be accepted.
Each Pre-Lab assignment is due at the beginning of the lab. 0 points for the pre-lab will be assigned if the student comes to the lab without the homework and (s)he will not be allowed to work on the lab until the pre-lab is completed.
Each lab is worth 10 points.
The submitted code must compile to be graded. If the submitted code does not compile F will be assigned for the assignment.
Each file must be properly formatted - penalty of 0.5 points will be deducted otherwise.
Each modified file must contain the name of the student - penalty of 0.5 points will be deducted otherwise.
Each lab submission must also include the sample run of your program - penalty of 0.5 points will be deducted otherwise.
Every week students are required to enter at least one "data structure interview question" on the topic of the week to the pool of "Interview Questions". Each student will share her/his questions and the solutions with the rest of the class twice during the semester (consult the class calendar for the dates). Both, the questions and the presentation, will be graded.
|Course Credit Hours:||4|
|Grade Type:||98 -100%
- A +
94 - 97.99% - A
90 - 93.99% - A-
87 - 89.99% - B+
84 - 86.99% - B
80 - 83.99% - B-
77 - 79.99% - C+
74 - 76.99% - C
70 - 73.99% - C-
67 - 69.99% - D+
64 - 66.99% - D
61 - 63.99% - D-
anything below 61% - F
|Grade Percentage:||25% - Comp151 Final Exam **|
|25% - Comp151 Midterm **|
|2% - Init Project|
||10% - Pre-Labs|
||35% - Labs|
|3% - Interview Questions|
Your course-grade average (on a scale of 0 -- 100) will be calculated as the weighted average of your averages on pre-labs, labs, projects, and exams using the weight distribution that is listed above. All grades are computed automatically by the grading system in CI Learn 2.0 (Canvas).
**Important note - you must receive a passing grade for Labs and for Exams in order to pass the course! Comp151L section does not have Exams. Please note that a grade of C- or better is required in all pre-requisite courses in the CS major.
The instructor reserves the right to adjust any grade of any student in response to in-class participation as well as any other forthcoming vital information.
You have access to the Grade center in CI Learn (Canvas) at all times to track your progress and are always encouraged to contact me with questions or concerns. All activities are designed to support your learning throughout the whole semester.
The class attendance is mandatory.
If you are absent from a class, it is your responsibility to study the material presented in the lecture on your own and check on any announcements made while you were absent. You need to come prepared to the lab as the labs are designed to practice the material covered in the previous lecture - lab sessions are not the place to catch up on the missing material!
Should you miss a lab session, you are strongly encouraged to complete the lab assignments on your own and submit the lab report to the instructor by the due date. Should you miss more than 2 class meetings absentee lab submissions will no longer be accepted.
If a student is found responsible for committing an act of academic dishonesty in this course, the student may receive academic penalties including a failing grade on an assignment or in the course, and a disciplinary referral will be made and submitted to the Student Conduct & Community Responsibility office. Students are expected to familiarize themselves with the University Student Conduct Code at the following link:http://www.csuci.edu/campuslife/student-conduct/academic-dishonesty.htm). Please ask about my expectations regarding academic dishonesty in this course if they are unclear.
If you are a student with a disability requesting reasonable accommodations in this course, please visit Disability Accommodations and Support Services (DASS) located on the second floor of Arroyo Hall, or call 805-437-3331. All requests for reasonable accommodations require registration with DASS in advance of need:https://www.csuci.edu/dass/students/apply-for-services.htm. Faculty, students and DASS will work together regarding classroom accommodations.
Please discuss approved accommodations with me ASAP.