Meeting (Online Only - check links below)

For the remainder of the semester, we'll post a few short videos each week, along with sample code and a handout or two (everything will be on the schedule page). Watch the videos, read the handout, and then pop into the remote meetings linked below if you have questions. Same process for the remaining labs, too!

Lecture Sec 1 (Strange): W 1:35-4:50pm.
Sec 2 (Strange): W 6:00-9:15pm.
Recitation (CS5003) Sec 1 (Bagley): R 1:35-4:50pm.
Sec 2 (Strange): R 6:00-9:15PM.
Final Exam April 15, 2020 during lecture


Syllabus: Download (PDF)
Grading rubric: Download (PDF)

Instruction Team

(Office hours begin on Friday, January 10th.)

Professor Laney Strange

Professor Keith Bagley

OH Link
Office Hours M 5:30-7:30pm
R 12-1:00pm
R 5:30-7:30pm

Teaching Assistant Isabella Avila Lares

Office Hours W 11am-1pm

Teaching Assistant Bobby Lupo

Office Hours Su afternoon (see piazza for hours each week!)

Teaching Assistant Brennan Beeler

Office Hours T 5-8pm

Teaching Assistant Samuel Engida

Office Hours W 4:30-7:30pm

Teaching Assistant Kraig Johnson

Office Hours R 11am-1pm

Teaching Assistant Shebna Mathew

Office Hours T 2-5pm, F 3-6pm

Teaching Assistant Edward Wersocki

Office Hours F 3-6pm

Teaching Assistant Utkarshna Sinha

Office Hours M 5-8pm

Teaching Assistant Kristi Spicer

Office Hours M 5-8pm

Teaching Assistant Miranda Tran

Office Hours T 2-5pm

Teaching Assistant Dayton Wilson

Office Hours W 11am-1pm

Teaching Assistant Zefan (KD) Zhang

Office Hours T 5-8pm

Teaching Assistant Archita Sundaray

Office Hours Sa 2-5pm

Course Goals

This course is an accelerated introduction to computer science with the Python programming language. Along with the other courses in the Align program, it will prepare you to complete your Master's Degree in computer science.

We believe that computer science is for everyone. No matter what your background is, you can succeed in CS5001. Computer science is a creative, collaborative field -- it's not just programming. Although programming is certainly an important craft and Python is an essential tool, we emphasize concepts and problem-solving over programming language. Learning computer science is like learning a new spoken language. There are rules of syntax and semantics, and sometimes a whole new mindset will apply. In this course, you'll learn how to think algorithmically, and how to solve problems elegantly.

  • learning how to solve problems through computer programming,
  • the common features of all programming languages as problem-solvers,
  • syntax and semantaics of Python programs,
  • debugging programs, and
  • algorithm analysis.
Homework will be assigned (almost) every week. You'll break down big problems into smaller ones and put your problem-solving skills to work with Python
Recitation (CS5003) is required. We meet every thursday to get additional coding experience, as well as for special Align seminars.


The final grade for this course will be weighted as follows.

Homeworks will be evaluated according to the CS5001 Grading Rubric. Your lowest homework score will be dropped and will not count towards your final grade. You have two late-day tokens, which you can apply to any homework throughout the semester (or split them up and apply one late-day token to two homewoerks). Apart from these two days, no late submissions are accpted.

There are 5-7 questions per quiz. Your quiz grade will be scaled, though (for example, getting one question wrong on a 6-question quiz doesn't mean your quiz score is 5/6 = 83%). Quiz scaling will be applied as follows:

Classroom Environment

In our classroom, please ask questions, and answer questions! In computer science, we seldom get anything right on the first try. We see how an attempt turned out, and we try again. I like our classroom to reflect that approach as well; so please answer a question that's been posed, even if you're not sure of the answer.

To create and preserve a classroom atmosphere that optimizes teaching and learning, all participants share a responsibility in creating a civil and non-disruptive forum for the discussion of ideas.

Students are expected to conduct themselves at all times in a manner that does not disrupt teaching or learning. Your comments to others should be constructive and free from harassing statements.

When you come to class, I ask that you be fully present. No phones are permitted in the classroom. If you use a laptop, use it only to take notes. Please be respectful of your fellow students and me by participating attentively and non-disruptively.