CSci 227 Syllabus    Resources    Coursework



Coursework
CSci 227: Programming Methods
Department of Computer Science
Hunter College, City University of New York
Spring 2025


Programming Assignments     Labs     Classwork     Code Review     Written Quizzes     Final Exam    

All students registered by Wednesday, 28 August are sent a Gradescope registration invitation to the email on record on their Blackboard account. If you did not receive the email or would like to use a different account, write to zs494@hunter.cuny.edu. Include in your email that you not receive a Gradescope invitation, your preferred email, and your EmpID. We will manually generate an invitation. As a default, we use your name as it appears in Blackboard/CUNYFirst (to update CUNYFirst, see changing your personal information). If you prefer a different name for Gradescope, include it, and we will update the Gradescope registration.



Programming Assignments

See Programming Assignments page for a list of the coding exercises for the class.




Code Reviews & Written Quizzes

Quizzes:

Every week, there will be a quiz to be taken in 1001G HN, on the lecture notes, reading, submitted programs, and programming assignments.

Code Reviews:

Every week, there will be an in-person code review on the recently submitted programs.

Calendar:

Unless otherwise noted, all quizzes and code reviews are in-person in 1001G HN.

Week: Quizzes Code Reviews
Topics Deadline Topics Deadline
0: Syllabus
(On Gradescope)
02/4 None
1: Academic Integrity 02/12 HR: Python Loops 02/12
2: Control Structures & Data Types 02/26 HR: Leap Year 02/26
3: Python Collection Data Types 03/05 LC 1 (Two Sum) 03/05
4, 5: String Methods ; Binary Search 03/12 LC 69 Sqrt(x) 03/12
6: Linear Data Structures: Array Implementations & Linked Lists 03/19 LC 2 (Add Two Numbers) 03/19
7: Stacks, Queues, Deques 03/26 LC 2073 (Time Needed to Buy Tickets) 03/26
8: Maps ADT's 04/02 LC 15 (3Sum) 04/02
9: Searching 04/09 LC 374 (Guess Number Higher or Lower) 04/09
10: Sorting 04/23 LC 2418 (Sort the People) 04/23
11: Trees & Heaps 04/30 LC 215 (Kth Largest Element in an Array) 04/30
12: Binary Search Trees 05/07 LC 701 (Insert Into a Binary Search Tree) 05/07
13: Graph ADT's 05/14 LC 997 (Find the Town Judge) 05/14

Note: Some of the deadlines in May (marked in boldface font) are adjusted for lab closures in the CUNY Academic Calendar.



Labs

Each week, you are expected to work through the associated Online Lab. Target dates for completing these are included. There is no deadline for completing these, but the programming assignments, quizzes and coding reviews are based on the information in the lab.

Lab 0: Set Up & Python Basics.Target date: Wednesday, 29 January.
Learning Objective: to set up accounts and IDEs for the semester and to refresh students' knowledge of Python basics learned in CSci 127.

Lab 1: Submitting Programs & Collection Data Types.Target date: Wednesday, 5 February.
Learning Objective: to use a linter to submit programs in good style and to understand the built-in collection data types.

Lab 2: Dictionary & String Methods.Target date: Wednesday, 12 february.
Learning Objective: to introduce dictionaries and container classes in core Python and recap I/O.

Lab 3: File I/O & Algorithm Analysis.Target date: Wednesday, 19 February.
Learning Objective: to recap file I/O techniques and to benchmark and describe execution time of simple programs.

Lab 4: Functions & Recursion.Target date: Wednesday, 26 February.
Learning Objective: To use recursion, exception handling, and parameters (including keyword arguments) in designing functions.

Lab 5: Classes & Objects.Target date: Wednesday, 5 March.
Learning Objective: to understand and implement classes, and to be familiar with standard Python modules.

Lab 6: Linear Data Types.Target date: Wednesday, 12 March.
Learning Objective: to understand the abstract data types stack and list and to be able to implement using linked lists.

Lab 7: Queues & Deques.Target date: Wednesday, 19 March.
Learning Objective: to understand the abstract data types queues & deques and to be able to use them in solving problems.

Lab 8: Map ADT's.Target date: Wednesday, 26 March.
Learning Objective: to understand the map abstract data types and to be able to use it in solving problems.

Lab 9: Searching.Target date: Wednesday, 2 April.
Learning Objective: to understand canonical searching algorithms and their running times.

Lab 10: Sorting.Target date: Wednesday, 9 April.
Learning Objective: to understand canonical sorting algorithms and their running times.

Lab 11: Trees & Heaps.Target date: Wednesday, 12 April.
Learning Objective: to understand the tree ADT and the concept of heaps to store data.

Lab 12: Binary Search Trees & Graphs.Target date: Wednesday, 30 April.
Learning Objective: to use binary search trees to efficiently store information and to understand the graph ADT.

Lab 13: More on Graphs.Target date: Wednesday, 7 May.
Learning Objective: to be familiar with some canonical graph algorithms.


Final Examination

The final exam is required. It is comprehensive, covering all the material of the course.


Exam Rules:

During the exam, you should have with you:

During the exam:


Exam Format:

On the day of the exam, there will be two parts to fill out:

Both the seat slip and the final exam must be submitted.


The final exam has 10 questions, each worth 10 points. The best way to study is to work through the problems we have done throughout the semester. The questions are very similar to the classwork, programming assignments, quizzes, examples from lecture and the reading.

On the last lecture, Wednesday, 12 December, we will have a mock final exam. It will be similar to the actual final exam, except that the time will be shorter, since lecture is 1 and 15 minutes while the final exam is 2 hours. An answer key will be available later that afternoon on Blackboard.