Current Announcements

  • NEW I have updated the DIP links in the syllabus.
  • The last C++ lecture was skipped, and the Python lectures have started on March 31.
  • The tangled rules for Koenig scope/namespace lookup. I have posted a sample program: koenig. cpp
  • Error messages in C++ can be lengthy. To redirect stderr to a file, use >& in the Unix/Linux terminal: g++ map.cpp >& /tmp/err_mess. Then you can edit the error message file to look at it.
  • Since the 1999 standard for the C language, one can declare arrays with variable dimensions. See the wikipedia page. The usage is not recommended by some, like Linus Torvalds.
  • I have added the code for ptrs2fncs_argcv.c, which tests qsort on arrays of random numbers which are settable by command line arguments.
  • The class is in-person. The lectures will start on Tuesday, January 13, 2026 at 6pm in SAS 1220.
  • In addition, the Zoom video recordings of the 2021 lectures are on Moodle accessible via https://wolfware.ncsu.edu.
  • This web site is from where you obtain the programs discussed in class and the programming project descriptions. The links are in the syllabus.
  • Ken Thompson's Turing Award Lecture on trusting trust is at https://amturing.acm.org/lectures.cfm#thompson_4588371
  • Pavan Dayal's 2021 Python Jupyter notebooks are on Moodle. The code posted in the syllabus is from the previous two classes taught by Mark Lavin in 2011 and 2018.
  • Individually, you can email me. You will submit your programming projects by email.
  • My office hours, to be held online via Zoom, are listed on my schedule. I may record the office hours. I have posted the ID on top of the Moodle web page. The website https://ncsu.zoom.us/j/<ID> where <ID> is the ID may work.
  • There are no examinations, and the programming projects are the sole parameter used to determine the course grade. Two fully functional programs will get you an A, three an A+.
  • In Spring 2024, Spring 2023, Spring 2021, Spring 2020, Spring 2018, Spring 2011, Spring 2008, Fall 2004, Fall 2003, Fall 2002, Fall 2000, Fall 1999 and Fall 1998 a similar course was given.
    NOTE: in 2011 coverage was switched from Java to Python, which is used extensively in the Sage computer algebra platform.

Peoples' home pages: Erich Kaltofen.

C programs for the course

    For the topics the individual programs demonstrate, see the syllabus.

Python programs for the course; Mark's original github

    For the topics the individual programs demonstrate, see the syllabus.

C++ programs for the course

    For the topics the individual programs demonstrate, see the syllabus.

Computer Help and Online Software

Old Announcements


©2011, 2018, 2020, 2021, 2024 Erich Kaltofen.