Learning Objectives: Students will:
- Set up the tools needed for the course (e.g. Python programming environment and software plaforms used).
- Refresh knowledge of Python learned in the introductory course.
- Review syllabus and complete Gradescope quiz ("Quiz 0").
Software Tools Needed: Web browser to access textbook and set up accounts.
Lab Notes: Download the outline and focus questions to guide you while working through this lab.
These are a useful tool for note taking and as well as studying for the quizzes and final exam.
Introduction
Welcome! Our first lecture will be:
10-11:15am in 1001E HN, Wednesday, 31 January 2024
This lab is a quick preview of the course and has a checklist of things to do now, before we meet in person.
Audience: This continuation of CSci 127 is aimed at computer science minors and others interested in strengthening their programming skills and knowledge of canonical data structures and algorithms. This course can be counted towards a computer science minor. While computer science majors are welcome, this course does not count towards the computer science major.
Focus: This course surveys core topics in data structures and algorithms. The emphasis is on solving problems and less time on the theory (for more on both, see the programming sequence for majors: CSci 135/235/335). With this emphasis, we will use two industry standards, LeetCode and HackerRank, as sources for problems in classwork and for coding reviews. The course goal is mastery of the material so that students can successfully complete technical challenges at the summer internship skills level.
Course Organization: Like CSCI 127, this is a hybrid course. Each week, there are in person and on-line components to the course:
- Lecture: in-person on Wednesdays, 10-11:15am in 1001E HN.
- Lab: on-line activity available after lecture. It includes reading, programming exercises and challenges. Each lab includes an outline and focus questions to guide your study.
- Code Review & Quizzes: in-person oral and written assessments in the 10th floor Python Lab. Appointments available M-F, 11:30-5:30pm beginning 31 January.
Things To Do Now
Before the first lecture, here's some things to do to prepare for the upcoming semester. More details in the subsections below:
- Set up your Python programming environment.
- Set up accounts for the software platforms that we will use this term
(Blackboard, Gradescope, LeetCode, HackerRank, and GitHub).
- Refresh your knowledge of Python learned in the introductory course.
- Complete Quiz 0 on Gradescope (available 24 January).
1. Python Programming Environment
If you don't have a laptop or home machine, reach out the Office of Student Affairs. Hunter College is committed to providing students the resources they need to succeed.
Set up the programming environment or your laptop or home machine. While you can use online environments, if you have a machine, it's good practice for the future to use an integrated development environment (IDE). Visual Studio Code is an all-purpose one that works well with Python on Linux, Windows, and MacOS (see VS Code installation notes).
2. Access for Software Platforms
Set up accounts for the software platforms we will use this term:
- Blackboard: this is set up automatically about 24 hours after registration. If this course does not appear on your Blackboard list of courses, double check your CUNYFirst account to make sure that you are registered for the course registration. For issues with Blackboard, see the CUNY Blackboard Page.
- Gradescope: this will be set up automatically for all students registered on 24 January. If you registered after that date, this course is not appearing in your Gradescope course list or you would like to use a different email address (we use the one in Blackboard), send email to
csci227@hunter.cuny.edu
with your full name, EmplID, and preferred email and access will be added manually.
- LeetCode: LeetCode is a platform designed to prepare for technical interviews. See leetcode.com to set up a free account.
- HackerRank: HackerRank is used by companies to conduct on-line technical interviews. They also have materials to prepare for interviews. See hackerrank.com to set up a free account.
- Github: Github is a platform that allows developers to manage and store code, including version control of code and hosting simple websites. See github.com to set up a free account.
3. Introductory Python Recap
The textbook has an excellent overview of data structures and algorithms as well as a concise review of Python topics. Written by the same team who wrote the CSCI 127 textbook, it has interactive code windows and exercises throughout the text. Work through the following sections of the textbook:
- Sections 1.1-1.6 (Overview of Data Structures & Algorithms)
- Section 1.7 (Basic Python)
- Section 1.8.1 (Built-in Atomic/Primitive Data Types)
- Section 1.10 (Control Structures)
- Section 1.12 (Defining Functions)
(The other sections of the first chapter are also important, but we will cover those later in the term.)
4. Quiz 0
There are weekly written quizzes for the course. The first quiz, "Quiz 0", is a quick on-line exercise, based on the syllabus. It is available on Gradescope on 24 January.
What's Next
That's it for now! See on 10am, Wednesday, 31 January in 1001E HN!
But, if you want to look ahead, here's some links:
- Lab 1 works through submitting programs and using pylint (a automated checker for programming style).
- Programming assignments can be submitted up to 2 weeks early on Gradescope. For all programs, there's upto a 10% bonus for submitting early-- see the programming assignments page for details.