Naked C#: A Beginner's Guide to Coding
- Descrição
- Currículo
- FAQ
- Revisões
This course will not teach you to become a programmer. Programming is like martial arts, it takes years and years of practice. No course can make you a grand master, no matter what it promises. What this course WILL do is give you a solid foundation in programming as a skill for life, using C# as the vehicle. You will learn about the fundamental nature of the computer and how to communicate with it through the development of programs, to perform a variety of tasks and solve numerous problems. Following the same curriculum used to teach 1st year computer science in university in the first 6 months of a degree, you will learn not just what to program but 1) why it is is done like that and 2) how you can broaden your skill set in programming beyond this single course.
The topics covered include:
-
Bits, Bytes and Binary
-
Management and Manipulating Memory
-
Performing Mathematical Operations
-
Designing Dynamic Program Execution with Logic
-
Developing Repetition for Fast Data Processing
-
Handling User Input
-
Reading and Writing to Files
The course material has been developed for students using either Windows or Mac computers, using the freely available Mono C# compiler. It is well paced, covering each concept in bite-sized chunks and filled with hands-on workshops that will build projects across a variety of domains. Some of the programs that will be written include:
-
a Caesar Cipher for encrypting text
-
a Hangman Game
-
a Number Guessing Game
-
a Chatterbot
-
storing and retrieving names and addresses in a file
-
reading and processing text from a webpage
At the end of this course you will be equipped with a toolbox of skills that you can apply in your job and day-to-day life, making you more employable and relevant in today’s marketplace.
What students are saying about this course:
-
Penny is a really good teacher, this is the kind of C# class I’ve been looking for and it is just right for what I need right now. I would highly recommend it.
-
This course has been awesome. I knew virtually nothing about coding, and now I’m halfway thru, loving it, and learning a TON! Great teacher, clear and concise lessons with plenty of opportunity to learn, test code, experiment, and consistent quizzes and challenges. 5/5
-
I’m an artist, code was always something that I had the desire to learn but at same time I always thought it was something too complex and boring, until I decide to buy this course and start watching these videos. Everything is very well explained, she teaches really well, straight to the point. Now I’m finding it extremely fun to learn and I’ve been doing the course and watching the videos as if it were a Netflix series. I get excited at every new thing that pops up 😀 I also love when you have to do challenges, it’s like a game, super fun. It is very easy to follow, even if you have zero knowledge in coding, like me when I started. Recommended!
-
1Why do it Naked?Texto
-
2Join the H3D Student CommunityVídeo Aula
H3D has a bustling online student community. Here's how to get involved.
-
3Contacting H3DTexto
How to contact us
-
4FAQsTexto
-
5Terminals, Command Lines, Folders and DirectoriesVídeo Aula
This lecture will explain how your computer folder hierarchy is structured and how to access the command-line. It will be the command-line that you will be using to compile and run the C# programs created in this course. Understanding how to access and create directories from the command line will make your programming life much easier.
-
6Setting Up A C# WorkspaceVídeo Aula
This lecture will take you step by step through the setup of your computer with a C# compiler and test that it works. The setup for both Mac OS and Windows operating systems will be demonstrated.
-
7The Anatomy of a C# ProgramVídeo Aula
Previously students stepped through the writing and compiling of their first C# program. In this lecture it's time to examine that initial code in more detail. By the end the elementary structure of a C# program will have been explained and demonstrated allowing students to make minor modifications to their code to change the program output.
-
8Bits and BytesVídeo Aula
This lecture explains how computer memory is structured due to the electronic nature of the hardware. It demonstrates how bits are structured into bytes and teaches students the origins and use of binary code. Afterwards students will be able to explain the process of converting binary code into decimal values. This is essential knowledge for the novice programmer before they delve further into coding.
-
9Introduction to VariablesVídeo Aula
In this lecture you will learn how to create an integer variable to store a number and then print it to the terminal window.
-
10More VariablesVídeo Aula
In this lecture we will continue examining the different datatypes that can be used to create variables. In particular float, double and char will be discussed. There will also be an explanation of why datatypes come in different sizes and why you should select the smallest ones for your needs.
-
11The ASCII Table and the CharVídeo Aula
The topic of this short lecture is the ASCII Table. We will explore how the symbols on the keyboard are stored internally for the computer and how you should deal with them in programming.
-
12StringsVídeo Aula
In this lecture you will learn about strings and how to store sentences and paragraphs in a variable. At the end we will also start to explore user input and write a short program to ask some questions and print out responses.
-
13ChallengeTexto
-
14A Word About FormattingVídeo Aula
This short lecture will cover the formatting of code and examine where you can and can't put in spaces or new lines.
-
15AppendicesTexto
ASCII and Datatype Tables
-
16VariablesQuestionário
-
17Basic Mathematical OperatorsVídeo Aula
In this lecture we will cover the basic mathematical operators of addition, subtraction, multiplication, division and modulus and you will learn how to use them in a program to modify the values held in variables.
-
18Converting String Input to Number ValuesVídeo Aula
In this lecture you will learn how to take input in the form of a string and convert it into a numerical value that can be used in an interactive calculating program.
-
19Mathematical FunctionsVídeo Aula
In this lecture we will take a quick look at the built in C# Math class. This class contains a plethora of complex and useful prewritten mathematical functions that will make your job as a programmer much easier.
-
20ChallengeTexto
-
21Mathematical OperatorsQuestionário
-
22Relational Operators and the IF statementVídeo Aula
This lecture explores the use of relational operators in developing dynamic programs that will operate differently depending on variable values and user input.
-
23A Simple Guessing Game and other Relational Operator ExamplesVídeo Aula
In this lecture you will follow through step by step with a number of examples that examine the use of relational operations with an if statement. You will create a simple guessing game and grade calculator.
-
24The Switch StatementVídeo Aula
This lecture will introduce you to the switch statement. The switch statement can be used as a substitude for an if statement when you only want to check for exact matches between variables and literals. The switch will be demonstrated through the development of a simple calculator program.
-
25Boolean Algebra and Logic OperatorsVídeo Aula
In this lecture Boolean Algebra will be introduced as a means of creating compound logical statements. After examining the concepts of AND and OR a program will be developed that can test the student on their knowledge.
-
26Calculating Leap YearsVídeo Aula
In this practical step-by-step lecture students will develop code that uses Boolean Algebra and user input to test if a given year is a leap year.
-
27ChallengeTexto
-
28Appendix ATexto
-
29Boolean AlgebraQuestionário
-
30For LoopVídeo Aula
This lecture will introduce the concept of loops before looking explicitly at the for loop. Throughout students will learn how a loop operates and write their own code to process a variable number of inputs to a program with a loop before printing out a result.
-
31While and DoWhile LoopsVídeo Aula
In this lecture while and do-while loops will be introduced. Students will be stepped through the workings of each and shown examples of how they can be used for testing user input validity.
-
32Nested LoopsVídeo Aula
In this lecture nested loops will be explained with an examination of a for loop embedded inside another. By the end of this lecture students will understand how such loops run and affect the flow of the program.
-
33An Advanced Guessing GameVídeo Aula
In this workshop students will follow along as a number guessing game is created. A program will be developed to generate a random number that the user has to guess. The program will run until the correct number is guessed and provide the user with feedback as to whether their guess is too high or too low. This program explores the use of a while loop that contains an if statement.
-
34LoopsQuestionário
-
35Introduction to ArraysVídeo Aula
This lecture explains the programming construct of arrays. It demonstrates how powerful they can be when coupled with loops. Students will learn how to create and array, fill it with values and process the values contained within.
-
36ForEach LoopsVídeo Aula
In this short lecture the foreach loop will be demonstrated. This is a special loop used with arrays for accessing the values.
-
37Multidimensional ArraysVídeo Aula
This lecture introduces the idea of multidimensional arrays and shows students how to declare and initialise them with values. In particular, the focus will be on two dimensional arrays and a short program will be written to enter in values and print them out.
-
38The Caesar CipherVídeo Aula
In this hands-on workshop students will follow along as a simple encryption program is written using arrays and loops. The product will be a program inspired by the cipher developed by Julius Caesar and used for sending his military documents.
-
39ChallengeTexto
Modify the Caesar Cipher to ask the user how many characters to shift by and then apply this to the encryption. The answer is in the attached resource file.
-
40Introduction to Jump StatementsVídeo Aula
In this lecture jump statements will be introduced. They are a means of changing the flow of a program by providing a way to quit out of loops or jump to other parts of code. By the end of this lecture students will understand how jump statements can be used to make their code more efficient by reducing the amount of work it is doing.
-
41The Break StatementVídeo Aula
In this workshop the break statement will be used to stop a loop from searching through a text document. During this exercise students will also learn how to download a webpage directly into their C# program and use this as the contents to search through for a keyword.
-
42Continue StatementVídeo Aula
In this workshop a data file will be searched for invalid data. The continue statement will be used to skip over the processing of this data that could cause an error when the program runs. Students will work with the code and data file of geolocations for the worlds capital cities to print out a list of those in the Southern Hemisphere.
-
43Challenge 1Texto
Modify the code from the Continue workshop to print out all cities in the Northern Hemisphere.
-
44Challenge 2Texto
Modify the code from the Continue workshop to print out all the cities (with name and country) between the latitudes of 30 and -30.
-
45Challenge 3Texto
Read a file in from a url and apply a Caesar cipher of shift 5 and output the result.
-
46An Introduction to FunctionsVídeo Aula
In this lecture functions and methods will be introduced. By using these constructs repetitious code can be modified by input values to change the way the program works. By the end of the lecture students will understand the different forms a function can take as well as how to use ones from the C# library in their own programs.
-
47Challenge 1Texto
Use the Math.Ceiling() method in your own program.
-
48Challenge 2Texto
Use the Console.Beep() method in your own program.
-
49Writing Custom Functions Part 1Vídeo Aula
In this follow along workshop we will be rewriting a program to replace repetitive code with a function. The function will allow for customisation of the data it is processing and how that data is displayed.
-
50Writing Custom Functions Part 2Vídeo Aula
In the second part of writing a custom function we will explore overloading and the use of the return jump statement to send data out of the function and back to the Main() method.
-
51Function Returns with OUTVídeo Aula
Sometimes you will want to get more than one value out of a function. In this case the return statement won't work. Instead the "out" modifier is applied to function parameters that allow values to be retained after the function has ended. This lecture demonstrates how to apply the out modifier with existing functions as well as the how to write your own.
-
52Local and Global VariablesVídeo Aula
In this lecture we will example how variables can be defined with different access points inside a program. Some variables will exist for the entire program whereas others will be created and destroyed as needed. This greatly assists with memory management and knowing how to use these will make your programming more efficient.
-
53Try, Throw, Catch.Vídeo Aula
In this lecture we will overview a way to build more robust programs that will not crash when errors occur. Through the use of the try/catch statement I'll demonstrate how to build a program that can fail gracefully or not at all when an error occurs with computer memory or user input.
-
54Classes and ObjectsVídeo Aula
In this lecture we will look at the basic structure of a class and how it is used as a template to create custom and complex datatypes. A follow along section at the end demonstrates how to build a class and program to store names and addresses.
-
55Challenge 1Texto
Expand the code created at the end of the previous lecture to allow the program to set all the properties of the Person class in the constructor such that Person requires 4 arguments.
-
56Challenge 2Texto
To the answer of the previous challenge question add the details for 3 more friends and print them out.
-
57Arrays of ObjectsVídeo Aula
Arrays are a very useful way to store, process and retrieve many objects of the same type. This is no different for classes. This lecture will demonstrate how array's of objects are handled in the exact same way as arrays or other datatypes.
-
58Challenge 3Texto
Use the code from the previous lecture to create a program to read in the values of 10 cars before printing out the details for all.
-
59Challenge 4Texto
Modify the solution from the previous challenge and add to the car details a way for the user to enter, store and print out the registration number for each car.
-
60Public, Private and StaticVídeo Aula
In this lecture we will examine the use of the public and static modifiers and discuss how they control access between classes of methods and properties.
-
61Playing with Static Methods and PropertiesVídeo Aula
In this lecture we will take a look at the way static and non-static methods are used in the two C# classes of Console and String and discuss the different ways they are accessed in code.
-
62Challenge 5Texto
Write a program that has two strings, one set to the word "apple" and one set to the word "orange". Use the String.Compare method to write a message to the console telling us which word comes before the other in the alphabet or if the words are the same.
-
63Inheritance and PolymorphismVídeo Aula
In this lecture an overview of inheritance and polymorphism in object-orientated programming is presented. It is an advanced concept that although you have been using throughout this course, not something you might initially see the benefit of. However as you begin to write more and more programs with complex functionality you'll appreciate these special characteristics and learn to use them to your advantage.
-
64Reading FilesVídeo Aula
In this lecture we will examine the File class and use it to read values out of a text file. The values will be read in as an entire string as well as broken down into lines and individual words for processing.
-
65Challenge 1Texto
Write a program that reads in a file containing one float per line and calculates the average and prints it out formatted with 2 decimal places.
-
66Writing FilesVídeo Aula
In this lecture we will look at the methods for writing and appending values to a text file. The code is straight forward and easy to implement.
-
67Caesar Encrypting a File of TextVídeo Aula
In this workshop we will work through taking the Caesar cipher program created earlier to encrypt and unencrypt text files.
-
68Webpage Word Search CounterVídeo Aula
In this workshop we will grab the text of a webpage from a given URL and do a word search counting the number of times a certain word appears.
-
69Hangman Game Part 1Vídeo Aula
In the first of this two part workshop we will build the logic of a word guessing game called Hangman.
-
70Hangman Game Part 2Vídeo Aula
In the second part of this workshop we will finalise the code for the Hangman game by adding in looping functionality and win/lose scenarios.
-
71Chatterbot Part 1Vídeo Aula
In the first part of this two part workshop we will develop a chatterbot program. This is a text based application in which you can type in text and get a response as through you're typing in a chat room.
-
72Chatterbot Part 2Vídeo Aula
In the second part of the chatterbot workshop we will expand on the bot's functionality through getting it to transpose words to reword sentences back at the users.
