This course introduces students to the basic building blocks of deep learning. Lectures will cover both basic and intermediate concepts, including convolutional neural networks, recurrent neural networks, generative adversarial neural networks, transformers, and natural language processing. After completing the course, you'll have a comprehensive understanding of the fundamental architectural components of deep learning and be able to: (1) Create a deep neural network using TensorFlow, (2) Grasp the mathematics and the intuition behind the algorithms, and (3) Understand the most popular deep learning methods.

Syllabus

Course Format

This class uses an active learning format with lectures, small-group activities, programming labs, programming assignments (homework), and group projects.

Enrollment

Please consult with the University of Juba registrar on how to enroll to the class.

Prerequisites

  • Linear Algebra:
    This is the most crucial requirements for deep learning. Background in matrices, vectors, and linear equations will come handy when you design models for classification, regression, etc.
  • Programming:
    Some programming experience, such as knowledge gain from taking an introductory course to programming is required. Experience in Python is good but not required - the course will provide a Python refresher.
  • Statistics:
    Background in statistics, especially probability is good but not required. Statistics will help you extract insights from your raw data and is a valuable skill for a deep learning specialist.

Text Books


(Required) - The Deep Learning book by Ian Goodfellow, Yoshua Bengio and Aaron Courville gives an introduction to a broad range of topics in deep learning, covering mathematical and conceptual background, deep learning techniques used in industry, and research perspectives. A free online version is available at: https://www.deeplearningbook.org and a pdf version can be downloaded by clicking on the book image.


(Optional) - The Learning Python book by Mark Lutz is our designated Python learning book. It gives a comprehensive, in-depth introduction to the core Python language. It’s an ideal way to begin, whether you’re new to programming or a professional developer versed in other languages. A pdf version can be downloaded by clicking on the book image.

Course Components

  • Lecture The class meets on Mondays at 2pm in the Senate Hall located at the main campus. Attending classes is mandatory and a crucial component of learning the material in this course. At the end of each class, you may be given an assignment to complete after class. Part of your grade will be attendance.
  • Labs Laboratory exercises will meet at the new Computer Lab located across the street from the STEM center. Check the schedule for lab time and dates. Lab attendance is mandatory is factored into the attendance component of the grade.
  • Programming assignment Programming assignments will be given out after new materials are covered in lectures and labs. Assignments are due in exactly one week before the start of the next lecture. Students are encourage to ask questions either through email, zoom calls, or during lab sessions. Part of your grade will be based on correct completion of assignments.
  • Group Project All students are expected to complete a group project. You will work in teams of two-three students to design and implement a deep neural network to solve a problem of your choosing. We will use a development sprint process with a series of graded milestones. Your team will create a project proposal, a mid-term report, and a final report that includes a presentation. The final report and presentation will describe your problem, solution, and results. We will award prizes to the the best projects. Please see the Project section for details of expected deliverables.

Grading

This course is letter-graded and there is no pass/fail option. The course grade comprises of five components.

  • 10%: Attendance (lectures and labs)
  • 25%: Programming Assignments
  • 20%: Mid-term
  • 40%: Final Project (broken into proposal, mid-term report, final report and video)
  • 5%: Quizes

Please email the teaching staff (uojdeeplearning@gmail.com) about any issues concerning grades within one week of receiving your grade.

The mapping of the grade is as follows:

  • A: 100-95%
  • A-: 90-95%
  • B+: 85-90%
  • B: 80-85%
  • B-: 75-80%
  • C+: 70-75%
  • C: 65-70%
  • C-: 60-65%
  • D+: 55-60%
  • D: 50-55%
  • D-: 45-50%
  • F: < 45%

Course Policies

  • Attendance: You must attend and proactively participate weekly during the lecture and labs. Please let us know as soon as possible if you have extenuating circumstances affecting your ability to attend class or labs.
  • Zoom Norms: All students must attend the lectures and labs in person and only the instructor and guest lecturers may attend via zoom session. However, if you intend to attend a lecture via zoom, please email the instructor (uojdeeplearning@gmail.com) and receive permission. If you received permission to attend lecture or lab via zoom, please make sure to participate from a quiet office or similar space (and not from a car, plane, or train). Participate with your camera turned on.
  • Late Policy: You allowed two late days for assignment throughout the semester, but not for the final project. For unexcused late submissions, we will deduct 5% of an assignment’s points per day that it is submitted late.
    You can also email the teaching staff (uojdeeplearning@gmail.com) ahead of time and obtain permission for late submission if circumstances prevents you from submitting your assignment.
  • Collaboration Policy: You are expect to adhere to the University of Juba Honor Code at all times. Failure to adhere to the honor code and our policies may result in serious penalties, including automatic failure in the course and reference to the ad board.

    You may discuss your homework and labs with other students, but you must be intellectually honest and give credit where credit is due. In particular:
    • You may submit the same assignment solution as your lab partner, but you must add their name to your assignment submission
    • You have to complete your assignment entirely on your own
    • You may discuss your assignment with your lab partner. You can discuss your code structure and help each other debug. However, you may not share the assignment code.
    • You cannot share your assignment code with anyone else, including on Ed.
    • You may not submit the same or similar work to this course that you have submitted or will submit to another course.
    • You may not provide or make available solutions to individuals who take or may take this course in the future.

    You may use third-party libraries and example code, so long as the material is available to all students in the class and you give proper attribution. Do not remove any original copyright notices and headers.
  • AI Policy (ChatGPT and other AI tools): AI (artificial intelligence) resources such as ChatGPT can be useful in several ways. However, because it can also be abused, you must acknowledge the use of AI in any work you submit for class. The following are some guidelines for what not to do when using AI in your assignments:
    • Do not rely solely on AI tools to complete assignments. It is important to understand the material and complete assignments on your own, using AI tools as a supplement rather than a replacement for your work.
    • Do not use AI tools to plagiarize. Using AI to generate or modify content to evade plagiarism detection is unethical and violates academic integrity.
    • Do not assume that AI responses are always correct. It has been noted that AI can generate fake results.