Jump to content

Python programming language: Now you can take NSA's free course for Beginners

Recommended Posts


Python Programming Language: Now you can take NSA's free course for Beginners


NSA releases Python course after receiving a Freedom of information Act (FOIA) request for its training materials.


Developers already have numerous options from the likes of Microsoft and Google for learning how to code in the popular Python programming language. But now budding Python developers can read up on the National Security Agency's own Python training materials. 

Software engineer Chris Swenson filed a Freedom of information Act (FOIA) request with the NSA for access to its Python training materials and received a lightly redacted 400-page printout of the agency's COMP 3321 Python training course.

Swenson has since scanned the documents, ran OCR on the text to make it searchable, and hosted it on Digital Oceans Spaces. The material has also been uploaded to the Internet Archive.      

There doesn't look to be anything controversial in the documents, which contains course material sessions that would take between 45 and 90 minutes to complete in a class setting. The COMP 3321 course can be completed over a "full-time, two-week block" with 10 modules covered per week. 


The NSA also suggests that the material could be taught at a more "leisurely pace, for instance during a weekly brown bag lunch" over several months or even over a three-day workshop. 

The course offers a quick introduction to Python, its creator Guido van Rossum, and what the language is suitable for, such as automating tasks, creating a web application or doing advanced mathematical research. It also explains why Python has become so popular among beginning developers and data scientists. 



"If you don't know any programming languages yet, Python is a good place to start. If you already know a different language, it's easy to pick Python on the side. Python isn't entirely free of frustration and confusion, but hopefully you can avoid those parts until long after you get some good use out of Python," writes the NSA.  

Students use version 4.4.0 of the Anaconda3 Python distribution and can run Python in the command line or through a Jupyter notebook from the browser. 


Python developer Kushal Das has pulled out some interesting details from the material. He found that the NSA has an internal Python package index, that its GitLab instance is gitlab.coi.nsa.ic.gov, and that it has a Jupyter gallery that runs over HTTPS. NSA also offers git installation instructions for CentOS, Red Hat Enterprise Linux, Ubuntu, and Windows, but not Debian. 


Share this post

Link to post
Share on other sites

Hi dear friend @xhartom


Thanks for sharing this, I was looking for something to start in this universe of programming and it seems to be a good starting point, could you tell me if it is necessary or is it better to have a virtual machine running Linux to use this material and learn better?


Do you have experience with programming and with this language? Can I appeal to you if I have questions?


Anyway thank you in advance.


A hug.



Share this post

Link to post
Share on other sites

I would not advice any one getting anything from NSA, instead they should stick to NSAneforums 😁

Share this post

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...