Syllabus¶
Table of Contents
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.
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¶
Alan Beadle <hbeadle@cs.rochester.edu>
- Office Hours:
- On ZoomBy Appointment
Email me if you need to reach me and I will get back to you as soon as I am able to. I’m available to meet on Zoom for most of each weekday.
Teaching Assistant¶
The TA for this course is Beakal Lemeneh blemeneh@u.rochester.edu
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:
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¶
This website was orginally made by Richard Sarkis who generously shared the source and materials for this offering of the course. 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..