Syllabus

Introduction

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.

Google offers a free Jupyter Notebook environment called Google Colaboratory, which integrates directly into Google Drive.

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

Topics

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

Schedule

Class will meet:

Section

Days

Time

Bldg

Room

16211

MWF

0900-1155

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-discipline by the student. It is in your best interest to attend class.

Textbook

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.

Instructor

Professor Richard E Sarkis <rsarkis@pas.rochester.edu>

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.

Teaching Assistant

There are no graduate TAs assigned to this course.

Grading

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 encouraged to discuss the course material, and the assignments with each other, but the submissions must be individual and unique work.

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

All assignments, and activities associated with this course must be performed in accordance with the University of Rochester’s Academic Honesty Policy.

I have zero tolerance for cheating, and will begin immediate Academic Honesty procedures if it is suspected.

Academic dishonesty in a course can involve a wide range of offenses:

  • Plagiarism

  • Copying papers, online answer keys, or answers on exams, or allowing others to copy your work.

  • Using unauthorized aid during a quiz, or exam.

  • Altering answers on graded exams and submitting them for re-grading.

  • Copying data from other students’ labs or projects, or allowing others to copy your data.

  • Using labs, papers or assignments from previous semesters or from other students and submitting them for credit

  • Providing your classwork from this semester to students in future semesters.

Attribution

Portions of this class website are from Hands-on Python Tutorial used with modification, in accordance with the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. This site is also released under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License..