Papers I Took

Here is a a list of papers that I took in the Bachelor of Information Technology degree.

First Year

IN501 Professional Practice

An introduction to communication theory, writing and speaking in order to help us communicate in the workplace and develop a professional attitude.

IN510 Programming 1

Programming 1 focused on an introduction to programming and used the C# programming language. Starting at the very basics, we covered if statements, loops, methods and were introduced to sorting algorithms. A well-rounded introduction to programming.

IN520 PC Maintenance

PC Maintenance introduced us to computer hardware, using Cisco’s IT Essentials course. We learned about motherboards, CPUs, hard drives and basic hardware and went on to cover topics such as networking, printers and laptops. We got hands-on experience taking computers apart.

IN521 Maths for IT

This course introduced us to several facets of mathematics (particularly discrete mathematics) that are useful in the IT industry. We covered topics such as binary and hexadecimal, set theory, circuit diagrams/logic gates, trigonometry, Big O notation and sorting algorithms.

IN505 Introduction to Systems Analysis

Here we were introduced to the concept of databases and then went on to focus on systems analysis. We covered various types of diagrams used in systems analysis such as data flow diagrams, activity diagrams and use cases.

IN511 Programming 2

Programming 2 was a continuation from Programming 1 and focused on 1) introduction to creating GUIs with Microsoft Visual Studio, and 2) introduction to object-oriented programming. We were introduced to the concepts of classes and objects, encapsulation, inheritance and polymorphism.

IN512 Web 1

Web 1 focused on an introduction to HTML, CSS and JavaScript. Starting with HTML and CSS, we were introduced to JavaScript and jQuery and also concepts such as HTTP and SEO.

IN515 Introduction to Networks

This course served as a basic introduction to networking, using Cisco’s CCNA1 course. Topics covered included network protocols, IP addressing, network and transport layers and subnetting. The course involved hands-on experience connecting hardware as well as configuring routers and switches using Cisco’s IOS operating system.

Second Year

IN605 Databases 2

Picking up from Systems Analysis and Design, this course covered database design as well as back-end database management using MySQL and SQLite. We were required to design a database based on a given scenario and then implement said database using MySQL.

IN610 Programming 3

Programming 3 focused on introducing us to the Java programming language. We started with command line applications and later in the semester we learned to develop GUIs, both manually and then through Eclipse’s GUI builder. A brief introduction to Android app development was also included.

IN618 Security

A basic introduction to IT security. We covered issues such as risk management, password hashing, cross-site scripting, cross-site request forgery, SQL injection and buffer overflow.

IN620 Embedded Systems

This course focused on embedded systems with a focus on the Arduino. We were introduced to concepts of low-level computing such as memory registers and assembly language. The course required the SparkFun Inventor’s Kit which included an Arduino and a number of components including sensors and a servo motor. We learned how to use the Arduino primarily through following the guide that came with the kit.

IN602 Software Engineering

Software Engineering was designed to prepare us for our third year project. We were introduced to concepts such as Scrum, Agile, Sprint and Kanban. We worked in teams to create a pizza ordering site using Java and FreeMarker.

IN612 Web 2 – Programming

Web 2 focused on back-end web development using PHP. We were introduced to the PHP language, learned how to process Web forms and interact with MySQL databases. We hosted our applications on the IT department’s Kate server.

IN617 Linux Operating Systems

An introduction to Linux. We installed Ubuntu Server on virtual machines and learned about the basic concepts of the Linux operating system including file permissions, users and groups, bash scripting and networking. All labs were done at the command line.

IN628 Programming 4

Programming 4 introduced us to C++/CLI with a focus on game development. We learnt how to create sprites and have them interact with other sprites and terrain background tiles. We were also introduced to functional programming with Python and logical programming using Prolog.

Third Year

IN710 Object-Oriented Systems Development

This course focused on advanced object-oriented program design with a specific focus on design patterns. It was taught in C#. We covered interfaces, strategy, factory and observer patterns, creating events, LINQ (involving external database management) and ASP.NET MVC web development.

IN712 Web 3

This course focused on several areas of web design and development including JavaScript, running a server with Node.js, development using Django and creating RESTful APIs.

IN719 Systems Administration

An introduction to the world of systems administration, including automated software installation using Puppet, system monitoring using Nagios and backups using Bacula as well as a brief look at Active Directory. We worked on a set of virtual machines in the Polytechnic’s cloud.

IN720 Virtualization

In this course we covered containerization with Docker, container orchestration with Kubernetes, and creating a private cloud with OpenStack. We set up OpenStack via Packstack on a server and deployed virtual machines.

IN726 Data Science and Machine Intelligence

An introduction to several fields of machine learning. We covered topics such as linear regression, logicstic regression, K-nearest neighbours, support vector machines, artificial neural networks and deep learning, natural language processing and signal processing.