Foundations of Computer Science

TA | Foundations of Computer Science

Computer science as a discipline is changing rapidly. New developments in software and hardware are changing the way we write programs, design systems, and create applications. The role of the first-year curriculum in computer science is to lay the foundations for becoming a professional in the field. We examine the ways in which the changing nature of computer science influences our teaching methods, our view of which concepts are fundamental, and the overall sense of what it takes to become a successful computer scientist. We propose a first-year curriculum model that has a strong emphasis on design, programming in a structured project-based environment, and the extensive use of tools, libraries, and templates. We illustrate this model by describing a collection of graphics-based exercises that apply computing across the disciplines. The demand for computer scientists and computer engineers is strong and growing. The Foundations of Computer Science program is primarily focused on the fundamental aspects of computer science and aims at preparing students to research in computer science. Very solid foundations in mathematics and theoretical computer science are required. In the course sequence, you will learn to write programs that utilize both procedural and object-oriented techniques to solve business problems. In the first course in the sequence, we will provide you with a solid foundation in the computer science topics that are important to understand when programming Visual Basic. In courses two through four, we will roll up our sleeves and start coding in Visual Basic. In these courses, you need to have access to a computer that is running Windows, macOS, or Linux with the .NET 5 installed. We will show you how to install .NET 5.

Students without strong programming skills have a hard time taking advantage of these opportunities. WHAT YOU WILL LEARN Develop computer programs that utilize classes and objects to solve business and mathematical problems. Develop computer programs that utilize collections of variables to solve business and mathematical problems. Model Object Oriented Programs with UML class diagrams. SKILLS YOU WILL GAIN Debugging Visual Basic (VB) computer science fundamentals software modeling Computer Programming

What we offer in courses: Algorithms and Polymorphism, GUI Components and Arrays, FACP's Karel Programming, Data Storage/Processing, Graphics, and Animation/GUIs & I/O:- offers two types of Pro Paths: Skill Paths and Career Paths. Pro Paths help you know exactly what to take and in what order to build out your skillset or develop foundational domain knowledge. Whether you want to learn a specific skill (build a website) or develop in-depth knowledge for a career field (data science), Paths can help you get there. Each Path contains a curated set of lessons, quizzes, and projects that are outlined in a set of clear milestones. Additionally, Paths are self-paced and flexible, so you can learn at whatever pace is best for your lifestyle and time commitment. We currently offer two types of Pro Paths: Skill Paths: Build a Website with HTML, CSS, and Github Pages Analyze Data with SQL Create a Front-end App with React Analyze Data with Python Build a Machine Learning Model with Python Create a Back-end App with JavaScript Visualize Data with Python Analyze Financial Data with Python Create Video Games with Phaser.js Build Chatbots with Python Develop Basic Android Apps with Java Analyze Data with R Build Python Web Apps with Flask Build Web Apps with ASP.NET Pass the Terminal Interview with Javascript Design Databases with PostgreSQL Build Deep Learning Models with Tensorflow Master Statistics with Python Securing Express Applications Data Analyst Interview Preparation Data Scientist Interview Preparation Fundamental Math for Data Science Create REST APIs with Spring & Java Career Paths *Career paths are not available in all countries. Skill Paths are available to all Pro subscribers. Code Foundations Path Front-End Engineer Back-End Engineer Full-Stack Engineer Data Scientist Path Computer Science Path Data Analyst

Animation - Polka Dots, Bouncing Ball, Get the Prize, Karel the Robot, Mouse Input, Keyboard Input, Turtle, from scratch- Array of Polka dots, Array of Prizes, sum of a Series, Subway Tokens, Matrices, Sorting Numbers, Sorting Objects, Recursion, and many more concepts which help to learn basic to advance.

Classes and Objects

  • Hello Robot
  • Students and Books
  • Escape the Maze

Inheritance and Methods

  • Climb Every Mountain
  • Take the Field Part 1
  • Take the Field Part 2
  • Shuttle Run
  • A Half-Dozen Tasks

Algorithms and Polymorphism

  • Exploration
  • Hurdle Racing
  • Shifting Piles
  • Maze Escaping

Abstract Classes and Interfaces

  • Your ID Number
  • Harvesting and Carpeting
  • Project:An Original Karel Lab
  • Synchronized Swimming
  • Dancing Robots
  • Shifty Robots
  • Republicans and Democrats

Return, break, and continue

  • Treasure Hunt
  • Yellow Brick Road


  • modify:Graffiti
  • Welcome Home
  • Our Fearless Leader
  • Webbing and Sunshine

Static vs. Instance, Class vs. Object

  • Buckets, Part I
  • Buckets, Part II
  • Bugs
  • Square Turtles
  • Polygon Turtles
  • Flower Turtles
  • Twisty Turtles


  • Polka Dots
  • Bouncing Ball
  • Get the Prize
  • Riddle Me This
  • Bumper with Prize
  • Karel the Robot
  • Mouse Input
  • Keyboard Input
  • Turtle, from scratch
  • Array of Polkadots
  • Array of Prizes

GUI Programming

  • Hello Button
  • Hello Text Box
  • Multiple Buttons
  • Hailstone Numbers

What’s Inside the Black Box?

  • Odometer
  • Press Your Luck
  • Luck of the Roll
  • GCD and LCM

GUI Formatting

  • Sum of a Series
  • Subway Tokens
  • High - Low
  • Last Stone Wins

I/O Window Output

  • Asterisks
  • The Necklace
  • Bowling

Additional GUI Topics

  • More GUI Components
  • The jGrasp Debugger
  • Mixing Graphics and GUIs

Arrays and Files

  • Hello Array & Scanner
  • Sum, Avg, Min, Max
  • Fahrenheit to Celsius
  • Text Files

Objects in Arrays

  • Luck of Many Rolls
  • Shapes and Areas
  • Array of Shapes
  • Dictionary

GUI Components and Arrays

  • Miniature Golf
  • Binary Reversal
  • Binary to Decimal
  • Decimal to Binary
  • Guess the Number

Two-Dimensional Arrays (Matrices)

  • Miniature Golf, Foursome
  • Battleship!
  • Tic-Tac-Toe
  • Mastermind

Sorting Numbers

  • Find Min, Find Max
  • Selection Sort Algorithm
  • Modular Design
  • Scramble and Sort

Sorting Objects

  • Sorting Weights
  • Sorting Distances
  • Sorting Strings
  • Stu's Used Car Lot

String Parsing

  • EMail Addresses
  • Package Names
  • Musical Strings


  • Recursive Computations
  • Folder Listing
  • Towers of Hanoi
  • Fractal Trees
  • Binary Search