Course Syllabus

Learning Objectives and Overview

The specific learning objectives for this course are:

  1. Explain the application of computational or quantitative thinking across multiple knowledge domains.
  2. Apply the foundational principles of computational or quantitative thinking to frame a question and devise a solution in a particular field of study.
  3. Construct a model based on computational methods to analyze complex or large-scale phenomenon.
  4. Identify the impacts of computing and information technology on humanity.

 A principal assessment of the extent to which these learning objectives have been met is through rubric-based evaluation of student projects. 

This course provides students with a perspective on the core ideas of computation and the methodology central to the practice of computing by:

  1. engaging students with computational models in a variety of disciplines,
  2. exposing the core elements of computation and algorithms that underlie these models, and
  3. working with data streams that have real-world characteristics (real-time, complex, and/or large scale).

The fundamental ideas of computation are illustrated by an introduction to algorithmic thinking and a basic skill in a practical programming language. In addition, the social, political, and/or ethical impacts and implications are briefly examined.

This is a general education course open to all majors. While it introduces a widely used programming language, it is not a programming class. The intent is to provide some basic skill in programming, but not at the level of a typical programming class. Moreover, this course does not satisfy any prerequisite in the Computer Science curriculum. However, this course does prepare students for further study in Computer Science, should they choose to.

Prerequisites and Co-requisites

None.

Student Computer

Because of the heavy reliance on online materials, all students are required to have a computer to use. All software in the class is multi-platform, so Windows, Mac, and Linux systems are accommodated. A standard web browser, preferably Chrome, will be used.

Texts and Materials

All readings, in-class work, and homework problems are freely available in this (a Virginia Tech) Canvas site. You can access all of the book's sections in the Pages menu of this site. There is no separate textbook required for this course.

The course will also use freely-available, multi-platform software for conducting analysis of complex models, interfaces for accessing data streams that are real-time, complex, or large scale, and systems for composing and executing programs in a practical programming language. 

Office Hours

The course staff is available in class each day for help. Meetings can be scheduled outside of class times (aka, office hours) on request. We are always happy to meet with students! Use the contact information on this page:

Course Staff Information

to schedule a meeting with your instructor, the GTAs or your cohort's UTA. The Staff navigation link also points to this page.


Grading

Student performance in the course will be evaluated according to the weights in the following table.

Assignment Percent Evaluation
Classwork and Homework 50% This work is evaluated based on success in completing each assignment. For best learning, classwork and homework should be completed by the Due date shown on each assignment. No penalty is assessed for late answers but all classwork and homework for a given module must be completed by the "Closed On" date (see below).
Projects 30% There are four project evaluated by a rubric assessing the quality and completeness of the project's work. 
Attendance 10% This work is evaluated by recorded attendance. 
Reading Quizzes 10% This work is evaluated by success in demonstrating understanding of the required readings. Each reading quiz should be completed before the beginning of the class associated with that reading quiz.

Receiving a passing grade in the class requires good attendance, consistent effort to complete assigned classwork and homework, and submission of a credible project. Higher grades require increasingly better completion of assigned classwork and homework and higher evaluations on the four projects. 

Questions about the score on an assignment

Students are expected to periodically check their scores in Canvas and raise any questions or concerns about the scores received in a timely manner. For all work except for the final project, "timely" means within 2 weeks of the grade being posted to Canvas. In submitting the final project a student takes responsibility for having reviewed and accepted the scores on all assignment except for the final project itself. There is a small window of time between the posting of the final project scores and the submission of the final grades. Students are expected to indicate promptly any questions or concerns they have regarding their final project score.

Organization and Deadlines

The course is organized into seven modules as shown in the following table. Each module has a "Closed On" date. No work for a module will be accepted beyond the "Closed on" date for that module as shown in the table. 

Each assignment in a module also has a due date. This is the date by which the assignment should be completed for the best learning. Generally, Classwork should be completed in class and Homework for each class should be completed before the beginning of the next class. There is no penalty for submitting work before the Closed on date but after the due date.

Number Topic Description Classes Closed on
1 Abstraction and
Visualization

Representing complex, real world phenomenon through information properties; using visualization techniques to answer questions about the phenomenon.

1-4

The start of class on

February 7.

2 Algorithms Study of the basic components of algorithms (action, sequence, decisions, iteration, and state). A block-based programming environment is used to develop algorithms for  small-scale problems. 5-8

The start of class on

February 21.  

3 Algorithms and
Big Data

Exploration of complex real-world phenomena by algorithmically manipulating large-scale data sets from real-world sources. A block-based programming environment is used.

9-12

The start of class on

March 7.

4 Python

Manipulating and visualizing large-scale data sets that have a complex organization. Algorithms are  constructed in the Python programming language within supportive programming environment. 

13-20

The start of class on

April 11.

5 Mini Project A cohort activity to complete a project using an assigned data set. 20-22

The start of class on

April 23.

6 Final Project An individual activity to complete a project using a self-selected data set. 23-28

The start of class on

May 7.

7 Conclusion Code Explanation and Course Feedback 29

The end of class on

May 7.

Woven throughout the modules is the consideration of the societal impacts of computing. Students are guided through discussion and reflection on how the power of computing technology affects society and individuals. Study, discussion, and reflection on the social impacts of computing and information technology will be interlaced with the topics above.

There are four projects in the course as described in the following table. The Percent reflects the fractional contribution of each project to the total weight of the projects (30%) in the course. The "Due" dates shown below are the last dates on which the projects may be submitted for grading; these dates correspond to the "Closed on" dates for the module of which the project is a part. 

Project Name Description Percent Start Due/Closed
1 Nano An individual activity using a visualization tool to answer questions about a real-world data set using basic visualizations. 10%

January 31

Start of class on

February 7.

2 Micro An individual activity to answer questions about a real-world data set through algorithms  constructed in a block-based language. 20%

February 28

Start of class on

March 7.

3 Mini A cohort activity to complete a project in Python using an assigned real-world data set. 20% April 9

Start of class on

April 23.

4 Final An individual activity to complete a project in Python using a self-selected data set. 50%

April 18

Start of class on

May 7.

 

Attendance, Collaboration, and the Honor Code

Much of the learning experience of the course occurs in-class. Therefore, it is important that students attend every class. The in-class work involves collaboration and peer learning with other students in a "cohort" of several students. Students are expected to actively engage with others in their cohort. Noticeable lack of attendance or lack of collaboration will result in a lower grade. Students are allowed and encouraged to collaborate in peer-learning on the classwork and homework assignments. This does not mean simply providing or accepting solutions from others.  

The Undergraduate Honor Code pledge that each member of the university community agrees to abide by states: “As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do.” Students enrolled in this course are responsible for abiding by the Honor Code. A student who has doubts about how the Honor Code applies to any assignment is responsible for obtaining specific guidance from the course instructor before submitting the assignment for evaluation. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code. For additional information about the Honor Code, please visit: https://www.honorsystem.vt.edu/

The Honor Code rules apply in this class in the following ways:

1. All classwork, homework, and the Mini project (third project) is intended to be collaborative within your cohort. You may also seek help from the UTAs or instructor. This means that you are encouraged to seek assistance in learning the course concepts and tools. However, providing or accepting significant parts of answers is NOT allowed as this does not reflect learning.

2. The projects (except the mini project noted above) should represent your own work. You may seek help in understanding the concepts, programming statements, or tools. However, the project work and presentation should reflect your own individual effort. Providing or accepting significant parts of answers is NOT allowed as this does not reflect learning.

3. The code (in BlockPy or Python) you submit for home works and projects should represent code that your personally wrote, understand, and can explain. Providing or accepting significant code elements is NOT allowed as this does not reflect learning.

The four course projects must include a specific Honor Code statement. The Virginia Tech honor code pledge for assignments is as follows: “I have neither given nor received unauthorized assistance on this assignment.” All other work in the class, even without a specific statement, is assumed to be done in accordance with the Honor Code.

If you have questions or are unclear about what constitutes academic misconduct on an assignment, please speak with the course instructor. The Honor Code is taken very seriously in this course. The normal sanction recommend for a violation of the Honor Code is an F* sanction as your final course grade. The F represents failure in the course. The “*” is intended to identify a student who has failed to uphold the values of academic integrity at Virginia Tech. A student who receives a sanction of F* as their final course grade shall have it documented on their transcript with the notation “FAILURE DUE TO ACADEMIC HONOR CODE VIOLATION.” You would be required to complete an education program administered by the Honor System in order to have the “*” and notation “FAILURE DUE TO ACADEMIC HONOR CODE VIOLATION” removed from your transcript. The “F” however would be permanently on your transcript.”

Students with Disabilities

The instructors are pleased to make arrangements for students with disabilities. Students needing special accommodation because of a disability should provide to the instructor during the first week of class an appropriate letter from the Services for Students with Disabilities office. Also, if you have emergency medical information to share with the instructor, or if you need special arrangements in case of emergencies, please meet with the instructor as soon as possible.

List of Assignments

Course Summary:

Date Details Due