CS 3311 - Formal Models of Computation
Frequently Asked Questions (FAQs)

Professor: Dr. Nilufer Onder

CS 3311 FAQs

 

What is CS3311 about?

CS3311 teaches the mathematical foundations of computer languages, the languages that we use to interact with computers. Some examples are programming languages such as Python or Java and command languages such as Linux commands. There are two main objectives in designing a computer language. The first objective is to minimize complexity, i.e., to make the language as simple as possible. The second objective is to maximize expressive power, i.e., to increase the types of patterns or concepts that can be represented accurately. These are conflicting objectives. Consequently, there is a formal "hierarchy" of languages starting simple regular languages and going all the way up to Turing-recognizable languages. We will study regular languages, context-free languages and Turing-recognizable languages from this hierarchy.

We will view computer languages as text, which are strings of finite length, and work on defining the syntax of languages. Therefore, the math in the context of CS3311 is focused on text or strings rather than on numbers.

Further reference:
You can start with the following Wikipedia article that talks about the the language hierarchy developed by Noam Chomsky and Marcel-Paul Schützenberger.
   https://en.wikipedia.org/wiki/Chomsky_hierarchy

[Back to top]

Is CS3311 a "theory course"?

The answer depends on how theory is defined. It is hard to have a universal and precise definition of theory so I will compare Computer Science (CS) theory by building on two different usages of the word "theory". In daily usage, a theory refers to a guess or idea someone has. In natural sciences, a theory refers to "a scientifically accepted general principle supported by a substantial body of evidence offered to provide an explanation of observed facts and as a basis for future discussion or investigation." A theory is developed from data and observations using the scientific method.

CS theory is different from these two. Unlike the daily term, CS theory is formal and rigorous. Concepts or ideas are represented precisely and supported by proofs. Unlike scientific theories, it does not provide explanations of natural phenomena. Instead, CS theories are rigorous mathematical descriptions and properties of algorithms and representations used in computing. The algorithms and representations are developed by humans, they are not naturally occurring. Some examples are data structures and their properties, relational databases and their properties, cryptography, and machine learning.

In CS3311, while some topics such as finite state automata are theoretical, the emphasis is on the practice of designing and using computer languages.

Further reference:
The definition of scientific theories above comes from Ronald Matson's article citing Lincoln et al.'s 1990 definition.

[Back to top]

What are the applications of the material we learn in CS3311?

CS3311 prepares Computer Science majors for the Programming Languages course (CS 4121), and Software Engineering majors for the Model-Driven Software Development course (CS 4710).

Languages are essentialy text. Therefore, this course also provides the foundations of text processing that are used in Artificial Intelligence fields such as natural language processing and machine learning methods that learn from text.

The main idea in processing and understanding text is to have a formal language that represents some information. Natural languages are too complex to be understood by computers. To combat complexity, computer languages have to be sound (correct) so that there are no ambiguities or misunderstandings. The language also has to be as simple as possible so that it is implementable and verifiable. The Formal Models course covers a range of such languages.

[Back to top]

What is a typical lecture like?

Normally, the lectures are held in a regular classroom. At the time of the Covid-19 pandemic, the lectures were held syncronously over Zoom. Lectures consist of explanation of concepts, solving problems, and discussions in groups of two or three. All classes are recorded and can be found in the "Huskycast" link on Canvas.

While teaching, I write on paper under the document camera. I scan all the notes I wrote during class and upload them to Canvas.

My lectures are interactive with lots of opportunities for asking questions or starting discussions about the lecture topics and solving problems together in class.

[Back to top]

What kind of time commitment is needed?

The lecture topics are spread evenly over the 14 weeks of the semester. A homework is assigned every Monday and is due the following Saturday. You need to reserve time every week to solve the homework problems and type them to upload as a pdf.

There are three midterm exams, there is no final exam. The exams are not cumulative. You need to reserve time to study for the exams. I will provide a sample for each exam.

If you are not sure how much time you will need, I recommend reserving more time at the beginning than you think you will need. Then you can cut back depending on the results you get. Doing it the other way around, i.e., reserving minimal time at the beginning and increasing if you get low grades, does not work very well. This because you will have to catch up with the older material as well as study for the new material while the semester is getting busier and busier.

[Back to top]

Are the exams cumulative?

No. None of the exams are cumulative. I do not ask questions directly on prior exams' topics but you do need to remember the main ideas going forward.

[Back to top]

Why is the first exam split into two parts?

The ideal time for the first exam is the fourth week. The third week is too early as we haven't studied sufficient topics. Five weeks is too long without having taken an exam in a mathematical course. However, the Career Fair in the Fall and the Winter Carnival in the Spring usually take place during the fourth week. Therefore, I split the first exam into two parts. I give the first part in the third week and the second part in the fifth or sixth week. This arrangement also enables me to ask two induction proof questions in separate exams, giving students a chance to improve on their induction proof skills.

[Back to top]

Why are the exams held outside of class hours?

I observe that students do better when there is ample time to work on the exam questions. As our class periods are only 50 minutes, I do the exams in the evening and give 90 minutes for an "hour long" exam.

[Back to top]

What should I do if I have a conflict with the exam time?

Let me know as soon as possible if you have a class or exam at the same time as any of the CS3311 exams (Thursday, 6:00pm - 7:30pm).

[Back to top]

Who should I contact for accommodations?

Talk to the Dean of Students office (   website   ). They will let me know the type of accommomodations I need to provide. To protect your privacy, the Dean of Students office will not tell me the reason for your accommodation, they will only tell me what arrangements I need to make for you. I'm happy to work with you on these arrangements.

[Back to top]

Who should I contact for further questions?

See me during the scheduled office hours, which is after each class. If you can't make it to the office hours, send email to ask your question or to schedule a meeting time. Write "CS3311" on the subject line followed by a descriptive subject. Make sure to include the times and days you are available for a meeting.

[Back to top]


( Updated January 6, 2023 )
Previous Updates:
( Updated August 26, 2022; Updated January 5, 2022; Updated August 24, 2021; Updated: January 8, 2021; Created: August 26, 2020 )