Department of Computer Science & Information Systems
University of North Alabama
◊ Current courses

CS 155
Computer Science I

CS 440
Computer Networking

CS 455
Software Engineering

◊ Past courses

CS 110
Intro to Computers

CS 120
Intermediate Computer Topics

CS 135
Computer Skills for
Problem Solving

CS 155
Computer Science I

CS 249
Information Security (CIS 249)

CS 255
Computer Science II

CS 311
Computer Architecture

CS 325
Programming for the Web

CS 335
New Developments
in Programming

CS 355
Data Structures & Algorithms

CS 421
Automata Theory &
Compiler Construction

CS 430
Design & Analysis
of Algorithms

CS 440
Computer Networking

CS 447
Theory and Applications of Database Systems

CS 455
Software Engineering

CS 470
Artificial Intelligence

CS 490
Cryptography (MA 491)

CS 490
Undergraduate Research
in Computer Science

CS 490
Senior Seminar/Honors Capstone

CIS 376
Web Development

ITE 376
Secure Software Development

ITE 449
Infrastructure Security

>Links

Announcements
Class Schedule

Session Activity Reference
#1 - Aug 21 Course overview Syllabus & Course Materials,
Topics
#2 - Aug 28 UML, LaTeX Topics,
Assignment #0,
LaTeX MWE,
UML slides
#3 - Sep 4 Software patterns,
make(1) and Makefile
Topics,
Software patterns slides
#4 - Sep 11 STL & Boost,
make(1) and Makefile,
Boost example
Topics,
STL & Boost slides
#5 - Sep 18 Requirements,
Configuration Management
Topics,
CM & Change control slides
#6 - Sep 26 Design,
HCI/UX
Topics,
HCI/UX slides
#7 - Oct 2 Design,
Secure coding
Topics,
Secure coding slides
#8 - Oct 9 Software patterns & Quality,
Gitea workflow
Topics
#9 - Oct 16 Software reviews,
SQA,
CMMI-DEV
Topics
#10 - Oct 23 Software testing,
Peer reviews,
Testing
Topics,
Software testing slides
#11 - Oct 30 Integration testing,
Mobility testing,
CI/CD,
gTest Test Framework
Topics,
Witty Number base converter,
gTest example,
CI/CD slides
#12 - Nov 6 SCM,
Metrics & Analysis,
DevOps,
Witty Pet Shop
Topics,
DevOps slides
#13 - Nov 13 Software estimation,
Software Risk,
Cloud, Docker, & Kubernetes
Topics,
Cloud slides
#14 - Nov 20 Software maintenance,
Software process improvement
Topics

A note about taking notes

I'm often asked about posting my lecture notes on the class web site.

  1. Taking notes during class is, in my opinion, a vital part of the learning process. Hearing what is said, thinking about the material, and writing (in your own words) what we are discussing each session serves to reinforce the learning process. In fact, I think it is useful to take notes from your textbooks as well. The process really speeds up learning and increases retention.
  2. My notes are an extreme shorthand designed to guide me during class. They do not contain everything I say in class or write on the board/computer. My notes are, at best, a skeleton listing of the topics we've covered. Your notes should be more detailed than mine, after all, I already know the material.
  3. Finally, it would be much easier for me not to write anything on the board or computer. The reason I do these things is to allow you to reflect on what is being discussed, write appropriate notes, and ask questions. Writing key phrases and facts on the board/computer is designed to slow me down and allow you time to write your notes. Everything we discuss in class is possible exam material whether I write it down or not (i.e. you should be writing it down).

So, I don't believe posting my lecture notes is in your best interest. I feel it is important for you to take your own notes during class.

However, I will do the following:

  • post a list of the topics we've covered each session,
  • post selected links to reference materials I use,
  • post the chapter and page numbers for each session.

These will be posted on the class web site for each session.

Course materials
Last updated 11/21/24