Dalhousie University    [  http://web.cs.dal.ca/~vlado/csci2133/coursecalendar.html  ]
Winter 2017 (Jan9-Apr10)
Faculty of Computer Science
Dalhousie University

CSCI 2133 — Course Calendar

[ Home | Calendar ]
1 Tu Jan 10Course Introduction and Preliminaries
Course logistics and administrivia, course description, evaluation criteria, course calendar overview, academic integrity policy, culture of respect, course content overview.
2 Th Jan 12About Course Project
About course project, hints about choosing a topic, defining scope, forming a team, preparing design document (P0), planning the process, interfaces, choices, tools. About background knowledge: Java, C, Linux command line.
L1 Th Jan 12 Lab 1: Design Thinking Exercises
Presented by the course assistant Yaser Alkayale.
3 Tu Jan 17Review of Regular Expressions
Review of regular expressions, grep style regular expressions, egrep, other variations of regular expressions, an approach to implementing basic regular expressions.
4 Th Jan 19An Entrepreneurship Perspective
Invited Speaker, Jay Harris: Honest Observations of Entrepreneurship. Final notes on regular expression implementation.
L2 Th Jan 19 Lab 2: SVN Source Version Control  
  Fr Jan 20Last day to add classes  
5 Tu Jan 24 Scripting Languages
Notes related to A1: comments, make, test cases. Scripting languages: characteristics, history; shells and shell scripting; more scripting languages; Perl overview.
6 Th Jan 26Principles of Design Thinking
Invited Speaker Dr. Jennifer Baechler
L3 Th Jan 26 Lab 3: git, make, Assignment 1
A git tutorial; help with Assignment 1 and the make tool. Relevant links by Raphael Bronfman-Nadas: Introduction to Git, Getting Git, Geek Labs
7 Tu Jan 31Testing, Design Document, Scripting Languages
Review of the make tool; Testing; More details about the design document; Overview of Python programming language
8 Th Feb  2Scripting Languages, Internet and Web
Python overview (continued): functions, regular expressions, OO Python, summary; Projects update; Internet and Web: history and evolution, packet switching, TCP/IP standard.
L4 Th Feb  2 Lab 4: Python/Django 1 (Twee-Py Party)
Python fast tutorial: introduction, functions, objects; using git; pip and Tweepy: Twitter-profiler script; challenge.
  Fr Feb  3Munro Day - University Closed  
9 Tu Feb  7SSH and Related Topics
Project Updates; packet data encapsulation; SSH protocol and related topics: closer look at putty, public key cryptography, ssh configuration files, public key infrastructure
10 Th Feb  9DNS, Web, HTTP
SSH keys and access; client-server model; Domain Name System; World Wide Web: HTTP.
L5 Th Feb  9 Lab 5: Python/Django 2 (Web Built This City on CSS)  
  Fr Feb 10Last day to drop classes without "W"  
  Tu Feb 14No class, University closed, snow day  
11 Th Feb 16HTTP and HTML
Campus closed due to snow storm. Class canceled. Reading notes: Exploring HTTP protocol. HTML: historical remarks, basics, entities, META tag.
L6 Th Feb 16 Lab 6: Python/Django 3 (Perfectionists with Deadlines)  
  Mo Feb 20Winter Study Break, no classes, Feb 20-24  
12 Tu Feb 28Server-Side Design
Review of Lecture 11 (HTTP and HTML). Server-side design: Web servers: software, functionality, example with password-protected site, CGI programs, examples, Perl CGI examples, forms, GET and POST, bash CGI example, Python examples, PHP. Simple design for authentication (login example).
13 Th Mar  2A Simple Authentication Architecture
Simple login process design, securing connection, authentication, use of persistent data, sending emails, use of database systems, file locking.
L7 Th Mar  2 Lab 7: Python/Django 4 (There is a Template for Everyone)  
14 Tu Mar  7Authentication, Databases
Establishing a session, HTTP cookies, handling file download and upload, other authentication methods, OAuth2 and CAS; Database Systems: types, relational systems, SQL examples, some MySQL commands; SQLite; programming interface for databases
15 Th Mar  9Front-end Design: CSS
Databases continued: ODBC, JDBC; SQL injection and prevention, NoSQL databases, MongoDB, JSON data format; Notation, notation in protocols, SMTP example, simple SMTP notation, RFC822 style, "DB822" example; Front-end Design: GUI design environments; CSS: characteristics, syntax, examples, DOM model.
L8 Th Mar  9 Lab 8: Python/Django 5 (The Best App is a Finished App)  
16 Tu Mar 14Preliminary Demo  
17 Th Mar 16 Front-end Design: JavaScript
JavaScript: general characteristics, usage, DOM, examples, basic constructs: constants, variables, operators, statements, control flow, functions, libraries, examples, objects, arrays, JSON, prototypes.
L9 Th Mar 15 Lab 9: Project meetings  
  Fr Mar 17Last day to drop classes with "W"  
18 Tu Mar 21JavaScript
JavaScript continued: anonymous functions, common JavaScript issues, JavaScript and DOM, examples with events, dynamic CSS, Ajax, Ajax example, callbacks, libraries, jQuery example, HTML5 example functionality.
19 Th Mar 23UI Design
About ec server, SVN, and the project; UI Design: introduction, safety, GUI approaches, common ideas, GUI development environments, some examples: JavaScript, X Windows: protocol, handling events; Java Swing: example, components, events handling.
L10 Th Mar 13 Lab 10: Assignment review  
20 Tu Mar 28Web Frameworks
UI Design (continued): layouts; Tcl/Tk tool, Python Tkinter, Perl Tk; Web Frameworks: introduction, pros and cons, examples, MVC pattern, Django web framework: templates, interface; Network topics: example server and client code.
21 Th Mar 30Beta demo  
L11 Th Mar 30 Lab 11: Beta demo  
22 Tu Apr  4 Network topics, Performance Issues
Network topics; Programming client-server connections, pseudo-code, C example, Java example, Perl example; multi-threaded servers, Java example; Performance issues, reading Kernighan and Pike Ch7, Hadoop system example.
23 Th Apr  6Project Demos  
L12 Th Apr  6 Lab 12: Project Demos  
  Mo Apr 10Friday schedule used
A4 duedate extended until Wed Apr 12 midnight.
  Mo Apr 10 Term ends, Project submissions due  

Maintained by: Vlado Keselj, last update: 22-Aug-2018