Class Objectives

Modern programming revolves around the creation of abstractions or, more specifically, abstract data types (ADTs). An ADT describes a collection of information in terms of the operations that one can perform upon it, and how those operations behave. A data structure is a concrete way of organizing the information inside a computer. An algorithm is a series of steps that the computer performs on the data structure (or set of data structures) to accomplish a desired operation.

In a nutshell, that’s what CSC 162 is about: abstract data types, data structures, and algorithms.

This course has CSC 161 as prerequisite. You should know how to program, particularly in Python to perform well in this course.

About the Python Programming Language

Python is a widely used general-purpose, high-level programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C++ or Java.

The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and explanatory text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, machine learning and much more.

Continuum Analytic’s Anaconda Python distribution is an easy way to install Jupyter.

This course uses Python version 3.6 or later, and requires the use of Jupyter Notebooks.


The topics covered in this course can be found on the Lectures page.


Class will meet:

Section Days Time Bldg Room
15661 MTW 0900-1155 GAVET 208

The full class schedule can be found on this page: Schedule.

Attendance to my class lecture is obligatory, but overall enforcement is left as an exercise of self-discpline by the student. It is in your best interest to attend class.


We will be using Problem Solving with Algorithms and Data Structures using Python by Bradley N. Miller and David L. Ranum as a required textbook.

View the Reading Room to look at the required and recommended books and how to obtain them.


Professor Richard E Sarkis <>

Office Hours:
Bausch & Lomb Hall, room 470
By Appointment

To find my office: Take the elevator in B&L Hall to the 4th floor. Turn left, and walk all the way to the end of the hall. My office will be on your left.

I respond very well by e-mail, so expect an in-person conversation to end with me saying “send me an e-mail” so that I can better handle your issue.

Graduate Teaching Assistant

There are no graduate TAs assigned to this course.


Course Components

Please note, labs and workshops have hard deadlines: zero credit for being late.

  • 70% Lab Assignments
    • These are weekly, individually-done assignments
  • 30% Workshop Problems
    • We will have a series of in-class workshop problems

Total: 100%

Grading Scale

Letter Grade Lower % Upper %
A 93% 100%
A- 90% 92%
B+ 87% 89%
B 83% 86%
B- 80% 82%
C+ 77% 79%
C 73% 76%
C- 70% 72%
D 60% 69%
E 0% 59%

Class Work

  • All class content is submitted either through Blackboard unless otherwise stated. I do not accept any e-mail submissions of graded items. Multiple submissions of your assignments through Blackboard is allowed, until the due date. Only your last submission will be graded.
  • Blackboard will list any and all due dates for assignments.
  • It is your responsbility to keep track of your grades, and to query me if you have grading questions.
  • All graded components of the course will receive a grade of zero if they are handed in late.

Academic Honesty

Students are strongly encouraged to collaborate, work together, and share ideas. (A good recommended procedure is to get together in a group, solve the problem on a white board, but do not take any notes out of the session. Once you understand the solution, it is easy to implement on your own.) However, each assignment must be the unique product of an individual. No group projects. Standard academic honesty principles apply – in short, be certain that you are the author of everything you hand in. Do not electronically copy, cut/paste any code that you did not first type in yourself. Do not give your work to other students in any form. If you work with or get help from another student, then document the collaboration. All sources not your own must be properly referenced in program comments and written documentation. I have zero tolerance for cheating, and will begin immediate Academic Honesty procedures if it is suspected.

Finally, you must be able to explain anything you submit, in person at any time, at the instructor’s discretion.

University Policies

  • Academic honesty: Any case of academic dishonesty will be dealt with according to the University Honesty Policy.
  • Disabilities: Please see university policies on student accommodations and discuss your needs with the instructor.
  • Learning Assistance: Students who are having difficulty with course material are encouraged to talk to the instructor, and/or the staff in Learning Assistance Services.