Instructor: James Skon
Office: Chalmers 428
Phone: 740-427-5369
Department: Computing
Class Location: Chalmers 320
Meeting Times: Tuesday & Thursday, 1:10–2:30 PM
Office Hours
Times: Monday,Wednesday,Friday 9:00–11:00 AM (Chalmers 428)
Appointments: [Book Meeting Link]
Walk-ins welcome, but students with appointments will be given priority.
Class tutor: Wisdom Akanwe
MSSC Hours: MSSC Sunday 7:00-8:30pm and Tuesdays, Thursdays 7:00-8:00pm.
Course Description and Learning Objectives
The main goal of this course is to learn basics of fundamental data structures used in computer science and practice using them to solve problems. These include: stacks, queues, lists, heaps, hash tables, trees, and graphs. We will also examine a number of searching and sorting algorithms. Both array-based and linked implementations are analyzed where appropriate. You will also learn how to use the pre-written classes contained in the Standard Template Library (STL). An introduction to analysis of algorithms and the big-O notation will be given. Analysis of major algorithms will be discussed. Another important learning goal in this course is to practice software engineering principles and write programs with good user interface. Good programming practices are emphasized. We will cover most of the chapters in the textbook. We will be using pair programming so that you practice software development as a team in a collaborative way. This is often a necessary and highly valued skill. Many real life software development projects are collaborative.
Prerequisite: COMP 118 or equivalent, proficiency in C++.
Course Resources
- Textbook: Data Structures Using C++, 2nd Edition, D. S. Malik. [PDF Link]
- Test source code: [Link]
- Programming Environment:
- Replit.com: Web-based IDE, no installation required, but may be slow on the free tier.
- Visual Studio Code: A local IDE requiring installation. C++ developer tools must be installed. [Windows (C++), MacOS. (If the “code.” command does not work: Link).]
- GitHub:
- GitHub: Sign up with your Kenyon email using a name-identifiable username.
- Assignments will be distributed via GitHub Classroom.
- Join using this link: [GitHub Intro Assignment]
- Clone to either Replit or your local VS Code environment.
- Moodle: All assignments and quizzes must be submitted via Moodle.
Prepare Programming Environment
Visual Studio with C++
Follow the instructions here: VS Code Setup with C++
Get the Hello World Program Running.
Artificial Intelligence (AI) Use Policy
The purpose of this course is for students to develop a solid understanding of data structures and to gain hands-on experience programming in C++. To achieve this, it is essential that students practice writing code themselves. Therefore, the use of AI tools (such as ChatGPT, GitHub Copilot, or similar) is restricted as follows:
Permitted Use:
Students may use AI tools only when explicitly directed to do so as part of a specific assignment. For example, assignments may instruct students to:
- Use AI to generate test data
- Use AI to create test programs that evaluate student-written classes
- Use AI to review code they have written and tested, for suggestions or feedback
These cases are clearly described within the assignment instructions.
Prohibited Use:
Unless explicitly permitted, students may not use AI tools or online code repositories (e.g., StackOverflow, GitHub, Reddit, etc.) to:
- Generate or complete code for assignments
- Solve programming problems
- Rewrite or improve assignment solutions before submission
All submitted code must reflect the student’s own work and understanding. Submitting AI-generated or copied solutions is considered academic dishonesty.
Rationale:
This course is focused on teaching students how to think critically about code, design data structures, and implement algorithms themselves. The learning objective is not to delegate these tasks to AI, but to develop the skills to do them independently.
Consequences:
Use of AI tools or online sources beyond what is explicitly allowed will be treated as a violation of the college’s Academic Honesty Policy.
If you are unsure whether a particular use of AI is permitted, ask the instructor before using it.
Grading and Evaluation Criteria
Final grades will be determined based on the performance in the following components.
| Component | Percentage |
| Quizzes | 20% |
| Weekly Labs in Pairs | 45% |
| Midterm Exam | 10% |
| Final Exam | 25% |
| 100% |
Assessments
Quizzes:
- Short (10-minute) quizzes at the start of most classes
- Based on reading for the day
- Bring a laptop to every class.
- Lowest n quiz scores dropped.
- No makeup quizzes except in documented long-term situations.
Labs:
- Weekly pair programming projects.
- Some labs contain multiple programs.
- Labs are the most heavily weighted aspect of the course.
Exams:
- Midterm: March 2
- Final Exam: December 18, 6:30–9:30 PM (Moodle test)
- Includes both a traditional test and a programming component.
Participation and Engagement
Active participation is expected. Legitimate absences (illness, religious observances, college athletics) must be communicated in advance.
After each assignment, 2–3 students may be randomly selected to explain their code in class. Participation includes:
- Attendance
- In-class engagement
- Contribution to Moodle discussions
- Ability to explain submitted code
Programming Assignment Grading Criteria
- Correctness: Meets the assignment requirements, handles all inputs.
- Design: Modular code with appropriate use of functions/classes.
- User Interface: Clear, intuitive, and reusable.
- Style & Documentation: Readable code with good naming, comments, and formatting.
- Efficiency: Time and space-efficient solutions expected.
Programs that fail to compile: max 50%.
Programs with runtime errors: max 75%.
Late Policy
Late submissions are only accepted with prior permission via a [Request Form].
- One Week Extension: Request at least 1 week in advance.
- Three-Day Extension: Request at least 3 days in advance.
- 24-Hour Extension: Request up until the due date.
Do not modify submissions after the due date without permission.
Academic Honesty
All work must reflect your own understanding. Pair programming must follow course guidelines. Violations will be handled in accordance with the college’s academic honesty policy. [Policy Link]
Study Tips
- Read textbook sections before class.
- Take notes on confusing concepts and ask in class.
- Participate actively during class and in Moodle forums.
- Start labs early and follow pair programming practices.
- Seek help early during office hours or tutoring.
It is expected that you read all the sections to be covered BEFORE the class and come to class prepared to discuss the topics.
File for labs:
Here are files needed for labs: Link
Check this page regularly for updates . This is a tentative schedule to be updated as needed.
