Basic Info
Evaluation
Computers
Information
Compilation
Brazilian, Canadian, and French
Father of two little honey badgers tasmanian devils beautiful children
Electrical Engineer by trade
+20 years of experience in Software Development
Expressions
Logic
Loops
Arrays
Functions
Pointers
File IO
Algorithms
→ Quizzes followed by Lectures followed by labs
→ Labs will be evaluated and feedback will be provided on a weekly basis
→ Assignments and tests will also be evaluated and feedback will be provided
→ Lectures and labs will be in person
→ We will use:
Blackboard for assignments and announcements
Teams and Email for online help
Course Website for info and slides
Tutoring is available to all students
Accommodation forms must be presented at the beginning of the course
Need help? Ask me!
10 quizzes worth 1.2% each
8 workshops worth 3% each
1 midterm worth 15%
1 project worth 24%
1 final exam worth 25%
Late submission?
20%/day penalty
Including weekends (insert evil laughter)
Cover theory
Done prior to lectures
Blackboard tests
Time limited (short) and only one submission
Random order of questions
Cover practice
Coding exercises
Multiple submissions allowed
Cover both theory and practice
Time limited (short) theoretical component
More complex coding exercise
Students will be given a practical task to be completed
Focus on the practical (coding aspect)
Much longer than a regular workshop
Pen and Paper
Closed Book
Focus on the understanding of theory
There will be questions on understanding excerpts of code
Computers make use of both hardware and software
Smartphones and tablets are also computers!
→ Multiple types of input
→ Multiple types of output
→ Multiple types of memory (for storing information)
Modern computers store both data and instructions in memory
All processing happens at the CPU
Long term storage: Hard Disk (SSD or HDD)
Short term storage: RAM
Windows, Android, iOS, and Linux
Control access to memory and devices
Control access to CPU (multitasking)
All information, instructions and data, get stored as zeros and ones
These are called bits
Bits are grouped in blocks of eight, called bytes
Each byte of RAM memory has its own address
Using binary, 32 or 64 digits would be required to represent each RAM address
Hexadecimal is frequently used as a shorthand
Each hex symbol represents four bits
0x indicates a hex number: 0x03AD9C21 (32 bits)
As seen, computers natively speak binary
Early computers were programmed via punch cards
Assembly languages were developed to simplify the coding process
Procedural languages like C
evolved to make writing code simpler and more portable
A C source code is simply a text file
To become an application, it must be compiled
Compilation is a process that turns source code into machine code
// Basic Hello World program
#include <stdio.h>
int main() {
printf("Hello World\n");
return 0;
}
Multiple integrated development environments, IDEs, facilitate the task of writing, compiling, and debugging source code
In this course, we will use Visual Studio
Computer architecture (required)
Hexadecimal (required)