Lectures: MWF 11:05-11:55 am
Location: CCB 102
Instructor: Edmond Chow
E-mail:
Office Hours: Fridays, 3-4 pm, KACB 1312
TA: Guru Srinagesh
TA E-mail: gsrinagesh3@gatech.edu
TA Office Hours: Tuesdays and Thursdays, 10:30-11:30 am, in the lounge area next to KACB 1332
Course Description
This course is designed for advanced undergraduate students in science and engineering who are not CS majors but who wish to learn C programming, algorithms, and data structures. The course will sample important topics from the CS curriculum and give the students an ability to pursue further topics on their own. Topics will be presented rigorously, but also at a level and in an environment suitable for science and engineering students. Because a large amount of material will be covered, this course has a heavy work load; in particular, students will be expected to devote a significant amount of time to practice and develop computer programming skills. There will be a substantial amount of in-class group work, including coding workshops where students will critique each other's work.
Development of computer software to solve problems in science and engineering. Computing principles, computer architecture, algorithms and data structures; software development methodologies and tools; introduction to advanced topics such as parallelism and object-oriented design.
Prerequisites
Some experience with a programming language, such as Matlab, Python, Java, FORTRAN, C/C++.Topics
Starting from real-world problems that commonly arise in science and engineering, students will develop the knowledge and skills needed to develop computational solutions to attack these problems. Topics include:Modules
The course is composed of five modules, roughly corresponding to core topics covered in the School of Computational Science and Engineering. Each module is roughly three weeks. Each module has a Programming Problem Set due at the end of the module. The modules are:Grading
30% Peer evaluation on exercises and coding workshops
50% Programming problems (two-stage submission)
20% In-class exams (dates: Nov. 9, Nov. 18,
Dec. 2). Note that
there will be an in-class exam on Dec. 2, after Thanksgiving and
during Dead Week. Class on Dec. 4 is cancelled.
Exams will be open-book. You can bring any
non-electronic resource. No laptops, tablets, phones, etc.
Learning Outcomes
Course Announcements
Please monitor the following web site for announcements and miscellaneous notes: http://edmondchow.com/files/cx4010.txt . Be sure to refresh your browser window as needed.
Computer Resources
You may use any computer with a C compiler for this course. If you need an account on a Linux computer with a C compiler, an account can be created for you on joker.cc.gatech.edu or gotham.cc.gatech.edu (some of you have accounts on another machine called robin.cc.gt.atl.ga.us). From a PC, you will need putty or another ssh program to remotely log onto these machines, and possibly to copy files back and forth between these machines and your local machine.
Textbooks
There is no required textbook for this course. The following texts are recommended. You are also encouraged to use any texts you find suitable for the course (many are available, at different levels of sophistication).Collaboration, Citing, and Honor Code
Students are expected to follow the Georgia Tech Honor Code. Students are encouraged to work together and help each other on assignments and preparing for exams. However, submitted assignments must be individual work. One way to comply with this is to destroy any notes taken while consulting with other students before writing your own code. If you use the Web or other sources for any information, you must cite these sources in your assignment submission. You are encouraged to use the Web for information, but copying code from the Web without citation violates the Honor Code.