Fall 2021: Computer Science Courses

Register for Fall 2021 Computer Science Classes

Course 1: Introductory Java Programming – Introduction to  AP CS-A Java

Instructor: Dr. Karpoor Shashidhar, karpoor@gmail.com

 In this course, we will explore the basics of programming in the Java language. This course should prepare you for the AP Computer Science A exam. Some topics we will study include Variables and Operators, Input and Output, Methods, Conditionals and Logic, Loops, Arrays, Strings, brief Overview of Objects and Classes etc. We will also immerse ourselves in the mechanics of programming – running, testing, and debugging. The book we will be using for the course is “Think Java, How to Think Like a Computer Scientist” by Allen Downey and Chris Mayfield. This class is suitable for students in grades 7-11. Previous experience in computer science is not required.

Objectives


Our course for middle school and high school students exposes them to introductory and intermediate computer science concepts to build a foundation for further studies and exploration of computer science.

  • This course will prepare you for the AP Computer Science A exam.
  • This course will prepare you with essential programming tools and data analysis techniques that can be applied to individual research projects. This will strengthen your application to highly selective academic enrichment programs.
  • Students who are interested in preparing for local and national competitions, including the USA Computing Olympiad. Students who gain the ability and knowledge to succeed in these competitions are successful in applications to selective universities and are well prepared for internships at leading technology companies.

 

Class Schedule: Sunday 4:30-6:00 Central Time

Location: Online via Zoom – meeting room information will be sent to students.

Dates: 8/22, 8/29, 9/12, 9/19, 9/26, 10/3, 10/10, 10/17, 10/24, 10/31, 11/7, 11/14, 12/5, 12/12

Instructor: Dr. Karpoor Shahshidhar

Tuition : $650

Items you will need for this class:

  1. A flash drive
  2. Laptop/Desktop (PC or Mac) and access to this computer for at least 3 hours per week to complete the weekly assignment

Software Requirement:

  1. On our first class, we will discuss installation of the Java Platform, Standard Edition JDK 13 (Java SE 13.0.1) (https://www.oracle.com/technetwork/java/javase/downloads/index.html)
  2. We will install TextPad, a lightweight Java IDE designed for students and beginners in Java. (https://www.textpad.com/) – we can also work using online Java compilers.

Books and Related Reference Materials:

  1. Textbook: Think Java, How to Think Like a Computer Scientist is an introduction to computer science and programming intended for people with little or no experience. The book presents each new idea in a logical progression. Larger topics, like recursion and object-oriented programming, are divided into smaller examples and introduced over the course of several chapters. This book is well suited to prepare students for the AP Computer Science A exam, which includes object-oriented design and implementation. The book is available here:
    1. https://greenteapress.com/wp/think-java/
    2. http://greenteapress.com/thinkjava6/thinkjava.pdf (PDF Version)
    3. http://greenteapress.com/thinkjava6/html/index.html (HTML Version)
    4. https://books.trinket.io/thinkjava/ (Interactive Trinket Version with a Java compiler in your browser)
    5. https://github.com/AllenDowney/ThinkJavaCode (Accompanying code for the book)
    6. https://greenteapress.com/wp/wp-content/uploads/2016/01/AP.pdf (Mapping of Computer Science A to Think Java Textbook)
  2. CollegeBoard AP Computer Science A Description:
    1. https://secure-media.collegeboard.org/digitalServices/pdf/ap/ap-computer-science-a-course-description.pdf
    2. https://apcentral.collegeboard.org/courses/ap-computer-science-a?course=ap-computer-science-a
  3. Create an account at codingbat.com. There are some interesting problems we can work on as the course progresses.
  4. Barron’s AP Computer Science (only if you are interested). This is an optional and supplemental book but will help you prepare for the exam. It usually costs about $20 but you may find used copies for less online. Barron’s online AP Computer Science sample test is here: http://barronsbooks.com/AP/compsci/

Some Questions: I would like you to email me the answers to these questions before our first class.

  1. What is the single most important skill for a computer scientist? Please explain.
  2. Java is a high-level language. What is the difference between a high-level language and a low-level language? What other high-level languages have you heard of?
  3. What are your goals for this course?
  4. Tell me something interesting about yourself.

Course 2: Introduction to  Python – Introductory Python Programming

Instructor: Dr. Karpoor Shashidhar, karpoor@gmail.com

In this course, we will explore the basics of programming in the Python language. Python is an interpreted, high-level, general-purpose, object-oriented programming language. Created by Guido van Rossum and first released in 1991, Python’s design philosophy emphasizes code readability and is a fun and awesome first language to learn. We start off with basic concepts of programming. Some topics we will study include Variables and Operators, Input and Output, Functions, Conditionals and Logic, Loops, Strings, brief Overview of Objects and Classes etc. We will also immerse ourselves in the mechanics of programming – running, testing, and debugging. The book we will be using for the course is “Think Python: How to Think Like a Computer Scientist” by Allen Downey. This class is suitable for students in grades 7-11. Previous experience in computer science is not required.

Objectives
Our course for middle school and high school students exposes them to introductory and intermediate computer science concepts to build a foundation for further studies and exploration of computer science.

  • This course will prepare you with essential programming tools and data analysis techniques that can be applied to individual research projects. This will strengthen your application to highly selective academic enrichment programs.
  • Students who are interested in automating mundane tasks can do so effectively with Python, which is a fast, scripting, prototyping language.
  • Students who are interested in preparing for local and national competitions.
  • Students who gain the ability and knowledge to succeed in these competitions are successful in applications to selective universities and are well prepared for internships at leading technology companies.

 

Class Schedule: Sunday 6:00-7:30

Location: Online via Zoom – meeting room information will be sent to students.

Dates: 8/22, 8/29, 9/12, 9/19, 9/26, 10/3, 10/10, 10/17, 10/24, 10/31, 11/7, 11/14, 12/5, 12/12

Instructor: Dr. Karpoor Shahshidhar

Tuition : $650

Items you will need for this class:

  1. A flash drive
  2. Laptop/Desktop (PC or Mac) and access to this computer for at least 3 hours per week to complete the weekly assignment

Software Requirement:

  1. On our first class, we will discuss installation of Python 3 including IDLE, the IDE. (https://www.python.org/)
  2. We will look into alternate IDEs and optional online Python interpreters.

 Books and Related Reference Materials:

  1. Textbook: Think Python 2nd Editionby Allen B. Downey is an introduction to computer science and Python programming intended for people with little or no experience. The book presents each new idea in a logical progression. Larger topics, like recursion and object-oriented programming, are divided into smaller examples and introduced over the course of several chapters. This book is well suited as a first step to Python and programming in general. The book is available here:
    1. https://greenteapress.com/wp/think-python-2e/
    2. This is the second edition of Think Python, which uses Python 3. We will NOT be using Python 2, which is covered in the first edition, which is here.
    3. http://greenteapress.com/thinkpython2/thinkpython2.pdf (PDF Version)
    4. http://greenteapress.com/thinkpython2/html/index.html (HTML Version)
    5. https://github.com/AllenDowney/ThinkPython2/tree/master/code (Accompanying code for the book)
  2. Create an account at codingbat.com. There are some interesting problems we can work on as the course progresses.

Some Questions: I would like you to email me the answers to these questions before our first class.

  1. What is the single most important skill for a computer scientist? Please explain.
  2. Python is a high-level language. What is the difference between a high-level language and a low-level language?
  3. What other high-level languages have you heard of?
  4. What are your goals for this course?
  5. Tell me something interesting about yourself

  *(Make up day if needed)

Items you will need for this class:

  1. A flash drive
  2. Laptop/Desktop (PC or Mac) and access to this computer for at least 3 hours per week to complete the weekly assignments

Course 3: Advanced Programming (Python or Java)

Instructor: Dr. Karpoor Shashidhar, karpoor@gmail.com

The advanced programming course will be either Java or Python, depending on enrollment.

The course objectives are:
 
1. Brief recap of language fundamentals (Java/Python) for a couple of weeks.
2. Followed by Advanced Java/Python concepts including object-oriented programming and related applications.
 
Introductory students from either language should be able to fit in effortlessly to the advanced concepts since they will be given a primer the first couple of weeks. This will be a hands-on, milestone project-oriented course and is expected to be fun and challenging! In particular, this will enable students to design and write advanced code to automate most daily activities.

Class Schedule: Tuesday, 5:15-6:45  PM Central Time

Class Dates: 8/24, 8/31, 9/7, 9/14, 9/21, 9/28, 10/5, 10/12, 10/19, 10/26, 11/2, 11/9, 11/16, 11/30

Location: Online via Zoom – meeting room information will be sent to students.

Instructor: Dr. Karpoor Shahshidhar

Tuition : $650

Items you will need for this class:

  1. A flash drive
  2. Laptop/Desktop (PC or Mac) and access to this computer for at least 3 hours per week to complete the weekly assignment