Dalhousie University    [  http://web.cs.dal.ca/~vlado/csci2132/coursecalendar.html  ]
Fall 2018 (Sep4-Dec4)
Faculty of Computer Science
Dalhousie University

CSCI 2132 — Course Calendar (tentative)

[ Home | Calendar | Misc | FAQ | A0 | A1 | A2 | A3 | A4 | A5 | A6 | A7 | P1 | P2 | P3 | P4 | P5 ]
#DateTitle 
  Course Introduction
1 We Sep 5Course Introduction
Course logistics and administrivia, important dates, course description, evaluation scheme and criteria; lectures, exams, assignments, and lab work; textbooks; academic integrity policy, culture of respect. Main learning objectives. Motivation for learning Unix and C, tentative list of course topics. An interesting link about programming languages used to develop some major software products and utilities: http://www.lextrait.com/Vincent/implementations.html
Files: lecture notes, slides, Syllabus (PDF).
 
  Part I: Unix Operating System
L1 Th Sep 6Lab 1: Unix: Getting Started
Logging in, PuTTY, basic directory commands, basic use of emacs, compiling and running a Java program, using SVN to submit files, head.
Files: lab notes, slides.
 
2 Fr Sep  7Introduction to UNIX and Unix-like Operating Systems
Introduction to UNIX: reading: Ch1 of the UNIX book, onion skin model of OS, OS functionalities, UNIX history, UNIX philosophy and principles.
Files: lecture notes, slides. Reading: [Unix] Chapter 1
A0 out
3 Mo Sep 10Unix Shells and Other Basic Concepts
Some hardware concepts, main Unix concepts, shells; Getting started, PuTTY, logging in, basic utilites and commands, logging out.
Files: lecture notes, slides. Reading: [Unix] Chapter 2
 
4 We Sep 12Files and Directories
Files and directories, seven types of files, directory structure, pathnames, Commands for managing and navigating directory structure, commands for file manipulation; File permissions: users, groups, file permissions.
Files: lecture notes, slides.
A1 out
L2 Th Sep 13Lab 2: Unix utilities, Emacs
Login and SVN, autocompletion, emacs, filters: uniq, wc, sort, cut.
Files: lab notes, slides.
 
5 Fr Sep 14 File Permissions
SVN, wc command, pipelines. File permissions (continued), modifying file permissions, effective userid and group id; input/output redirection.
Files: lecture notes, slides.
A0 due
6 Mo Sep 17Pipes; Links and Inodes
Pipes; Inodes, hard links, soft links. Wildcards (started).
Files: lecture notes, slides.
 
  Tu Sep 18Last day to add classes  
7 We Sep 19Wildcards and Regular Expressions
Filename substitutions (wildcards); Regular expressions,basic regular expressions, grep, filters.
Files: lecture notes, slides.
 
L3 Th Sep 20 Lab 3: SVN Tutorial
Use of SVN as source code repository, use of the course SVN repository.
Files: lab notes, slides.
A1 due
  Part II: C Programming Language and Software Development
8 Fr Sep 21C Programming Language
Grep variations, Extended regular expressions (ERE). Introduction to C, writing a simple program, compilation process, C basics, similarities and differences with Java, printing output and reading input, a simple HST program.
Files: lecture notes, slides.
 
9 Mo Sep 24 Formatted Input and Output in C
Formatted output: printf; formatted input: scanf.
Files: lecture notes, slides.
 
10 We Sep 26Shells and Computing Environment
More about scanf, fractions program example. Shells: functionality, popular shells, Bash shell, commands, shell variables. Programs and processes, process memory composition.
Files: lecture notes, slides.
 
  Th Sep 27Midterm I 7:30-8:30pm
Midterm I from 7:30pm to 8:30pm in the Rowe building, room 1028.
M1
11 Fr Sep 28Processes and Job Control
Processes: threads, process control block; Process creation, job control and process control; Foreground and background processes.
Files: lecture notes, slides.
 
  Mo Oct  1Last day to drop classes without "W"  
12 Mo Oct  1 C compared to Java: Expressions and Statements Files: lecture notes, slides.A2 out
13 We Oct  3C Basic Types
(Fire alarm disruption) Integer representation and floating-point numbers.
Files: lecture notes, slides.
 
L4 Th Oct  4Lab 4: Exploring bash and C Compilation
Exploring shell (bash), compiling C programs.
Files: lab notes, slides.
 
14 Fr Oct  5Software Development Life Cycle
Characters type; type conversions: implicit and explicit; typedef and sizeof keywords. Software Development Life Cycle (SDLC), waterfall model, rapid prototyping model.
Files: lecture notes, slides.
 
  Mo Oct  8 No class. Thanksgiving. University closed.  
15 We Oct 10Testing; Arrays in C
Software testing; Debugging, debugging strategies, gdb debugger; Arrays in C; one-dimensional arrays
Files: lecture notes, slides. Reading: C Book Chapter 8 (Arrays)
 
L5 Th Oct 11Lab 5: gcc and gdb tools
Learning more about gcc and gdb; using a program as an example, invoking debugger in emacs, gcc options.
Files: lab notes, slides.
A2 due
16 Fr Oct 12Multidimensional Arrays
Array example: binary search; multidimensional arrays; variable-length arrays; Latin square example.
Files: lecture notes, slides.
 
17 Mo Oct 15Functions and Recursion
Functions: definitions and declarations, arguments and parameters, passing by value, call stack, recursion; review of mergesort algorithm.
Files: lecture notes, slides. Reading: [C King] Chapter 9 Functions
A3 out
18 We Oct 17 Implementation of Recursive Algorithms
Mergesort implementation; Complexity of Mergesort; Quicksort vs Mergesort; Generating permutations example.
Files: lecture notes, slides.
 
L6 Th Oct 18 Lab 6: Practicum 1
Work on Assignment 3 and Practicum 1
Files: lab notes, slides.
 
19 Fr Oct 19 Generating Permutations
Generating permutations; Mutidimensional arrays as arguments. Program organization (started).
Files: lecture notes, slides.
 
  Part III: Program Organization and Dynamic Memory Allocation
20 Mo Oct 22 Program Organization
External variables (global variables); Organizing a C program in a single file; example: decimal to binary; blocks and compound statements, scope. Pointers: introduction and history.
Files: lecture notes, slides. Reading: [C King] Chapter 10 Program Organization
 
  Tu Oct 23 Assignment 3 due A3 due
21 We Oct 24 Pointers
Pointers (cont) pointer variables, reference types, address operator (&), indirection operator (*), pointer assignment, examples, common bugs, pointer arguments, statistics.c example.
Files: lecture notes, slides. Reading: [C King] Chapter 11 Pointers
A4 out
L7 Th Oct 25 Lab 7: Practicum 2, Simple Makefile, GitLab Start
Simple Makefile for testing; Creation of a GitLab account and a private project to be used for the course.
Files: lab notes, slides.
 
22 Fr Oct 26 Make and Git tools
An introduction to the `make' tool and Makefile; A review of history of version control systems, introduction to git, github, and GitLab. Review of pointers; finished statistics.c example.
Files: lecture notes, slides.
 
23 Mo Oct 29 Pointers and Arrays (Pointer Arithmetic)
Pointers and arrays, adding pointer and integer; subtracting pointers, pointer comparison; examples; Mergesort with pointers example.
Files: lecture notes, slides.
 
  Tu Oct 30Last day to drop classes with "W"  
24 We Oct 31 Strings
MergeSort with pointers example (finished). Strings: introduction, string literals and variables; reading and writing strings.
Files: lecture notes, slides.
A5 out
L8 Th Nov  1Lab 8: Working on Assignments 4 and 5, and Practicums 2 and 3 A4 due
25 Fr Nov  2 String Library Functions
A common mistake with VLA declarations. More string reading examples; buffer overflow risks; string library functions.
Files: lecture notes, slides.
 
26 Mo Nov  5 Writing Large Programs
Command-line arguments in C, sortwords.c example with insertion sort; Writing large programs, modules and header files. Protecting header files from double-inclusion, dec2bin project example (not finished).
Files: lecture notes, slides.
 
27 We Nov  7 Compiling and Debugging Large Programs
Example: dec2bin project example, compilation of large programs; make tool, using gdb with multi-file programs; Structures (started).
Files: lecture notes, slides.
 
  Th Nov  8Midterm II 7:30-8:30pm
Midterm I from 7:30pm to 8:30pm in the Rowe building, room 1028.
M2
28 Fr Nov  9 Structures and Dynamic Memory Allocation
Structures, arrow operator; Dynamic memory allocation: malloc and free. Heap (Free Store) started.
Files: lecture notes, slides.
 
  Mo Nov 12No class. Remembrance Day (in lieu of). University closed.  
  Mo Nov 12 Assignment 5 due
Assignment 5 and Practicum 3 due.
A5 due
   Nov 12-15Fall Study Break, no classes A6 out
29 Mo Nov 19 Linked Lists
Heap (Free Store) continued, efficient use of heap, additional allocation functions. Linked Lists, list.c example (student database), started.
Files: lecture notes, slides.
 
  Tu Nov 20 Assignment 6 early deadline  
30 We Nov 21 Merge Sort with Linked Lists
Example with a student database finished; Merge Sort with linked lists, example.
Files: lecture notes, slides.
A7 out
L9 Th Nov 22Lab 9: Assignments and Make Utility
Cloning GitLab project, lab submission via GitLab; More elaborate Makefile with a multi-file project and testing; using gdb on a multi-file project.
Files: lab notes, slides.
A6 due
  Part IV: Shell Scripting and File Manipulation in C
31 Fr Nov 23 File Manipulation
Merge Sort with linked lists example finished. Git and GitLab, comparison to Subversion (svn). File Manipulation: streams and files.
Files: lecture notes, slides.
 
32 Mo Nov 26 File Operations
Opening and closing a file, formatted I/O with a file, character I/O with a file; block reading and writing, file positioning, example.
Files: lecture notes, slides.
 
33 We Nov 28 Shell Scripting
Example with file writing (finished). Shell Scripting: introduction, a basic example, variables, arithmetic operations, conditional expressions, if-statement, for-loop, case-statement
Files: lecture notes, slides. Reading: [Unix, Glass and Ables] Ch8 The Bourne Again Shell
 
L10 Th Nov 29 Lab 10: Shell Scripting (power outage)
Labs not held due to power outage. Students should finish labs on their own.
Files: lab notes, slides.
 
34 Fr Nov 30 Final Exam Review
Final Exam Review. Course Evaluation.
Files: lecture notes, slides.
A7 due
35 Mo Dec  3 Shell Scripting Files: lecture notes, slides. 
  Course Review
36 Tu Dec  4Course Review
(Monday schedule used)
 
  Th Dec  6Final Exam (15:30 - 18:30) Dalplex
Final exam, duration 3 hours, starting at 15:30 in Dalplex. Exams schedule URL: http://www.dal.ca/academics/exam_schedule/halifax_campus_exam_schedule.html
F.Exam

Currently maintained by: Vlado Keselj, last update: 18-Jun-2019